{"version":3,"file":"static/js/main.78b5c703.js","mappings":"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,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,G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AAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAC//CC,EAAI,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAG//CC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAG1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,YAG1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAC1/FC,EAAK,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UA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,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,MAAO,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,MAAO,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,MAAO,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,MAAO,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,MAAO,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,MAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,MCClyvB,GADiB,CAAC,CAAC,EAAG,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,MAAO,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,MCC5kd,GADiB,CAAC,CAAC,OAAQ,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,EAAG,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,OAAQ,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,GAAI,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,IAAK,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,IAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,QAAS,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,KAAM,CAAC,SAAU,KAAM,CAAC,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,GAAI,CAAC,qBAAsB,MCC31sBytK,GAAY,CAChBpD,QAAS,CACPwC,YAAa,CAAC,wEAKlB,SAASa,GAAWjB,EAASrrF,GAC3B,MAAMusF,EAAMvsF,EAAS9uE,QAAO,CAACs7J,EAAM96K,KACjC,MAAMuB,EAAO+sF,EAAStuF,EAAQ,GAC9B,OAAiB,IAAVA,IAAsB86K,EAAK,IAAMv5K,EAAK,IAAMu5K,EAAK,IAAMv5K,EAAK,GAAnE,IAGF,GAAIs5K,EAAIp+K,OACN,MAAM,IAAIuf,MAAJ,UAAa29J,EAAb,0CAAsD52K,GAAU83K,KAGxE,OAAOvsF,CACR,CAuBD,MAAMysF,GAAWz7K,OAAOq+D,QAAQq9G,GAAUt1K,KAnB1C,YAAqC,IAApBi0K,EAASrrF,GAAW,EACnC,MAAM2sF,EAAQb,GAAmBvnJ,MAAKvD,GAAKA,EAAEqqJ,UAAYA,KAAYgB,GAAUhB,GAE/E,IAAKsB,EACH,MAAM,IAAIj/J,MAAJ,wCAA2C29J,IAGnD,MAAO,CACLI,YAAaS,GAASS,EAAMlB,YAAY,IACxCJ,UACArrF,SAAUssF,GAAWjB,EAASrrF,GAAU5oF,KAAI,QAAEw1K,EAAaC,EAAaC,GAA5B,QAAuC,CACjFA,OACAF,YAAa,IAAI/xJ,GAAG+xJ,GACpBC,YAAa,IAAIhyJ,GAAGgyJ,GAHsB,IAM/C,IAID,MCzCA,SAASE,GAAUC,EAAWC,EAAUh0K,GACtC,OAAOA,EAAG+zK,EAAU5yK,WAAY6yK,EAAS7yK,WAC1C,CAKD,SAAS8yK,KAA2C,IAA5BltF,EAA4B,uDAAjB,GAAI6sF,EAAa,uCAClD,OAAO7sF,EAAS9uE,QAAO,QACrBy1J,QAASh7G,EAAKrzB,IADO,cAER1pC,IAAR+8D,GAA6B,OAARA,GAAgBkhH,GAAelhH,UAAiB/8D,IAAR0pC,GAA6B,OAARA,GAAgBu0I,GAAev0I,EAFjG,IAEuG7qB,QAAO,CAAC7O,EAAD,SAAS,MAC5I6Q,GADmI,SAE/HqzJ,GAAalkK,EAAQ6Q,EAF0G,GAElG,CAAC,EACrC,CAmBM,SAAS09J,GAAT,EAEJH,EAAWC,EAAUJ,GAAa,IAFR,WAC3BO,GACmC,EACnC,MAAMC,EAAexJ,GAAOgJ,GAAavkK,WAEzC,OAAOykK,GAAUC,EAAWC,GAAU,CAAClnK,EAAGwY,KACxC,IAAI+uJ,EAAwBC,EAAwBC,EAAwBC,EAAyBC,EAAyBC,EAAyBC,EAAuBC,EAE9K,OAIE/K,GAAa,CAAC,EAAGoK,GAAeY,GAAUvvJ,GAAI8uJ,GAAeH,GAAea,GAAWhoK,GAAIsnK,GAAeH,GAAqE,QAArDI,EAAyBF,EAAWY,mBAAoD,IAA3BV,GAAwG,QAA1DC,EAAyBD,EAAuBW,YAA6C,IAA3BV,GAAsG,QAAxDC,EAAyBD,EAAuBhvJ,UAA2C,IAA3BivJ,OAA1L,EAAuOA,EAAuB/9J,MAAO49J,GAAeH,GAAsE,QAAtDO,EAA0BL,EAAWY,mBAAqD,IAA5BP,GAA4G,QAA7DC,EAA0BD,EAAwBd,aAA+C,IAA5Be,GAAyG,QAA1DC,EAA0BD,EAAwB3nK,UAA4C,IAA5B4nK,OAAhM,EAA8OA,EAAwBl+J,MAAO49J,GAAkE,QAAlDO,EAAwBR,EAAWU,iBAAiD,IAA1BF,OAAmC,EAASA,EAAsBrvJ,GAAwD,QAAnDsvJ,EAAwBT,EAAWW,kBAAkD,IAA1BF,OAAmC,EAASA,EAAsB9nK,GAAIqnK,EAAW39J,MAJ9oC,GAOH,CAcM,SAASy+J,GAAT,EAEJlB,EAAWC,GAAU,IAFG,WACzBG,GACsB,EACtB,OAAOL,GAAUC,EAAWC,GAAU,CAAClnK,EAAGwY,KACxC,IAAI4vJ,EAAyBC,EAAyBC,EAAyBC,EAAyBC,EAAyBC,EAEjI,OAAO1L,GAAa,CAAC,EAA0D,QAAtDqL,EAA0Bf,EAAWY,mBAAqD,IAA5BG,GAA2G,QAA5DC,EAA0BD,EAAwBF,YAA8C,IAA5BG,GAAyG,QAA1DC,EAA0BD,EAAwB7vJ,UAA4C,IAA5B8vJ,OAA/L,EAA6OA,EAAwBI,IAA4D,QAAtDH,EAA0BlB,EAAWY,mBAAqD,IAA5BM,GAA4G,QAA7DC,EAA0BD,EAAwB3B,aAA+C,IAA5B4B,GAAyG,QAA1DC,EAA0BD,EAAwBxoK,UAA4C,IAA5ByoK,OAAhM,EAA8OA,EAAwBC,IAAhvB,GAEH,CC3EM,SAASC,GAAa1tJ,GACzB,IAAKsrC,OAAOqiH,cAAc3tJ,GACtB,MAAM,IAAItT,MAAJ,yBAA4BsT,GACzC,CACD,SAAS2rJ,KACL,MAAM77J,EAAO,CAAC8P,EAAGC,IAAO9a,GAAM6a,EAAEC,EAAE9a,IADd,2BAAN/G,EAAM,yBAANA,EAAM,gBAEpB,MAAMgN,EAAStU,MAAM9G,KAAKoO,GACrB0b,UACAjN,QAAO,CAACoS,EAAK9vB,IAAO8vB,EAAM/O,EAAK+O,EAAK9vB,EAAEic,QAAUjc,EAAEic,aAASpd,GAC1Dsd,EAASlN,EAAKyO,QAAO,CAACoS,EAAK9vB,IAAO8vB,EAAM/O,EAAK+O,EAAK9vB,EAAEmc,QAAUnc,EAAEmc,aAAStd,GAC/E,MAAO,CAAEod,SAAQE,SACpB,CACD,SAAS8N,GAASA,GACd,MAAO,CACHhO,OAASmO,IACL,IAAKziB,MAAM4G,QAAQ6b,IAAYA,EAAOhsB,QAA+B,kBAAdgsB,EAAO,GAC1D,MAAM,IAAIzM,MAAM,uDACpB,OAAOyM,EAAO/iB,KAAKrH,IAEf,GADA2+K,GAAa3+K,GACTA,EAAI,GAAKA,GAAKiqB,EAAS7rB,OACvB,MAAM,IAAIuf,MAAJ,wCAA2C3d,EAA3C,uBAA2DiqB,EAAS7rB,OAApE,MACV,OAAO6rB,EAASjqB,EAAhB,GAJJ,EAOJmc,OAAS7E,IACL,IAAK3P,MAAM4G,QAAQ+I,IAAWA,EAAMlZ,QAA8B,kBAAbkZ,EAAM,GACvD,MAAM,IAAIqG,MAAM,oDACpB,OAAOrG,EAAMjQ,KAAKw3K,IACd,GAAsB,kBAAXA,EACP,MAAM,IAAIlhK,MAAJ,8CAAiDkhK,IAC3D,MAAMl9K,EAAQsoB,EAASxoB,QAAQo9K,GAC/B,IAAe,IAAXl9K,EACA,MAAM,IAAIgc,MAAJ,2BAA8BkhK,EAA9B,uBAAmD50J,IAC7D,OAAOtoB,CAAP,GANJ,EAUX,CACD,SAASiD,KAAqB,IAAhBgrJ,EAAgB,uDAAJ,GACtB,GAAyB,kBAAdA,EACP,MAAM,IAAIjyI,MAAM,mCACpB,MAAO,CACH1B,OAASpb,IACL,IAAK8G,MAAM4G,QAAQ1N,IAAUA,EAAKzC,QAA6B,kBAAZyC,EAAK,GACpD,MAAM,IAAI8c,MAAM,gDACpB,IAAK,IAAI3d,KAAKa,EACV,GAAiB,kBAANb,EACP,MAAM,IAAI2d,MAAJ,wCAA2C3d,IACzD,OAAOa,EAAK+D,KAAKgrJ,EAAjB,EAEJzzI,OAAS4L,IACL,GAAkB,kBAAPA,EACP,MAAM,IAAIpK,MAAM,sCACpB,OAAOoK,EAAG3f,MAAMwnJ,EAAhB,EAGX,CACD,SAASz6H,GAAQiE,GAAiB,IAAX0lJ,EAAW,uDAAL,IAEzB,GADAH,GAAavlJ,GACM,kBAAR0lJ,EACP,MAAM,IAAInhK,MAAM,gCACpB,MAAO,CACH1B,OAAO9B,GACH,IAAKxS,MAAM4G,QAAQ4L,IAAUA,EAAK/b,QAA6B,kBAAZ+b,EAAK,GACpD,MAAM,IAAIwD,MAAM,mDACpB,IAAK,IAAI3d,KAAKma,EACV,GAAiB,kBAANna,EACP,MAAM,IAAI2d,MAAJ,2CAA8C3d,IAC5D,KAAQma,EAAK/b,OAASg7B,EAAQ,GAC1Bjf,EAAKxb,KAAKmgL,GACd,OAAO3kK,CACV,EACDgC,OAAO7E,GACH,IAAK3P,MAAM4G,QAAQ+I,IAAWA,EAAMlZ,QAA8B,kBAAbkZ,EAAM,GACvD,MAAM,IAAIqG,MAAM,mDACpB,IAAK,IAAI3d,KAAKsX,EACV,GAAiB,kBAANtX,EACP,MAAM,IAAI2d,MAAJ,2CAA8C3d,IAC5D,IAAI+B,EAAMuV,EAAMlZ,OAChB,GAAK2D,EAAMq3B,EAAQ,EACf,MAAM,IAAIzb,MAAM,6DACpB,KAAO5b,EAAM,GAAKuV,EAAMvV,EAAM,KAAO+8K,EAAK/8K,IACtC,MAAQA,EAAM,GAAKq3B,EAAQ,GACvB,MAAM,IAAIzb,MAAM,gDAExB,OAAOrG,EAAMtV,MAAM,EAAGD,EACzB,EAER,CACD,SAASqyB,GAAUlrB,GACf,GAAkB,oBAAPA,EACP,MAAM,IAAIyU,MAAM,mCACpB,MAAO,CAAE1B,OAASpb,GAASA,EAAMsb,OAAS4L,GAAO7e,EAAG6e,GACvD,CACD,SAASg3J,GAAa5kK,EAAMtZ,EAAMknB,GAC9B,GAAIlnB,EAAO,EACP,MAAM,IAAI8c,MAAJ,mCAAsC9c,EAAtC,iCACV,GAAIknB,EAAK,EACL,MAAM,IAAIpK,MAAJ,iCAAoCoK,EAApC,iCACV,IAAKpgB,MAAM4G,QAAQ4L,GACf,MAAM,IAAIwD,MAAM,sCACpB,IAAKxD,EAAK/b,OACN,MAAO,GACX,IAAIqxB,EAAM,EACV,MAAMoY,EAAM,GACNzd,EAASziB,MAAM9G,KAAKsZ,GAM1B,IALAiQ,EAAO9qB,SAASy1C,IAEZ,GADA4pI,GAAa5pI,GACTA,EAAI,GAAKA,GAAKl0C,EACd,MAAM,IAAI8c,MAAJ,yBAA4Bo3B,GAAlC,MAEK,CACT,IAAI1qB,EAAQ,EACRg/B,GAAO,EACX,IAAK,IAAIrpD,EAAIyvB,EAAKzvB,EAAIoqB,EAAOhsB,OAAQ4B,IAAK,CACtC,MAAMg/K,EAAQ50J,EAAOpqB,GACfi/K,EAAYp+K,EAAOwpB,EAAQ20J,EACjC,IAAKziH,OAAOqiH,cAAcK,IACrBp+K,EAAOwpB,EAASxpB,IAASwpB,GAC1B40J,EAAYD,IAAUn+K,EAAOwpB,EAC7B,MAAM,IAAI1M,MAAM,gCAIpB,GAFA0M,EAAQ40J,EAAYl3J,EACpBqC,EAAOpqB,GAAKY,KAAKioB,MAAMo2J,EAAYl3J,IAC9Bw0C,OAAOqiH,cAAcx0J,EAAOpqB,KAAOoqB,EAAOpqB,GAAK+nB,EAAKsC,IAAU40J,EAC/D,MAAM,IAAIthK,MAAM,gCACf0rC,IAEKj/B,EAAOpqB,GAGbqpD,GAAO,EAFP55B,EAAMzvB,EAGb,CAED,GADA6nC,EAAIlpC,KAAK0rB,GACLg/B,EACA,KACP,CACD,IAAK,IAAIrpD,EAAI,EAAGA,EAAIma,EAAK/b,OAAS,GAAiB,IAAZ+b,EAAKna,GAAUA,IAClD6nC,EAAIlpC,KAAK,GACb,OAAOkpC,EAAIld,SACd,CACD,MAAMozD,GAAM,CAACltD,EAAGC,IAAQA,EAAQitD,GAAIjtD,EAAGD,EAAIC,GAAfD,EACtBquJ,GAAc,CAACr+K,EAAMknB,IAAOlnB,GAAQknB,EAAKg2D,GAAIl9E,EAAMknB,IACzD,SAASo3J,GAAchlK,EAAMtZ,EAAMknB,EAAIoN,GACnC,IAAKxtB,MAAM4G,QAAQ4L,GACf,MAAM,IAAIwD,MAAM,uCACpB,GAAI9c,GAAQ,GAAKA,EAAO,GACpB,MAAM,IAAI8c,MAAJ,oCAAuC9c,IACjD,GAAIknB,GAAM,GAAKA,EAAK,GAChB,MAAM,IAAIpK,MAAJ,kCAAqCoK,IAC/C,GAAIm3J,GAAYr+K,EAAMknB,GAAM,GACxB,MAAM,IAAIpK,MAAJ,6CAAgD9c,EAAhD,eAA2DknB,EAA3D,sBAA2Em3J,GAAYr+K,EAAMknB,KAEvG,IAAIsC,EAAQ,EACRoF,EAAM,EACV,MAAM7Q,EAAO,GAAKmJ,EAAK,EACjB8f,EAAM,GACZ,IAAK,MAAM5W,KAAK9W,EAAM,CAElB,GADAwkK,GAAa1tJ,GACTA,GAAK,GAAKpwB,EACV,MAAM,IAAI8c,MAAJ,2CAA8CsT,EAA9C,iBAAwDpwB,IAElE,GADAwpB,EAASA,GAASxpB,EAAQowB,EACtBxB,EAAM5uB,EAAO,GACb,MAAM,IAAI8c,MAAJ,4CAA+C8R,EAA/C,iBAA2D5uB,IAErE,IADA4uB,GAAO5uB,EACA4uB,GAAO1H,EAAI0H,GAAO1H,EACrB8f,EAAIlpC,MAAO0rB,GAAUoF,EAAM1H,EAAOnJ,KAAU,GAChDyL,GAAS,GAAKoF,EAAM,CACvB,CAED,GADApF,EAASA,GAAUtC,EAAK0H,EAAQ7Q,GAC3BuW,GAAW1F,GAAO5uB,EACnB,MAAM,IAAI8c,MAAM,kBACpB,IAAKwX,GAAW9K,EACZ,MAAM,IAAI1M,MAAJ,4BAA+B0M,IAGzC,OAFI8K,GAAW1F,EAAM,GACjBoY,EAAIlpC,KAAK0rB,IAAU,GAChBwd,CACV,CACD,SAASu3I,GAAM/2I,GAEX,OADAs2I,GAAat2I,GACN,CACHpsB,OAASxB,IACL,KAAMA,aAAiBP,YACnB,MAAM,IAAIyD,MAAM,2CACpB,OAAOohK,GAAap3K,MAAM9G,KAAK4Z,GAAQ,IAAQ4tB,EAA/C,EAEJlsB,OAASiO,IACL,IAAKziB,MAAM4G,QAAQ6b,IAAYA,EAAOhsB,QAA+B,kBAAdgsB,EAAO,GAC1D,MAAM,IAAIzM,MAAM,iDACpB,OAAOzD,WAAWrZ,KAAKk+K,GAAa30J,EAAQie,EAAK,KAAjD,EAGX,CACD,SAASg3I,GAAOjmJ,GAA0B,IAApBkmJ,EAAoB,wDAEtC,GADAX,GAAavlJ,GACTA,GAAQ,GAAKA,EAAO,GACpB,MAAM,IAAIzb,MAAM,qCACpB,GAAIuhK,GAAY,EAAG9lJ,GAAQ,IAAM8lJ,GAAY9lJ,EAAM,GAAK,GACpD,MAAM,IAAIzb,MAAM,0BACpB,MAAO,CACH1B,OAASxB,IACL,KAAMA,aAAiBP,YACnB,MAAM,IAAIyD,MAAM,4CACpB,OAAOwhK,GAAcx3K,MAAM9G,KAAK4Z,GAAQ,EAAG2e,GAAOkmJ,EAAlD,EAEJnjK,OAASiO,IACL,IAAKziB,MAAM4G,QAAQ6b,IAAYA,EAAOhsB,QAA+B,kBAAdgsB,EAAO,GAC1D,MAAM,IAAIzM,MAAM,kDACpB,OAAOzD,WAAWrZ,KAAKs+K,GAAc/0J,EAAQgP,EAAM,EAAGkmJ,GAAtD,EAGX,CACD,SAASC,GAAcr2K,GACnB,GAAkB,oBAAPA,EACP,MAAM,IAAIyU,MAAM,uCACpB,OAAO,WACH,IAAI,2BADY1O,EACZ,yBADYA,EACZ,gBACA,OAAO/F,EAAG4G,MAAM,KAAMb,EAEb,CAAb,MAAO3O,GAAM,CAChB,CACJ,CA4BM,MACMk/K,GAAS5C,GAAMyC,GAAO,GAAIp1J,GAAS,oBAAqBrlB,GAAK,KAC7D66K,GAAS7C,GAAMyC,GAAO,GAAIp1J,GAAS,oCAAqCkL,GAAQ,GAAIvwB,GAAK,KAGzF86K,IAFY9C,GAAMyC,GAAO,GAAIp1J,GAAS,oCAAqCkL,GAAQ,GAAIvwB,GAAK,KAC1Eg4K,GAAMyC,GAAO,GAAIp1J,GAAS,oCAAqCrlB,GAAK,IAAKwvB,IAAW5F,GAAMA,EAAE9F,cAActnB,QAAQ,KAAM,KAAKA,QAAQ,QAAS,QACvJw7K,GAAMyC,GAAO,GAAIp1J,GAAS,oEAAqEkL,GAAQ,GAAIvwB,GAAK,MACzH+6K,GAAY/C,GAAMyC,GAAO,GAAIp1J,GAAS,oEAAqEkL,GAAQ,GAAIvwB,GAAK,KACnIg7K,GAAaC,GAAQjD,GAAMwC,GAAM,IAAKn1J,GAAS41J,GAAMj7K,GAAK,KACnDk7K,GAASF,GAAU,8DAG1BG,IAFsBH,GAAU,8DACbA,GAAU,8DACb,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,KACnCI,GAAY,CACrB/jK,OAAO9B,GACH,IAAI0tB,EAAM,GACV,IAAK,IAAI7nC,EAAI,EAAGA,EAAIma,EAAK/b,OAAQ4B,GAAK,EAAG,CACrC,MAAMslB,EAAQnL,EAAK8lK,SAASjgL,EAAGA,EAAI,GACnC6nC,GAAOi4I,GAAO7jK,OAAOqJ,GAAO46J,SAASH,GAAcz6J,EAAMlnB,QAAS,IACrE,CACD,OAAOypC,CACV,EACD1rB,OAAOjS,GACH,IAAI29B,EAAM,GACV,IAAK,IAAI7nC,EAAI,EAAGA,EAAIkK,EAAI9L,OAAQ4B,GAAK,GAAI,CACrC,MAAMgC,EAAQkI,EAAIlI,MAAMhC,EAAGA,EAAI,IACzBmgL,EAAWJ,GAAct+K,QAAQO,EAAM5D,QACvCknB,EAAQw6J,GAAO3jK,OAAOna,GAC5B,IAAK,IAAImE,EAAI,EAAGA,EAAImf,EAAMlnB,OAAS+hL,EAAUh6K,IACzC,GAAiB,IAAbmf,EAAMnf,GACN,MAAM,IAAIwX,MAAM,4BAExBkqB,EAAMA,EAAIn/B,OAAOf,MAAM9G,KAAKykB,EAAMtjB,MAAMsjB,EAAMlnB,OAAS+hL,IAC1D,CACD,OAAOjmK,WAAWrZ,KAAKgnC,EAC1B,GAGCu4I,GAAgBxD,GAAM3yJ,GAAS,oCAAqCrlB,GAAK,KACzEy7K,GAAqB,CAAC,UAAY,UAAY,UAAY,WAAY,WAC5E,SAASC,GAAchuI,GACnB,MAAMxhB,EAAIwhB,GAAO,GACjB,IAAIk9B,GAAa,SAANl9B,IAAoB,EAC/B,IAAK,IAAItyC,EAAI,EAAGA,EAAIqgL,GAAmBjiL,OAAQ4B,IACpB,KAAjB8wB,GAAK9wB,EAAK,KACZwvE,GAAO6wG,GAAmBrgL,IAElC,OAAOwvE,CACV,CACD,SAAS+wG,GAAa17K,EAAQyzB,GAA0B,IAAnBkoJ,EAAmB,uDAAH,EACjD,MAAMp2K,EAAMvF,EAAOzG,OACnB,IAAIoxE,EAAM,EACV,IAAK,IAAIxvE,EAAI,EAAGA,EAAIoK,EAAKpK,IAAK,CAC1B,MAAMgW,EAAInR,EAAOjD,WAAW5B,GAC5B,GAAIgW,EAAI,IAAMA,EAAI,IACd,MAAM,IAAI2H,MAAJ,0BAA6B9Y,EAA7B,MACV2qE,EAAM8wG,GAAc9wG,GAAQx5D,GAAK,CACpC,CACDw5D,EAAM8wG,GAAc9wG,GACpB,IAAK,IAAIxvE,EAAI,EAAGA,EAAIoK,EAAKpK,IACrBwvE,EAAM8wG,GAAc9wG,GAA+B,GAAvB3qE,EAAOjD,WAAW5B,GAClD,IAAK,IAAIwe,KAAK8Z,EACVk3C,EAAM8wG,GAAc9wG,GAAOhxD,EAC/B,IAAK,IAAIxe,EAAI,EAAGA,EAAI,EAAGA,IACnBwvE,EAAM8wG,GAAc9wG,GAExB,OADAA,GAAOgxG,EACAJ,GAAcnkK,OAAOkjK,GAAc,CAAC3vG,EAAM,GAAK,IAAK,GAAI,GAAG,GACrE,CACD,SAASixG,GAAUC,GACf,MAAMC,EAA8B,WAAbD,EAAwB,EAAI,UAC7CE,EAASvB,GAAO,GAChB/uG,EAAYswG,EAAOzkK,OACnBi0D,EAAUwwG,EAAO3kK,OACjBo0D,EAAkBkvG,GAAcjvG,GAYtC,SAASn0D,EAAOjS,GAAiB,IAAZirH,EAAY,uDAAJ,GACzB,GAAmB,kBAARjrH,EACP,MAAM,IAAIyT,MAAJ,2DAA8DzT,IACxE,GAAIA,EAAI9L,OAAS,IAAgB,IAAV+2H,GAAmBjrH,EAAI9L,OAAS+2H,EACnD,MAAM,IAAI1qG,UAAJ,+BAAsCvgB,EAAI9L,OAA1C,aAAqD8L,EAArD,2BAA2EirH,EAA3E,MACV,MAAMxlD,EAAUzlE,EAAIwD,cACpB,GAAIxD,IAAQylE,GAAWzlE,IAAQA,EAAIwe,cAC/B,MAAM,IAAI/K,MAAJ,yCAEV,MAAMkjK,GADN32K,EAAMylE,GACeh8C,YAAY,KACjC,GAAiB,IAAbktJ,IAAgC,IAAdA,EAClB,MAAM,IAAIljK,MAAJ,2DACV,MAAM9Y,EAASqF,EAAIlI,MAAM,EAAG6+K,GACtBD,EAAS12K,EAAIlI,MAAM6+K,EAAW,GACpC,GAAID,EAAOxiL,OAAS,EAChB,MAAM,IAAIuf,MAAM,2CACpB,MAAM2a,EAAQ8nJ,GAAcjkK,OAAOykK,GAAQ5+K,MAAM,GAAI,GAC/C8+K,EAAMP,GAAa17K,EAAQyzB,EAAOqoJ,GACxC,IAAKC,EAAOn/B,SAASq/B,GACjB,MAAM,IAAInjK,MAAJ,8BAAiCzT,EAAjC,uBAAmD42K,EAAnD,MACV,MAAO,CAAEj8K,SAAQyzB,QACpB,CAMD,MAAO,CAAErc,OAtCT,SAAgBpX,EAAQyzB,GAAmB,IAAZ68F,EAAY,uDAAJ,GACnC,GAAsB,kBAAXtwH,EACP,MAAM,IAAI8Y,MAAJ,4DAA+D9Y,IACzE,IAAK8C,MAAM4G,QAAQ+pB,IAAWA,EAAMl6B,QAA8B,kBAAbk6B,EAAM,GACvD,MAAM,IAAI3a,MAAJ,qEAAwE2a,IAClF,MAAMyoJ,EAAel8K,EAAOzG,OAAS,EAAIk6B,EAAMl6B,OAC/C,IAAc,IAAV+2H,GAAmB4rD,EAAe5rD,EAClC,MAAM,IAAI1qG,UAAJ,iBAAwBs2J,EAAxB,0BAAsD5rD,IAEhE,OADAtwH,EAASA,EAAO6I,cACT,GAAP,OAAU7I,EAAV,YAAoBu7K,GAAcnkK,OAAOqc,IAAzC,OAAkDioJ,GAAa17K,EAAQyzB,EAAOqoJ,GACjF,EA4BgBxkK,SAAQ6kK,cAJzB,SAAuB92K,GACnB,MAAM,OAAErF,EAAF,MAAUyzB,GAAUnc,EAAOjS,GAAK,GACtC,MAAO,CAAErF,SAAQyzB,QAAO7d,MAAO61D,EAAUh4C,GAC5C,EACuC43C,aALnBqvG,GAAcpjK,GAKmBm0D,YAAWD,kBAAiBD,UACrF,CACqBqwG,GAAU,UACTA,GAAU,WAD1B,MAEM3xG,GAAO,CAChB7yD,OAAS9B,IAAS,IAAI8mK,aAAc9kK,OAAOhC,GAC3CgC,OAASjS,IAAQ,IAAIg3K,aAAcjlK,OAAO/R,IAOxCi3K,GAAS,CACXryG,QAAMzjD,IANSuxJ,GAAMyC,GAAO,GAAIp1J,GAAS,oBAAqBrlB,GAAK,IAAKwvB,IAAW5F,IACnF,GAAiB,kBAANA,GAAkBA,EAAEpwB,OAAS,EACpC,MAAM,IAAIqsB,UAAJ,kDAAyD+D,EAAzD,wBAA0EA,EAAEpwB,SACtF,OAAOowB,EAAE9gB,aAAT,KAGW8xK,UAAQC,UAAQC,UAAQC,aAAWG,UAAQE,cAEnC,2CAAH,OAA8C/+K,OAAOihB,KAAKi/J,IAAQv8K,KAAK,OC/WpF,MAAMw8K,GAAgC,qBAAfniD,WAA6BA,WAA+B,qBAAX34F,OAAyBA,OAAyB,qBAATF,KAAuBA,KAAyB,qBAAXC,OAAyBA,OAAsB64F,SAHhM,eAIL,SAASmiD,GAAcr4K,EAAMu7G,GAKlC,MAAgC,qBAAlB68D,GAAQp4K,GAAwBu7G,EAAW68D,GAAQp4K,EAClE,CCbM,MAAM+jB,GAAmC,oBAAnBq0J,GAAQr0J,QAA0D,oBAA1Bq0J,GAAQr0J,OAAOu0J,OAAwBF,GAAQr0J,OAAS,IAAMwvC,OAAOglH,ICG7HC,GAA8B,oBAAXz0J,IAAkD,oBAAlBA,GAAAA,OAGnD00J,GAA8B,qBAAXhxG,OAYnBixG,GAAgC,kBAAZnhL,QCH1B,SAASohL,GAASxgL,GAEvB,OAAOsgL,IAAahqD,GAAWt2H,GAASA,EAAMygL,eAAiBnxG,OAAOkxG,SAASxgL,EAChF,CCLM,SAAS0gL,GAAM1gL,GAGpB,OAAQA,GAASA,EAAMqT,eAAiB0F,YAAc/Y,aAAiB+Y,UACxE,CChBM,MAAMgnK,GAAcG,GAAc,cCFlC,MACLplK,OAAO9a,GACL,MAAM2gL,EAAM,IAAI5nK,WAAW/Y,EAAM/C,QAEjC,IAAK,IAAI4B,EAAI,EAAGA,EAAImB,EAAM/C,OAAQ4B,IAChC8hL,EAAI9hL,GAAKmB,EAAMS,WAAW5B,GAG5B,OAAO8hL,CACR,ICTG5qJ,GAAU,IAAIgqJ,GAgBb,SAASa,GAAY5gL,GAC1B,OAAOA,EAAQ+1B,GAAQjb,OAAO9a,EAAMkJ,YAAc,IAAI6P,UACvD,CCEM,SAAS8nK,GAAS7gL,GACvB,OAAO0gL,GAAM1gL,GAASA,EAAQ+xK,GAAM/xK,GAASg7K,GAASh7K,GAASwgL,GAASxgL,IAAUwG,MAAM4G,QAAQpN,GAAS,IAAI+Y,WAAW/Y,GAAS4gL,GAAY5gL,EAC9I,CCpBM,SAAS8gL,GAAT,EAGJ32I,GAAU,IAHgB,MAC3B9uB,EAD2B,KAE3B0lK,GACW,EACX,MAAO,CAAC/gL,EAAOghL,KACb72I,EAASnqC,EAAOghL,GACT3lK,EAAML,OAAO+lK,GAAQC,EAAahhL,EAAMgW,UAAU,GAAKhW,GAEjE,CAGM,SAASihL,GAAT,GAGJ,IAH0B,MAC3B5lK,EAD2B,KAE3B0lK,GACC,EACD,MAAO,CAAC/gL,EAAOghL,KACb,MAAMhwG,EAAM31D,EAAMP,OAAO+lK,GAAS7gL,IAClC,OAAO+gL,GAAQC,EAAR,UAAwBD,GAAxB,OAA+B/vG,GAAQA,CAA9C,CAEH,CAGM,SAASkwG,GAAS/2I,GACvB,MAAO,CAACnqC,EAAOghL,KACb,IACE,OAAO72I,EAASnqC,EAAOghL,EAGxB,CAFC,MAAO5oK,GACP,OAAO,CACR,EAEJ,CAGM,SAAS+oK,GAAT,GAIJ,IAJ4B,MAC7B/5J,EAD6B,KAE7B25J,EAF6B,KAG7Br/K,GACC,EACD,MAAO,CAAC1B,EAAOghL,KACb,IAAKhhL,GAA0B,kBAAVA,EACnB,MAAM,IAAIwc,MAAJ,uCAA0C9a,EAA1C,kBAGR,GAAIq/K,GAAQC,GAAchhL,EAAM,KAAO+gL,EACrC,MAAM,IAAIvkK,MAAJ,mCAAsC9a,EAAtC,2BAA6Dq/K,EAA7D,MAGR,IAAK,IAAIliL,EAAImiL,EAAa,EAAI,EAAGniL,EAAImB,EAAM/C,OAAQ4B,IACjD,IAAMuoB,EAAM0wE,SAAS93F,EAAMnB,MAAoB,MAAbmB,EAAMnB,IAAeA,IAAMmB,EAAM/C,OAAS,GAAMmqB,EAAM0wE,SAAS93F,EAAMnB,EAAI,KACzG,MAAM,IAAI2d,MAAJ,kBAAqB9a,EAArB,uBAAwC1B,EAAMnB,GAA9C,gBAAwDmB,EAAMS,WAAW5B,GAAGqK,SAAS,IAArF,sBAAsGrK,IAIhH,OAAO,CAAP,CAEH,CCxDD,MAAMwvF,GAAS,CACbjnE,MAAO,mEACP/L,MAAOkjK,GACP78K,KAAM,UASK0/K,GAAiBD,GAAe9yF,IAsBhC7nC,IAhBW06H,GAASE,IAQLN,GAAazyF,GAAQ+yF,IAQrBH,GAAa5yF,iECtCrCgzF,GAAoB,SAA2BrhL,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,kBAAVA,CACzB,CANOshL,CAAgBthL,KAQxB,SAAmBA,GAClB,IAAIuhL,EAAczhL,OAAO9B,UAAUkL,SAASzC,KAAKzG,GAEjD,MAAuB,oBAAhBuhL,GACa,kBAAhBA,GAQL,SAAwBvhL,GACvB,OAAOA,EAAM8rF,WAAa01F,EAC1B,CATIC,CAAezhL,EACnB,CAbK0hL,CAAU1hL,EACf,EAeD,IACIwhL,GADiC,oBAAX5wG,QAAyBA,OAAOC,IAClBD,OAAOC,IAAI,iBAAmB,MAUtE,SAAS8wG,GAA8B3hL,EAAOtD,GAC7C,OAA0B,IAAlBA,EAAQ6qC,OAAmB7qC,EAAQ2kL,kBAAkBrhL,GAC1DixD,IANiB7iC,EAMKpuB,EALlBwG,MAAM4G,QAAQghB,GAAO,GAAK,CAAC,GAKDpuB,EAAOtD,GACrCsD,EAPJ,IAAqBouB,CAQpB,CAED,SAASwzJ,GAAkBrzK,EAAQE,EAAQ/R,GAC1C,OAAO6R,EAAOhH,OAAOkH,GAAQvI,KAAI,SAAS1C,GACzC,OAAOm+K,GAA8Bn+K,EAAS9G,EAC9C,GACD,CAmBD,SAASu0D,GAAU1iD,EAAQE,EAAQ/R,IAClCA,EAAUA,GAAW,CAAC,GACdmlL,WAAanlL,EAAQmlL,YAAcD,GAC3CllL,EAAQ2kL,kBAAoB3kL,EAAQ2kL,mBAAqBA,GAEzD,IAAIS,EAAgBt7K,MAAM4G,QAAQqB,GAIlC,OAFgCqzK,IADZt7K,MAAM4G,QAAQmB,GAKvBuzK,EACHplL,EAAQmlL,WAAWtzK,EAAQE,EAAQ/R,GA7B5C,SAAqB6R,EAAQE,EAAQ/R,GACpC,IAAIi8I,EAAc,CAAC,EAanB,OAZIj8I,EAAQ2kL,kBAAkB9yK,IAC7BzO,OAAOihB,KAAKxS,GAAQpQ,SAAQ,SAASL,GACpC66I,EAAY76I,GAAO6jL,GAA8BpzK,EAAOzQ,GAAMpB,EAC9D,IAEFoD,OAAOihB,KAAKtS,GAAQtQ,SAAQ,SAASL,GAC/BpB,EAAQ2kL,kBAAkB5yK,EAAO3Q,KAAUyQ,EAAOzQ,GAGtD66I,EAAY76I,GAAOmzD,GAAU1iD,EAAOzQ,GAAM2Q,EAAO3Q,GAAMpB,GAFvDi8I,EAAY76I,GAAO6jL,GAA8BlzK,EAAO3Q,GAAMpB,EAI/D,IACMi8I,CACP,CAgBQopC,CAAYxzK,EAAQE,EAAQ/R,GAJ5BilL,GAA8BlzK,EAAQ/R,EAM9C,CAEDu0D,GAAUxqC,IAAM,SAAsBxlB,EAAOvE,GAC5C,IAAK8J,MAAM4G,QAAQnM,GAClB,MAAM,IAAIub,MAAM,qCAGjB,OAAOvb,EAAMsb,QAAO,SAASxa,EAAMC,GAClC,OAAOivD,GAAUlvD,EAAMC,EAAMtF,EAC7B,GAAE,CAAC,EACJ,EAID,SAFkBu0D,GCnFlB,SAFkC,iBAAV9rB,QAAsBA,QAAUA,OAAOrlC,SAAWA,QAAUqlC,OCEpF,IAAI68I,GAA0B,iBAAR/8I,MAAoBA,MAAQA,KAAKnlC,SAAWA,QAAUmlC,KAK5E,SAFWg9I,IAAcD,IAAYjkD,SAAS,cAATA,GCDrC,SAFav8H,GAAAA,OCAb,IAAI0gL,GAAcpiL,OAAO9B,UAGrB0Q,GAAiBwzK,GAAYxzK,eAO7ByzK,GAAuBD,GAAYh5K,SAGnCk5K,GAAiBxxG,GAASA,GAAAA,iBAAqBlzE,EA6BnD,SApBA,SAAmBsC,GACjB,IAAIqiL,EAAQ3zK,GAAejI,KAAKzG,EAAOoiL,IACnCtlL,EAAMkD,EAAMoiL,IAEhB,IACEpiL,EAAMoiL,SAAkB1kL,EACxB,IAAI4kL,GAAW,CACH,CAAZ,MAAOnjL,GAAK,CAEd,IAAIuO,EAASy0K,GAAqB17K,KAAKzG,GAQvC,OAPIsiL,IACED,EACFriL,EAAMoiL,IAAkBtlL,SAEjBkD,EAAMoiL,KAGV10K,CACR,EC1CD,IAOIy0K,GAPcriL,OAAO9B,UAOckL,SAavC,SAJA,SAAwBlJ,GACtB,OAAOmiL,GAAqB17K,KAAKzG,EAClC,ECdD,IAIIoiL,GAAiBxxG,GAASA,GAAAA,iBAAqBlzE,EAkBnD,SATA,SAAoBsC,GAClB,OAAa,MAATA,OACetC,IAAVsC,EAdQ,qBADL,gBAiBJoiL,IAAkBA,MAAkBtiL,OAAOE,GAC/CuiL,GAAUviL,GACVwiL,GAAexiL,EACpB,ECXD,SANA,SAAiByI,EAAMk3D,GACrB,OAAO,SAAS13D,GACd,OAAOQ,EAAKk3D,EAAU13D,GACvB,CACF,ECPD,SAFmBw6K,GAAQ3iL,OAAOokC,eAAgBpkC,QCyBlD,SAJA,SAAsBE,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CAChC,ECrBD,IAGI0iL,GAAY3kD,SAAS//H,UACrBkkL,GAAcpiL,OAAO9B,UAGrB2kL,GAAeD,GAAUx5K,SAGzBwF,GAAiBwzK,GAAYxzK,eAG7Bk0K,GAAmBD,GAAal8K,KAAK3G,QA2CzC,SAbA,SAAuBE,GACrB,IAAK6iL,GAAa7iL,IA5CJ,mBA4Cc8iL,GAAW9iL,GACrC,OAAO,EAET,IAAI+iL,EAAQC,GAAahjL,GACzB,GAAc,OAAV+iL,EACF,OAAO,EAET,IAAIE,EAAOv0K,GAAejI,KAAKs8K,EAAO,gBAAkBA,EAAM1vK,YAC9D,MAAsB,mBAAR4vK,GAAsBA,aAAgBA,GAClDN,GAAal8K,KAAKw8K,IAASL,EAC9B,EC/CD,SALA,WACEhmL,KAAKsmL,SAAW,GAChBtmL,KAAKmI,KAAO,CACb,EC0BD,SAJA,SAAY/E,EAAOuqB,GACjB,OAAOvqB,IAAUuqB,GAAUvqB,IAAUA,GAASuqB,IAAUA,CACzD,ECdD,SAVA,SAAsBtpB,EAAOnD,GAE3B,IADA,IAAIb,EAASgE,EAAMhE,OACZA,KACL,GAAIuuB,GAAGvqB,EAAMhE,GAAQ,GAAIa,GACvB,OAAOb,EAGX,OAAQ,CACT,ECfD,IAGIs2B,GAHa/sB,MAAMxI,UAGCu1B,OA4BxB,SAjBA,SAAyBz1B,GACvB,IAAIkb,EAAOpc,KAAKsmL,SACZ1iL,EAAQ2iL,GAAanqK,EAAMlb,GAE/B,QAAI0C,EAAQ,KAIRA,GADYwY,EAAK/b,OAAS,EAE5B+b,EAAK2J,MAEL4Q,GAAO9sB,KAAKuS,EAAMxY,EAAO,KAEzB5D,KAAKmI,MACA,EACR,ECdD,SAPA,SAAsBjH,GACpB,IAAIkb,EAAOpc,KAAKsmL,SACZ1iL,EAAQ2iL,GAAanqK,EAAMlb,GAE/B,OAAO0C,EAAQ,OAAI9C,EAAYsb,EAAKxY,GAAO,EAC5C,ECDD,SAJA,SAAsB1C,GACpB,OAAOqlL,GAAavmL,KAAKsmL,SAAUplL,IAAQ,CAC5C,ECYD,SAbA,SAAsBA,EAAKkC,GACzB,IAAIgZ,EAAOpc,KAAKsmL,SACZ1iL,EAAQ2iL,GAAanqK,EAAMlb,GAQ/B,OANI0C,EAAQ,KACR5D,KAAKmI,KACPiU,EAAKxb,KAAK,CAACM,EAAKkC,KAEhBgZ,EAAKxY,GAAO,GAAKR,EAEZpD,IACR,ECVD,SAASwmL,GAAUjlH,GACjB,IAAI39D,GAAS,EACTvD,EAAoB,MAAXkhE,EAAkB,EAAIA,EAAQlhE,OAG3C,IADAL,KAAKspE,UACI1lE,EAAQvD,GAAQ,CACvB,IAAIomL,EAAQllH,EAAQ39D,GACpB5D,KAAKkJ,IAAIu9K,EAAM,GAAIA,EAAM,GAC1B,CACF,CAGDD,GAAUplL,UAAUkoE,MAAQo9G,GAC5BF,GAAUplL,UAAV,OAAgCulL,GAChCH,GAAUplL,UAAU6H,IAAM29K,GAC1BJ,GAAUplL,UAAU+0B,IAAM0wJ,GAC1BL,GAAUplL,UAAU8H,IAAM49K,GAE1B,YCjBA,SALA,WACE9mL,KAAKsmL,SAAW,IAAIE,GACpBxmL,KAAKmI,KAAO,CACb,ECKD,SARA,SAAqBjH,GACnB,IAAIkb,EAAOpc,KAAKsmL,SACZx1K,EAASsL,EAAI,OAAWlb,GAG5B,OADAlB,KAAKmI,KAAOiU,EAAKjU,KACV2I,CACR,ECFD,SAJA,SAAkB5P,GAChB,OAAOlB,KAAKsmL,SAASr9K,IAAI/H,EAC1B,ECED,SAJA,SAAkBA,GAChB,OAAOlB,KAAKsmL,SAASnwJ,IAAIj1B,EAC1B,ECmBD,SALA,SAAkBkC,GAChB,IAAI0B,SAAc1B,EAClB,OAAgB,MAATA,IAA0B,UAAR0B,GAA4B,YAARA,EAC9C,ECQD,SAVA,SAAoB1B,GAClB,IAAKu2H,GAASv2H,GACZ,OAAO,EAIT,IAAIlD,EAAMgmL,GAAW9iL,GACrB,MA5BY,qBA4BLlD,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,CAC9D,EC7BD,SAFiB0E,GAAAA,sBCAjB,IAAImiL,GAAc,WAChB,IAAIC,EAAM,SAASx9K,KAAKy9K,IAAcA,GAAAA,MAAmBA,GAAAA,KAAAA,UAA4B,IACrF,OAAOD,EAAO,iBAAmBA,EAAO,EACzC,CAHiB,GAgBlB,SAJA,SAAkBn7K,GAChB,QAASk7K,IAAeA,MAAcl7K,CACvC,EChBD,IAGIk6K,GAHY5kD,SAAS//H,UAGIkL,SAqB7B,SAZA,SAAkBT,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOk6K,GAAal8K,KAAKgC,EACb,CAAZ,MAAOtJ,GAAK,CACd,IACE,OAAQsJ,EAAO,EACH,CAAZ,MAAOtJ,GAAK,CACf,CACD,MAAO,EACR,ECdD,IAGI2kL,GAAe,8BAGfpB,GAAY3kD,SAAS//H,UACrBkkL,GAAcpiL,OAAO9B,UAGrB2kL,GAAeD,GAAUx5K,SAGzBwF,GAAiBwzK,GAAYxzK,eAG7Bq1K,GAAa5wK,OAAO,IACtBwvK,GAAal8K,KAAKiI,IAAgBzO,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF,SARA,SAAsBD,GACpB,SAAKu2H,GAASv2H,IAAUgkL,GAAShkL,MAGnBs2H,GAAWt2H,GAAS+jL,GAAaD,IAChCh1K,KAAKm1K,GAASjkL,GAC9B,EChCD,SAJA,SAAkByS,EAAQ3U,GACxB,OAAiB,MAAV2U,OAAiB/U,EAAY+U,EAAO3U,EAC5C,ECMD,SALA,SAAmB2U,EAAQ3U,GACzB,IAAIkC,EAAQmhE,GAAS1uD,EAAQ3U,GAC7B,OAAOomL,GAAalkL,GAASA,OAAQtC,CACtC,ECRD,SAFUymL,GAAU3iL,GAAM,OCC1B,SAFmB2iL,GAAUrkL,OAAQ,UCWrC,SALA,WACElD,KAAKsmL,SAAWkB,GAAeA,GAAa,MAAQ,CAAC,EACrDxnL,KAAKmI,KAAO,CACb,ECID,SANA,SAAoBjH,GAClB,IAAI4P,EAAS9Q,KAAKm2B,IAAIj1B,WAAelB,KAAKsmL,SAASplL,GAEnD,OADAlB,KAAKmI,MAAQ2I,EAAS,EAAI,EACnBA,CACR,ECXD,IAMIgB,GAHc5O,OAAO9B,UAGQ0Q,eAoBjC,SATA,SAAiB5Q,GACf,IAAIkb,EAAOpc,KAAKsmL,SAChB,GAAIkB,GAAc,CAChB,IAAI12K,EAASsL,EAAKlb,GAClB,MArBiB,8BAqBV4P,OAA4BhQ,EAAYgQ,CAChD,CACD,OAAOgB,GAAejI,KAAKuS,EAAMlb,GAAOkb,EAAKlb,QAAOJ,CACrD,ECxBD,IAGIgR,GAHc5O,OAAO9B,UAGQ0Q,eAgBjC,SALA,SAAiB5Q,GACf,IAAIkb,EAAOpc,KAAKsmL,SAChB,OAAOkB,QAA8B1mL,IAAdsb,EAAKlb,GAAsB4Q,GAAejI,KAAKuS,EAAMlb,EAC7E,ECED,SAPA,SAAiBA,EAAKkC,GACpB,IAAIgZ,EAAOpc,KAAKsmL,SAGhB,OAFAtmL,KAAKmI,MAAQnI,KAAKm2B,IAAIj1B,GAAO,EAAI,EACjCkb,EAAKlb,GAAQsmL,SAA0B1mL,IAAVsC,EAfV,4BAekDA,EAC9DpD,IACR,ECPD,SAAS8mF,GAAKvlB,GACZ,IAAI39D,GAAS,EACTvD,EAAoB,MAAXkhE,EAAkB,EAAIA,EAAQlhE,OAG3C,IADAL,KAAKspE,UACI1lE,EAAQvD,GAAQ,CACvB,IAAIomL,EAAQllH,EAAQ39D,GACpB5D,KAAKkJ,IAAIu9K,EAAM,GAAIA,EAAM,GAC1B,CACF,CAGD3/F,GAAK1lF,UAAUkoE,MAAQm+G,GACvB3gG,GAAK1lF,UAAL,OAA2BsmL,GAC3B5gG,GAAK1lF,UAAU6H,IAAM0+K,GACrB7gG,GAAK1lF,UAAU+0B,IAAMyxJ,GACrB9gG,GAAK1lF,UAAU8H,IAAM2+K,GAErB,YCXA,SATA,WACE7nL,KAAKmI,KAAO,EACZnI,KAAKsmL,SAAW,CACd,KAAQ,IAAIx/F,GACZ,IAAO,IAAKme,IAAOuhF,IACnB,OAAU,IAAI1/F,GAEjB,ECJD,SAPA,SAAmB1jF,GACjB,IAAI0B,SAAc1B,EAClB,MAAgB,UAAR0B,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV1B,EACU,OAAVA,CACN,ECKD,SAPA,SAAoBkG,EAAKpI,GACvB,IAAIkb,EAAO9S,EAAIg9K,SACf,OAAOwB,GAAU5mL,GACbkb,EAAmB,iBAAPlb,EAAkB,SAAW,QACzCkb,EAAK9S,GACV,ECED,SANA,SAAwBpI,GACtB,IAAI4P,EAASi3K,GAAW/nL,KAAMkB,GAAjB,OAAgCA,GAE7C,OADAlB,KAAKmI,MAAQ2I,EAAS,EAAI,EACnBA,CACR,ECAD,SAJA,SAAqB5P,GACnB,OAAO6mL,GAAW/nL,KAAMkB,GAAK+H,IAAI/H,EAClC,ECED,SAJA,SAAqBA,GACnB,OAAO6mL,GAAW/nL,KAAMkB,GAAKi1B,IAAIj1B,EAClC,ECQD,SATA,SAAqBA,EAAKkC,GACxB,IAAIgZ,EAAO2rK,GAAW/nL,KAAMkB,GACxBiH,EAAOiU,EAAKjU,KAIhB,OAFAiU,EAAKlT,IAAIhI,EAAKkC,GACdpD,KAAKmI,MAAQiU,EAAKjU,MAAQA,EAAO,EAAI,EAC9BnI,IACR,ECND,SAASgoL,GAASzmH,GAChB,IAAI39D,GAAS,EACTvD,EAAoB,MAAXkhE,EAAkB,EAAIA,EAAQlhE,OAG3C,IADAL,KAAKspE,UACI1lE,EAAQvD,GAAQ,CACvB,IAAIomL,EAAQllH,EAAQ39D,GACpB5D,KAAKkJ,IAAIu9K,EAAM,GAAIA,EAAM,GAC1B,CACF,CAGDuB,GAAS5mL,UAAUkoE,MAAQ2+G,GAC3BD,GAAS5mL,UAAT,OAA+B8mL,GAC/BF,GAAS5mL,UAAU6H,IAAMk/K,GACzBH,GAAS5mL,UAAU+0B,IAAMiyJ,GACzBJ,GAAS5mL,UAAU8H,IAAMm/K,GAEzB,YCEA,SAhBA,SAAkBnnL,EAAKkC,GACrB,IAAIgZ,EAAOpc,KAAKsmL,SAChB,GAAIlqK,aAAgBoqK,GAAW,CAC7B,IAAI8B,EAAQlsK,EAAKkqK,SACjB,IAAKrhF,IAAQqjF,EAAMjoL,OAASkoL,IAG1B,OAFAD,EAAM1nL,KAAK,CAACM,EAAKkC,IACjBpD,KAAKmI,OAASiU,EAAKjU,KACZnI,KAEToc,EAAOpc,KAAKsmL,SAAW,IAAI0B,GAASM,EACrC,CAGD,OAFAlsK,EAAKlT,IAAIhI,EAAKkC,GACdpD,KAAKmI,KAAOiU,EAAKjU,KACVnI,IACR,ECjBD,SAASmyJ,GAAM5wF,GACb,IAAInlD,EAAOpc,KAAKsmL,SAAW,IAAIE,GAAUjlH,GACzCvhE,KAAKmI,KAAOiU,EAAKjU,IAClB,CAGDgqJ,GAAM/wJ,UAAUkoE,MAAQk/G,GACxBr2B,GAAM/wJ,UAAN,OAA4BqnL,GAC5Bt2B,GAAM/wJ,UAAU6H,IAAMy/K,GACtBv2B,GAAM/wJ,UAAU+0B,IAAMwyJ,GACtBx2B,GAAM/wJ,UAAU8H,IAAM0/K,GAEtB,YCLA,SAZA,SAAmBvkL,EAAOwkL,GAIxB,IAHA,IAAIjlL,GAAS,EACTvD,EAAkB,MAATgE,EAAgB,EAAIA,EAAMhE,SAE9BuD,EAAQvD,IAC8B,IAAzCwoL,EAASxkL,EAAMT,GAAQA,EAAOS,KAIpC,OAAOA,CACR,ECTD,SARsB,WACpB,IACE,IAAIwH,EAAO07K,GAAUrkL,OAAQ,kBAE7B,OADA2I,EAAK,CAAC,EAAG,GAAI,CAAC,GACPA,CACK,CAAZ,MAAOtJ,GAAK,CACf,CANqB,GCsBtB,SAbA,SAAyBsT,EAAQ3U,EAAKkC,GACzB,aAAPlC,GAAsBqT,GACxBA,GAAesB,EAAQ3U,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASkC,EACT,UAAY,IAGdyS,EAAO3U,GAAOkC,CAEjB,EClBD,IAGI0O,GAHc5O,OAAO9B,UAGQ0Q,eAoBjC,SARA,SAAqB+D,EAAQ3U,EAAKkC,GAChC,IAAI0lL,EAAWjzK,EAAO3U,GAChB4Q,GAAejI,KAAKgM,EAAQ3U,IAAQ0tB,GAAGk6J,EAAU1lL,UACxCtC,IAAVsC,GAAyBlC,KAAO2U,IACnCkzK,GAAgBlzK,EAAQ3U,EAAKkC,EAEhC,ECcD,SA1BA,SAAoByO,EAAQ9M,EAAO8Q,EAAQmzK,GACzC,IAAIC,GAASpzK,EACbA,IAAWA,EAAS,CAAC,GAKrB,IAHA,IAAIjS,GAAS,EACTvD,EAAS0E,EAAM1E,SAEVuD,EAAQvD,GAAQ,CACvB,IAAIa,EAAM6D,EAAMnB,GAEZi2D,EAAWmvH,EACXA,EAAWnzK,EAAO3U,GAAM2Q,EAAO3Q,GAAMA,EAAK2U,EAAQhE,QAClD/Q,OAEaA,IAAb+4D,IACFA,EAAWhoD,EAAO3Q,IAEhB+nL,EACFF,GAAgBlzK,EAAQ3U,EAAK24D,GAE7BqvH,GAAYrzK,EAAQ3U,EAAK24D,EAE5B,CACD,OAAOhkD,CACR,EClBD,SAVA,SAAmBqd,EAAG21J,GAIpB,IAHA,IAAIjlL,GAAS,EACTkN,EAASlH,MAAMspB,KAEVtvB,EAAQsvB,GACfpiB,EAAOlN,GAASilL,EAASjlL,GAE3B,OAAOkN,CACR,ECAD,SAJA,SAAyB1N,GACvB,OAAO6iL,GAAa7iL,IAVR,sBAUkB8iL,GAAW9iL,EAC1C,ECXD,IAAIkiL,GAAcpiL,OAAO9B,UAGrB0Q,GAAiBwzK,GAAYxzK,eAG7Bq3K,GAAuB7D,GAAY6D,qBAoBnCC,GAAcC,GAAgB,WAAa,OAAOz3K,SAAY,CAAhC,IAAsCy3K,GAAkB,SAASjmL,GACjG,OAAO6iL,GAAa7iL,IAAU0O,GAAejI,KAAKzG,EAAO,YACtD+lL,GAAqBt/K,KAAKzG,EAAO,SACrC,EAED,YCVA,SAFcwG,MAAM4G,QCNpB,SAJA,WACE,OAAO,CACR,ECXD,IAAI84K,GAAgC,iBAAX1/I,SAAuBA,UAAYA,QAAQk0D,UAAYl0D,QAG5E2/I,GAAaD,IAAgC,iBAAVv5I,QAAsBA,SAAWA,OAAO+tD,UAAY/tD,OAMvF2iC,GAHgB62G,IAAcA,GAAW3/I,UAAY0/I,GAG5B1kL,GAAAA,YAAc9D,EAwB3C,UArBqB4xE,GAASA,GAAOkxG,cAAW9iL,IAmBf0oL,GClCjC,IAGIC,GAAW,mBAoBf,SAVA,SAAiBrmL,EAAO/C,GACtB,IAAIyE,SAAc1B,EAGlB,SAFA/C,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARyE,GACU,UAARA,GAAoB2kL,GAASv3K,KAAK9O,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQ/C,CAChD,ECYD,SALA,SAAkB+C,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BtB,EC3BD,IA2BIsmL,GAAiB,CAAC,EACtBA,GAZiB,yBAYYA,GAXZ,yBAYjBA,GAXc,sBAWYA,GAVX,uBAWfA,GAVe,uBAUYA,GATZ,uBAUfA,GATsB,8BASYA,GARlB,wBAShBA,GARgB,yBAQY,EAC5BA,GAjCc,sBAiCYA,GAhCX,kBAiCfA,GApBqB,wBAoBYA,GAhCnB,oBAiCdA,GApBkB,qBAoBYA,GAhChB,iBAiCdA,GAhCe,kBAgCYA,GA/Bb,qBAgCdA,GA/Ba,gBA+BYA,GA9BT,mBA+BhBA,GA9BgB,mBA8BYA,GA7BZ,mBA8BhBA,GA7Ba,gBA6BYA,GA5BT,mBA6BhBA,GA5BiB,qBA4BY,EAc7B,SALA,SAA0BtmL,GACxB,OAAO6iL,GAAa7iL,IAClBumL,GAASvmL,EAAM/C,WAAaqpL,GAAexD,GAAW9iL,GACzD,EC5CD,SANA,SAAmByI,GACjB,OAAO,SAASzI,GACd,OAAOyI,EAAKzI,EACb,CACF,ECRD,IAAIkmL,GAAgC,iBAAX1/I,SAAuBA,UAAYA,QAAQk0D,UAAYl0D,QAG5E2/I,GAAaD,IAAgC,iBAAVv5I,QAAsBA,SAAWA,OAAO+tD,UAAY/tD,OAMvF65I,GAHgBL,IAAcA,GAAW3/I,UAAY0/I,IAGtBjE,GAAAA,QAG/BwE,GAAY,WACd,IAEE,IAAIloK,EAAQ4nK,IAAcA,GAAW39H,SAAW29H,GAAW39H,QAAQ,QAAQjqC,MAE3E,OAAIA,GAKGioK,IAAeA,GAAYE,SAAWF,GAAYE,QAAQ,OACrD,CAAZ,MAAOvnL,GAAK,CACf,CAZe,GAchB,YCxBA,IAAIwnL,GAAmBF,IAAYA,GAAAA,aAqBnC,SAFmBE,GAAmBC,GAAUD,IAAoBE,GChBpE,IAGIn4K,GAHc5O,OAAO9B,UAGQ0Q,eAqCjC,SA3BA,SAAuB1O,EAAO8mL,GAC5B,IAAIC,EAAQ35K,GAAQpN,GAChBgnL,GAASD,GAASf,GAAYhmL,GAC9BinL,GAAUF,IAAUC,GAASxG,GAASxgL,GACtCknL,GAAUH,IAAUC,IAAUC,GAAUE,GAAannL,GACrDonL,EAAcL,GAASC,GAASC,GAAUC,EAC1Cx5K,EAAS05K,EAAcC,GAAUrnL,EAAM/C,OAAQ0C,QAAU,GACzD1C,EAASyQ,EAAOzQ,OAEpB,IAAK,IAAIa,KAAOkC,GACT8mL,IAAap4K,GAAejI,KAAKzG,EAAOlC,IACvCspL,IAEQ,UAAPtpL,GAECmpL,IAAkB,UAAPnpL,GAA0B,UAAPA,IAE9BopL,IAAkB,UAAPppL,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDwpL,GAAQxpL,EAAKb,KAElByQ,EAAOlQ,KAAKM,GAGhB,OAAO4P,CACR,EC7CD,IAAIw0K,GAAcpiL,OAAO9B,UAgBzB,SAPA,SAAqBgC,GACnB,IAAIijL,EAAOjjL,GAASA,EAAMqT,YAG1B,OAAOrT,KAFqB,mBAARijL,GAAsBA,EAAKjlL,WAAckkL,GAG9D,ECVD,SAFiBO,GAAQ3iL,OAAOihB,KAAMjhB,QCCtC,IAGI4O,GAHc5O,OAAO9B,UAGQ0Q,eAsBjC,SAbA,SAAkB+D,GAChB,IAAK80K,GAAY90K,GACf,OAAO+0K,GAAW/0K,GAEpB,IAAI/E,EAAS,GACb,IAAK,IAAI5P,KAAOgC,OAAO2S,GACjB/D,GAAejI,KAAKgM,EAAQ3U,IAAe,eAAPA,GACtC4P,EAAOlQ,KAAKM,GAGhB,OAAO4P,CACR,ECKD,SAJA,SAAqB1N,GACnB,OAAgB,MAATA,GAAiBumL,GAASvmL,EAAM/C,UAAYq5H,GAAWt2H,EAC/D,ECMD,SAJA,SAAcyS,GACZ,OAAOg1K,GAAYh1K,GAAUi1K,GAAcj1K,GAAUk1K,GAASl1K,EAC/D,EClBD,SAJA,SAAoBA,EAAQhE,GAC1B,OAAOgE,GAAUm1K,GAAWn5K,EAAQsS,GAAKtS,GAASgE,EACnD,ECKD,SAVA,SAAsBA,GACpB,IAAI/E,EAAS,GACb,GAAc,MAAV+E,EACF,IAAK,IAAI3U,KAAOgC,OAAO2S,GACrB/E,EAAOlQ,KAAKM,GAGhB,OAAO4P,CACR,ECZD,IAGIgB,GAHc5O,OAAO9B,UAGQ0Q,eAwBjC,SAfA,SAAoB+D,GAClB,IAAK8jH,GAAS9jH,GACZ,OAAOo1K,GAAap1K,GAEtB,IAAIq1K,EAAUP,GAAY90K,GACtB/E,EAAS,GAEb,IAAK,IAAI5P,KAAO2U,GACD,eAAP3U,IAAyBgqL,GAAYp5K,GAAejI,KAAKgM,EAAQ3U,KACrE4P,EAAOlQ,KAAKM,GAGhB,OAAO4P,CACR,ECCD,SAJA,SAAgB+E,GACd,OAAOg1K,GAAYh1K,GAAUi1K,GAAcj1K,GAAQ,GAAQs1K,GAAWt1K,EACvE,ECbD,SAJA,SAAsBA,EAAQhE,GAC5B,OAAOgE,GAAUm1K,GAAWn5K,EAAQu5K,GAAOv5K,GAASgE,EACrD,ECXD,IAAIyzK,GAAgC,iBAAX1/I,SAAuBA,UAAYA,QAAQk0D,UAAYl0D,QAG5E2/I,GAAaD,IAAgC,iBAAVv5I,QAAsBA,SAAWA,OAAO+tD,UAAY/tD,OAMvF2iC,GAHgB62G,IAAcA,GAAW3/I,UAAY0/I,GAG5B1kL,GAAAA,YAAc9D,EACvCm0E,GAAcvC,GAASA,GAAOuC,iBAAcn0E,EAqBhD,SAXA,SAAqB6nC,EAAQ0iJ,GAC3B,GAAIA,EACF,OAAO1iJ,EAAO1kC,QAEhB,IAAI5D,EAASsoC,EAAOtoC,OAChByQ,EAASmkE,GAAcA,GAAY50E,GAAU,IAAIsoC,EAAOlyB,YAAYpW,GAGxE,OADAsoC,EAAOzjC,KAAK4L,GACLA,CACR,ECbD,SAXA,SAAmBe,EAAQxN,GACzB,IAAIT,GAAS,EACTvD,EAASwR,EAAOxR,OAGpB,IADAgE,IAAUA,EAAQuF,MAAMvJ,MACfuD,EAAQvD,GACfgE,EAAMT,GAASiO,EAAOjO,GAExB,OAAOS,CACR,ECOD,SAfA,SAAqBA,EAAOinL,GAM1B,IALA,IAAI1nL,GAAS,EACTvD,EAAkB,MAATgE,EAAgB,EAAIA,EAAMhE,OACnCkrL,EAAW,EACXz6K,EAAS,KAEJlN,EAAQvD,GAAQ,CACvB,IAAI+C,EAAQiB,EAAMT,GACd0nL,EAAUloL,EAAOQ,EAAOS,KAC1ByM,EAAOy6K,KAAcnoL,EAExB,CACD,OAAO0N,CACR,ECAD,SAJA,WACE,MAAO,EACR,EChBD,IAGIq4K,GAHcjmL,OAAO9B,UAGc+nL,qBAGnCqC,GAAmBtoL,OAAOqiF,sBAmB9B,SAVkBimG,GAA+B,SAAS31K,GACxD,OAAc,MAAVA,EACK,IAETA,EAAS3S,OAAO2S,GACT41K,GAAYD,GAAiB31K,IAAS,SAAS61K,GACpD,OAAOvC,GAAqBt/K,KAAKgM,EAAQ61K,EAC1C,IACF,EARoCC,GCJrC,SAJA,SAAqB95K,EAAQgE,GAC3B,OAAOm1K,GAAWn5K,EAAQ+5K,GAAW/5K,GAASgE,EAC/C,ECMD,SAXA,SAAmBxR,EAAOua,GAKxB,IAJA,IAAIhb,GAAS,EACTvD,EAASue,EAAOve,OAChBkH,EAASlD,EAAMhE,SAEVuD,EAAQvD,GACfgE,EAAMkD,EAAS3D,GAASgb,EAAOhb,GAEjC,OAAOS,CACR,ECOD,SAlBuBnB,OAAOqiF,sBASqB,SAAS1vE,GAE1D,IADA,IAAI/E,EAAS,GACN+E,GACLg2K,GAAU/6K,EAAQ86K,GAAW/1K,IAC7BA,EAASuwK,GAAavwK,GAExB,OAAO/E,CACR,EAPsC66K,GCAvC,SAJA,SAAuB95K,EAAQgE,GAC7B,OAAOm1K,GAAWn5K,EAAQi6K,GAAaj6K,GAASgE,EACjD,ECMD,SALA,SAAwBA,EAAQk2K,EAAUC,GACxC,IAAIl7K,EAASi7K,EAASl2K,GACtB,OAAOrF,GAAQqF,GAAU/E,EAAS+6K,GAAU/6K,EAAQk7K,EAAYn2K,GACjE,ECFD,SAJA,SAAoBA,GAClB,OAAOo2K,GAAep2K,EAAQsO,GAAMynK,GACrC,ECGD,SAJA,SAAsB/1K,GACpB,OAAOo2K,GAAep2K,EAAQu1K,GAAQU,GACvC,ECRD,SAFevE,GAAU3iL,GAAM,YCE/B,SAFc2iL,GAAU3iL,GAAM,WCE9B,SAFU2iL,GAAU3iL,GAAM,OCE1B,SAFc2iL,GAAU3iL,GAAM,WCK9B,IAAIsnL,GAAS,eAETC,GAAa,mBACbC,GAAS,eACTC,GAAa,mBAEbC,GAAc,oBAGdC,GAAqBlF,GAASmF,IAC9BC,GAAgBpF,GAASpiF,IACzBynF,GAAoBrF,GAASz9J,IAC7B+iK,GAAgBtF,GAAShzJ,IACzBu4J,GAAoBvF,GAASv+K,IAS7B+jL,GAAS3G,IAGRsG,IAAYK,GAAO,IAAIL,GAAS,IAAI9/G,YAAY,MAAQ4/G,IACxDrnF,IAAO4nF,GAAO,IAAI5nF,KAAQinF,IAC1BtiK,IAAWijK,GAAOjjK,GAAAA,YAAsBuiK,IACxC93J,IAAOw4J,GAAO,IAAIx4J,KAAQ+3J,IAC1BtjL,IAAW+jL,GAAO,IAAI/jL,KAAYujL,MACrCQ,GAAS,SAASzpL,GAChB,IAAI0N,EAASo1K,GAAW9iL,GACpBijL,EA/BQ,mBA+BDv1K,EAAsB1N,EAAMqT,iBAAc3V,EACjDgsL,EAAazG,EAAOgB,GAAShB,GAAQ,GAEzC,GAAIyG,EACF,OAAQA,GACN,KAAKP,GAAoB,OAAOD,GAChC,KAAKG,GAAe,OAAOP,GAC3B,KAAKQ,GAAmB,OAAOP,GAC/B,KAAKQ,GAAe,OAAOP,GAC3B,KAAKQ,GAAmB,OAAOP,GAGnC,OAAOv7K,CACR,GAGH,YCxDA,IAGIgB,GAHc5O,OAAO9B,UAGQ0Q,eAqBjC,SAZA,SAAwBzN,GACtB,IAAIhE,EAASgE,EAAMhE,OACfyQ,EAAS,IAAIzM,EAAMoS,YAAYpW,GAOnC,OAJIA,GAA6B,iBAAZgE,EAAM,IAAkByN,GAAejI,KAAKxF,EAAO,WACtEyM,EAAOlN,MAAQS,EAAMT,MACrBkN,EAAOyI,MAAQlV,EAAMkV,OAEhBzI,CACR,EClBD,SAFiBlM,GAAAA,WCYjB,SANA,SAA0ByjD,GACxB,IAAIv3C,EAAS,IAAIu3C,EAAY5xC,YAAY4xC,EAAYlZ,YAErD,OADA,IAAIhzB,GAAWrL,GAAQ5H,IAAI,IAAIiT,GAAWksC,IACnCv3C,CACR,ECED,SALA,SAAuBi8K,EAAU1B,GAC/B,IAAI1iJ,EAAS0iJ,EAAS2B,GAAiBD,EAASpkJ,QAAUokJ,EAASpkJ,OACnE,OAAO,IAAIokJ,EAASt2K,YAAYkyB,EAAQokJ,EAASE,WAAYF,EAAS59I,WACvE,ECZD,IAAI+9I,GAAU,OAed,SANA,SAAqBC,GACnB,IAAIr8K,EAAS,IAAIq8K,EAAO12K,YAAY02K,EAAOt7K,OAAQq7K,GAAQ1jL,KAAK2jL,IAEhE,OADAr8K,EAAOQ,UAAY67K,EAAO77K,UACnBR,CACR,ECXD,IAAIs8K,GAAcp5G,GAASA,GAAAA,eAAmBlzE,EAC1CusL,GAAgBD,GAAcA,GAAY3vF,aAAU38F,EAaxD,SAJA,SAAqB4qL,GACnB,OAAO2B,GAAgBnqL,OAAOmqL,GAAcxjL,KAAK6hL,IAAW,CAAC,CAC9D,ECAD,SALA,SAAyB4B,EAAYjC,GACnC,IAAI1iJ,EAAS0iJ,EAAS2B,GAAiBM,EAAW3kJ,QAAU2kJ,EAAW3kJ,OACvE,OAAO,IAAI2kJ,EAAW72K,YAAYkyB,EAAQ2kJ,EAAWL,WAAYK,EAAWjtL,OAC7E,EC+DD,SApCA,SAAwBwV,EAAQ3V,EAAKmrL,GACnC,IAAIhF,EAAOxwK,EAAOY,YAClB,OAAQvW,GACN,IA3BiB,uBA4Bf,OAAO8sL,GAAiBn3K,GAE1B,IAvCU,mBAwCV,IAvCU,gBAwCR,OAAO,IAAIwwK,GAAMxwK,GAEnB,IAjCc,oBAkCZ,OAAO03K,GAAc13K,EAAQw1K,GAE/B,IAnCa,wBAmCI,IAlCJ,wBAmCb,IAlCU,qBAkCI,IAjCH,sBAiCkB,IAhClB,sBAiCX,IAhCW,sBAgCI,IA/BG,6BA+BmB,IA9BzB,uBA8ByC,IA7BzC,uBA8BV,OAAOmC,GAAgB33K,EAAQw1K,GAEjC,IAjDS,eA2DT,IAxDS,eAyDP,OAAO,IAAIhF,EARb,IAnDY,kBAoDZ,IAjDY,kBAkDV,OAAO,IAAIA,EAAKxwK,GAElB,IAtDY,kBAuDV,OAAO43K,GAAY53K,GAKrB,IAzDY,kBA0DV,OAAO63K,GAAY73K,GAExB,ECvED,IAAI83K,GAAezqL,OAAOkI,OA0B1B,SAhBkB,WAChB,SAASyK,IAAW,CACpB,OAAO,SAASswK,GACd,IAAKxsD,GAASwsD,GACZ,MAAO,CAAC,EAEV,GAAIwH,GACF,OAAOA,GAAaxH,GAEtBtwK,EAAOzU,UAAY+kL,EACnB,IAAIr1K,EAAS,IAAI+E,EAEjB,OADAA,EAAOzU,eAAYN,EACZgQ,CACR,CACF,CAdiB,GCIlB,SANA,SAAyB+E,GACvB,MAAqC,mBAAtBA,EAAOY,aAA8Bk0K,GAAY90K,GAE5D,CAAC,EADD+3K,GAAWxH,GAAavwK,GAE7B,ECED,SAJA,SAAmBzS,GACjB,OAAO6iL,GAAa7iL,IAVT,gBAUmBypL,GAAOzpL,EACtC,ECVD,IAAIyqL,GAAYhE,IAAYA,GAAAA,MAqB5B,SAFYgE,GAAY7D,GAAU6D,IAAaC,GCP/C,SAJA,SAAmB1qL,GACjB,OAAO6iL,GAAa7iL,IAVT,gBAUmBypL,GAAOzpL,EACtC,ECVD,IAAI2qL,GAAYlE,IAAYA,GAAAA,MAqB5B,SAFYkE,GAAY/D,GAAU+D,IAAaC,GCA/C,IAKIC,GAAU,qBAKVC,GAAU,oBAIVC,GAAY,kBAoBZC,GAAgB,CAAC,EACrBA,GAAcH,IAAWG,GA7BV,kBA8BfA,GAfqB,wBAeWA,GAdd,qBAelBA,GA9Bc,oBA8BWA,GA7BX,iBA8BdA,GAfiB,yBAeWA,GAdX,yBAejBA,GAdc,sBAcWA,GAbV,uBAcfA,GAbe,uBAaWA,GA5Bb,gBA6BbA,GA5BgB,mBA4BWA,GAAcD,mBACzCC,GA3BgB,mBA2BWA,GA1Bd,gBA2BbA,GA1BgB,mBA0BWA,GAzBX,mBA0BhBA,GAhBe,uBAgBWA,GAfJ,8BAgBtBA,GAfgB,wBAeWA,GAdX,yBAcsC,EACtDA,GArCe,kBAqCWA,GAAcF,IACxCE,GA5BiB,qBA4BW,EA8F5B,SA5EA,SAASC,EAAUjrL,EAAOkrL,EAAStF,EAAY9nL,EAAK2U,EAAQ2gB,GAC1D,IAAI1lB,EACAu6K,EAnEgB,EAmEPiD,EACTC,EAnEgB,EAmEPD,EACTE,EAnEmB,EAmEVF,EAKb,GAHItF,IACFl4K,EAAS+E,EAASmzK,EAAW5lL,EAAOlC,EAAK2U,EAAQ2gB,GAASwyJ,EAAW5lL,SAExDtC,IAAXgQ,EACF,OAAOA,EAET,IAAK6oH,GAASv2H,GACZ,OAAOA,EAET,IAAI+mL,EAAQ35K,GAAQpN,GACpB,GAAI+mL,GAEF,GADAr5K,EAAS29K,GAAerrL,IACnBioL,EACH,OAAOx+G,GAAUzpE,EAAO0N,OAErB,CACL,IAAI5Q,EAAM2sL,GAAOzpL,GACbsrL,EAASxuL,GAAOguL,IA7EX,8BA6EsBhuL,EAE/B,GAAI0jL,GAASxgL,GACX,OAAOurL,GAAYvrL,EAAOioL,GAE5B,GAAInrL,GAAOiuL,IAAajuL,GAAO+tL,IAAYS,IAAW74K,GAEpD,GADA/E,EAAUy9K,GAAUG,EAAU,CAAC,EAAIE,GAAgBxrL,IAC9CioL,EACH,OAAOkD,EACHM,GAAczrL,EAAO0rL,GAAah+K,EAAQ1N,IAC1C2rL,GAAY3rL,EAAO4rL,GAAWl+K,EAAQ1N,QAEvC,CACL,IAAKgrL,GAAcluL,GACjB,OAAO2V,EAASzS,EAAQ,CAAC,EAE3B0N,EAASm+K,GAAe7rL,EAAOlD,EAAKmrL,EACrC,CACF,CAED70J,IAAUA,EAAQ,IAAI27H,IACtB,IAAI+8B,EAAU14J,EAAMvtB,IAAI7F,GACxB,GAAI8rL,EACF,OAAOA,EAET14J,EAAMttB,IAAI9F,EAAO0N,GAEbq+K,GAAM/rL,GACRA,EAAM7B,SAAQ,SAAS6tL,GACrBt+K,EAAOkQ,IAAIqtK,EAAUe,EAAUd,EAAStF,EAAYoG,EAAUhsL,EAAOozB,GACtE,IACQ64J,GAAMjsL,IACfA,EAAM7B,SAAQ,SAAS6tL,EAAUluL,GAC/B4P,EAAO5H,IAAIhI,EAAKmtL,EAAUe,EAAUd,EAAStF,EAAY9nL,EAAKkC,EAAOozB,GACtE,IAGH,IAIIzxB,EAAQolL,OAAQrpL,GAJL0tL,EACVD,EAASe,GAAeC,GACxBhB,EAASnD,GAASjnK,IAEkB/gB,GASzC,OARAosL,GAAUzqL,GAAS3B,GAAO,SAASgsL,EAAUluL,GACvC6D,IAEFqqL,EAAWhsL,EADXlC,EAAMkuL,IAIRlG,GAAYp4K,EAAQ5P,EAAKmtL,EAAUe,EAAUd,EAAStF,EAAY9nL,EAAKkC,EAAOozB,GAC/E,IACM1lB,CACR,EChID,SAJA,SAAe1N,GACb,OAAOirL,GAAUjrL,EA7BM,EA8BxB,ECbD,SAXA,SAAkBiB,EAAOwkL,GAKvB,IAJA,IAAIjlL,GAAS,EACTvD,EAAkB,MAATgE,EAAgB,EAAIA,EAAMhE,OACnCyQ,EAASlH,MAAMvJ,KAEVuD,EAAQvD,GACfyQ,EAAOlN,GAASilL,EAASxkL,EAAMT,GAAQA,EAAOS,GAEhD,OAAOyM,CACR,ECUD,SALA,SAAkB1N,GAChB,MAAuB,iBAATA,GACX6iL,GAAa7iL,IArBF,mBAqBY8iL,GAAW9iL,EACtC,ECuBD,SAASqM,GAAQ5D,EAAM4jL,GACrB,GAAmB,mBAAR5jL,GAAmC,MAAZ4jL,GAAuC,mBAAZA,EAC3D,MAAM,IAAI/iK,UAhDQ,uBAkDpB,IAAIgjK,EAAW,WACb,IAAIx+K,EAAOU,UACP1Q,EAAMuuL,EAAWA,EAAS19K,MAAM/R,KAAMkR,GAAQA,EAAK,GACnDlG,EAAQ0kL,EAAS1kL,MAErB,GAAIA,EAAMmrB,IAAIj1B,GACZ,OAAO8J,EAAM/B,IAAI/H,GAEnB,IAAI4P,EAASjF,EAAKkG,MAAM/R,KAAMkR,GAE9B,OADAw+K,EAAS1kL,MAAQA,EAAM9B,IAAIhI,EAAK4P,IAAW9F,EACpC8F,CACR,EAED,OADA4+K,EAAS1kL,MAAQ,IAAKyE,GAAQkgL,OAAS3H,IAChC0H,CACR,CAGDjgL,GAAQkgL,MAAQ3H,GAEhB,YC/CA,SAZA,SAAuBn8K,GACrB,IAAIiF,EAASrB,GAAQ5D,GAAM,SAAS3K,GAIlC,OAfmB,MAYf8J,EAAM7C,MACR6C,EAAMs+D,QAEDpoE,CACR,IAEG8J,EAAQ8F,EAAO9F,MACnB,OAAO8F,CACR,ECpBD,IAAI8+K,GAAa,mGAGbC,GAAe,WASfC,GAAeC,IAAc,SAASx/K,GACxC,IAAIO,EAAS,GAOb,OAN6B,KAAzBP,EAAO1M,WAAW,IACpBiN,EAAOlQ,KAAK,IAEd2P,EAAOlN,QAAQusL,IAAY,SAASnmL,EAAOo+B,EAAQ6wF,EAAOs3D,GACxDl/K,EAAOlQ,KAAK83H,EAAQs3D,EAAU3sL,QAAQwsL,GAAc,MAAShoJ,GAAUp+B,EACxE,IACMqH,CACR,IAED,YCNA,SARA,SAAe1N,GACb,GAAoB,iBAATA,GAAqB6sL,GAAS7sL,GACvC,OAAOA,EAET,IAAI0N,EAAU1N,EAAQ,GACtB,MAAkB,KAAV0N,GAAkB,EAAI1N,IAdjB,SAcwC,KAAO0N,CAC7D,ECZD,IAGIs8K,GAAcp5G,GAASA,GAAAA,eAAmBlzE,EAC1CovL,GAAiB9C,GAAcA,GAAY9gL,cAAWxL,EA0B1D,SAhBA,SAASqvL,EAAa/sL,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIoN,GAAQpN,GAEV,OAAOgtL,GAAShtL,EAAO+sL,GAAgB,GAEzC,GAAIF,GAAS7sL,GACX,OAAO8sL,GAAiBA,GAAermL,KAAKzG,GAAS,GAEvD,IAAI0N,EAAU1N,EAAQ,GACtB,MAAkB,KAAV0N,GAAkB,EAAI1N,IA3BjB,SA2BwC,KAAO0N,CAC7D,ECPD,SAJA,SAAkB1N,GAChB,OAAgB,MAATA,EAAgB,GAAK+sL,GAAa/sL,EAC1C,ECOD,SAPA,SAAgBA,GACd,OAAIoN,GAAQpN,GACHgtL,GAAShtL,EAAOitL,IAElBJ,GAAS7sL,GAAS,CAACA,GAASypE,GAAUijH,GAAaxjL,GAASlJ,IACpE,ECXD,SAlBA,SAAiB4iC,EAAWnqB,GAgB3B,ECWD,SAJA,SAAmBzY,GACjB,OAAOirL,GAAUjrL,EAAOktL,EACzB,4jBCnBYC,GAAe,SAACntL,GAAD,OAC1BwG,MAAM4G,QAAQpN,IAA2B,IAAjBA,EAAM/C,MADJ,EAIfq5H,GAAa,SAACppH,GAAD,MACT,oBAARA,CADiB,EAIbqpH,GAAW,SAACrpH,GAAD,OACd,OAARA,GAA+B,kBAARA,CADD,EAIXkf,GAAY,SAAClf,GAAD,OACvBvN,OAAOF,KAAKioB,MAAM0zC,OAAOluD,OAAWA,CADb,EAIZkgL,GAAW,SAAClgL,GAAD,MACkB,oBAAxCpN,OAAO9B,UAAUkL,SAASzC,KAAKyG,EADT,EAQXmgL,GAAkB,SAACzrL,GAAD,OACM,IAAnCkH,EAAAA,SAAAA,MAAqBlH,EADQ,EAIlB0rL,GAAY,SAACttL,GAAD,OACvBu2H,GAASv2H,IAAUs2H,GAAWt2H,EAAM2mB,KADb,WAiCT4mK,GACdrgL,EACApP,EACA6/H,EACAr/F,QAAAA,IAAAA,IAAAA,EAAY,GAGZ,IADA,IAAMpmB,EAAOs1K,GAAO1vL,GACboP,GAAOoxB,EAAIpmB,EAAKjb,QACrBiQ,EAAMA,EAAIgL,EAAKomB,MAEjB,YAAe5gC,IAARwP,EAAoBywH,EAAMzwH,CAClC,UA0BeugL,GAAMvgL,EAAUgL,EAAclY,GAM5C,IALA,IAAI0mC,EAAWa,GAAMr6B,GACjBwgL,EAAchnJ,EACd7nC,EAAI,EACJ8uL,EAAYH,GAAOt1K,GAEhBrZ,EAAI8uL,EAAU1wL,OAAS,EAAG4B,IAAK,CACpC,IAAM+uL,EAAsBD,EAAU9uL,GAClCgvL,EAAkBN,GAAMrgL,EAAKygL,EAAU9sL,MAAM,EAAGhC,EAAI,IAExD,GAAIgvL,IAAet3D,GAASs3D,IAAernL,MAAM4G,QAAQygL,IACvDH,EAASA,EAAOE,GAAermJ,GAAMsmJ,OAChC,CACL,IAAMC,EAAmBH,EAAU9uL,EAAI,GACvC6uL,EAASA,EAAOE,GACdxhK,GAAU0hK,IAAa1yH,OAAO0yH,IAAa,EAAI,GAAK,CAAC,CACxD,CACF,CAGD,OAAW,IAANjvL,EAAUqO,EAAMwgL,GAAQC,EAAU9uL,MAAQmB,EACtCkN,QAGKxP,IAAVsC,SACK0tL,EAAOC,EAAU9uL,IAExB6uL,EAAOC,EAAU9uL,IAAMmB,EAKf,IAANnB,QAAqBnB,IAAVsC,UACN0mC,EAAIinJ,EAAU9uL,IAGhB6nC,EACR,UASeqnJ,GACdt7K,EACAzS,EACAguL,EACAjpI,QADAipI,IAAAA,IAAAA,EAAe,IAAItoL,cACnBq/C,IAAAA,IAAAA,EAAgB,CAAC,GAEjB,IAAK,IAAL,MAAcjlD,OAAOihB,KAAKtO,GAA1B,eAAmC,CAA9B,IAAIxN,EAAC,KACFmpB,EAAM3b,EAAOxN,GACfsxH,GAASnoG,GACN4/J,EAAQnoL,IAAIuoB,KACf4/J,EAAQloL,IAAIsoB,GAAK,GAIjB22B,EAAS9/C,GAAKuB,MAAM4G,QAAQghB,GAAO,GAAK,CAAC,EACzC2/J,GAAsB3/J,EAAKpuB,EAAOguL,EAASjpI,EAAS9/C,KAGtD8/C,EAAS9/C,GAAKjF,CAEjB,CAED,OAAO+kD,CACR,KC1KYkpI,IAAgBnlL,EAAAA,EAAAA,oBAC3BpL,GAEFuwL,GAAch9K,YAAc,gBAE5B,IAAai9K,GAAiBD,GAAc1lL,SACd0lL,GAAc79D,SAE5C,SAAgB+9D,KACd,IAAMC,GAAStlL,EAAAA,EAAAA,YAA4CmlL,IAO3D,OAJIG,GADJ,IAAU,GAKHA,CACR,CCiCD,SAASC,GACP15K,EACA0xB,GAEA,OAAQA,EAAI3kC,MACV,IAAK,aACH,OAAO,MAAKiT,EAAZ,CAAmB6G,OAAQ6qB,EAAIV,UACjC,IAAK,cACH,OAAO,MAAKhxB,EAAZ,CAAmB25K,QAASjoJ,EAAIV,UAClC,IAAK,aACH,OAAI4oJ,KAAQ55K,EAAMqD,OAAQquB,EAAIV,SACrBhxB,EAGF,MAAKA,EAAZ,CAAmBqD,OAAQquB,EAAIV,UACjC,IAAK,aACH,OAAO,MAAKhxB,EAAZ,CAAmBwwC,OAAQ9e,EAAIV,UACjC,IAAK,mBACH,OAAO,MAAKhxB,EAAZ,CAAmB65K,aAAcnoJ,EAAIV,UACvC,IAAK,mBACH,OAAO,MAAKhxB,EAAZ,CAAmB85K,aAAcpoJ,EAAIV,UACvC,IAAK,kBACH,OAAO,MACFhxB,EADL,CAEE6G,OAAQiyK,GAAM94K,EAAM6G,OAAQ6qB,EAAIV,QAAQtQ,MAAOgR,EAAIV,QAAQ3lC,SAE/D,IAAK,oBACH,OAAO,MACF2U,EADL,CAEE25K,QAASb,GAAM94K,EAAM25K,QAASjoJ,EAAIV,QAAQtQ,MAAOgR,EAAIV,QAAQ3lC,SAEjE,IAAK,kBACH,OAAO,MACF2U,EADL,CAEEqD,OAAQy1K,GAAM94K,EAAMqD,OAAQquB,EAAIV,QAAQtQ,MAAOgR,EAAIV,QAAQ3lC,SAE/D,IAAK,aACH,OAAO,MAAK2U,EAAU0xB,EAAIV,SAC5B,IAAK,mBACH,OAAOU,EAAIV,QAAQhxB,GACrB,IAAK,iBACH,OAAO,MACFA,EADL,CAEE25K,QAASP,GACPp5K,EAAM6G,QACN,GAEFgzK,cAAc,EACdE,YAAa/5K,EAAM+5K,YAAc,IAErC,IAAK,iBAKL,IAAK,iBACH,OAAO,MACF/5K,EADL,CAEE65K,cAAc,IAElB,QACE,OAAO75K,EAEZ,CAGD,IAAMg6K,GAAqC,CAAC,EACtCC,GAAuC,CAAC,EAU9C,SAAgBC,GAAAA,WACdC,iBAAAA,OAAAA,IAAmB,GAAAC,MACnBC,eAAAA,OAAAA,IAAiB,GAAAC,MACjBC,gBAAAA,OAAAA,IAAkB,GAAAC,EAClBC,EAAAA,EAAAA,mBACAC,mBAAAA,OAAAA,IAAqB,GAAAC,EACrBC,EAAAA,EAAAA,SACGnrC,EAAAA,GAAAA,EAAAA,CAAAA,mBAAAA,iBAAAA,kBAAAA,iBAAAA,qBAAAA,aAEGziJ,EAAQ,IACZmtL,iBAAAA,EACAE,eAAAA,EACAE,gBAAAA,EACAK,SAAAA,GACGnrC,GAECorC,GAAgB1mL,EAAAA,EAAAA,QAAanH,EAAM6tL,eACnCC,GAAgB3mL,EAAAA,EAAAA,QAAanH,EAAM8tL,eAAiBd,IACpDe,GAAiB5mL,EAAAA,EAAAA,QAAanH,EAAM+tL,gBAAkBd,IACtDvsD,GAAgBv5H,EAAAA,EAAAA,QAAanH,EAAM0gI,eACnCjpB,GAAYtwG,EAAAA,EAAAA,SAAsB,GAClC6mL,GAAgB7mL,EAAAA,EAAAA,QAA4B,CAAC,IAYnDA,EAAAA,EAAAA,YAAgB,WAGd,OAFAswG,EAAUxnG,SAAU,EAEb,WACLwnG,EAAUxnG,SAAU,CADtB,CAHF,GAMG,WAEuB9I,EAAAA,EAAAA,YAExBulL,GAAe,CACf7yK,OAAQ7Z,EAAM6tL,cACdx3K,OAAQrW,EAAM8tL,eAAiBd,GAC/BL,QAAS3sL,EAAM+tL,gBAAkBd,GACjCzpI,OAAQxjD,EAAM0gI,cACdmsD,cAAc,EACdC,cAAc,EACdC,YAAa,IATR/5K,EAAAA,EAAAA,GAAO0oG,EAAAA,EAAAA,GAYRuyE,GAAqB9mL,EAAAA,EAAAA,cACzB,SAAC0S,EAAgB6Z,GACf,OAAO,IAAI7O,SAAQ,SAACE,EAASkW,GAC3B,IAAMizJ,EAAuBluL,EAAMwoC,SAAiB3uB,EAAQ6Z,GACjC,MAAvBw6J,EAEFnpK,EAAQioK,IACCrB,GAAUuC,GAClBA,EAAqClpK,MACpC,SAAA3O,GACE0O,EAAQ1O,GAAU22K,GAFrB,IAIC,SAAAmB,GAQElzJ,EAAOkzJ,EAZV,IAgBDppK,EAAQmpK,EAtBL,GAFgB,GA4BzB,CAACluL,EAAMwoC,WAMH4lJ,GAAsBjnL,EAAAA,EAAAA,cAC1B,SAAC0S,EAAgB6Z,GACf,IAAM26J,EAAmBruL,EAAMquL,iBACzBC,EAAS35D,GAAW05D,GACtBA,EAAiB36J,GACjB26J,EACE9oI,EACJ7xB,GAAS46J,EAAOC,WACZD,EAAOC,WAAW76J,EAAO7Z,GAs0BrC,SACEA,EACAy0K,EACAE,EACA9nH,QADA8nH,IAAAA,IAAAA,GAAgB,QAChB9nH,IAAAA,IAAAA,EAAe,CAAC,GAEhB,IAAM+nH,EAA6BC,GAAyB70K,GAC5D,OAAOy0K,EAAOE,EAAO,eAAiB,YAAYC,EAAc,CAC9DE,YAAY,EACZjoH,QAASA,GAEZ,CAh1BWkoH,CAAkB/0K,EAAQy0K,GAChC,OAAO,IAAIzpK,SAAQ,SAACE,EAASkW,GAC3BsqB,EAAQvgC,MACN,WACED,EAAQioK,GAFZ,IAIE,SAACj8J,GAKkB,oBAAbA,EAAI7qB,KACN6e,EAuyBd,SAAwC8pK,GACtC,IAAIx4K,EAA+B,CAAC,EACpC,GAAIw4K,EAAS7sG,MAAO,CAClB,GAA8B,IAA1B6sG,EAAS7sG,MAAM1mF,OACjB,OAAOwwL,GAAMz1K,EAAQw4K,EAASt4K,KAAMs4K,EAAS/3K,SAE1C,IAAL,EAAgB+3K,EAAS7sG,MAAzB,wDAAgC,kCAAA8sG,EAAAA,EAAAA,IAAA,UAAAljL,EAAAA,EAAAA,QAAA,WAAAkjL,EAAAA,EAAAA,KAAA,KAAvB/9J,EAAuB,EACzB66J,GAAMv1K,EAAQ0a,EAAIxa,QACrBF,EAASy1K,GAAMz1K,EAAQ0a,EAAIxa,KAAMwa,EAAIja,SAExC,CACF,CACD,OAAOT,CACR,CApzBqB04K,CAAgBh+J,IAUxBkK,EAAOlK,EApBb,GADK,GAViB,GAqC1B,CAAC/wB,EAAMquL,mBAGHW,GAAgC7nL,EAAAA,EAAAA,cACpC,SAACusB,EAAer1B,GACd,OAAO,IAAIwmB,SAAQ,SAAAE,GAAO,OACxBA,EAAQipK,EAAc/9K,QAAQyjB,GAAO8U,SAASnqC,GADzC,GAF2B,GAMpC,IAGI4wL,GAA2B9nL,EAAAA,EAAAA,cAC/B,SAAC0S,GACC,IAAMq1K,EAAoC/wL,OAAOihB,KAC/C4uK,EAAc/9K,SACdoO,QAAO,SAAAgB,GAAC,OAAIs1G,GAAWq5D,EAAc/9K,QAAQoP,GAAGmpB,SAFR,IAKpC2mJ,EACJD,EAAwB5zL,OAAS,EAC7B4zL,EAAwB3qL,KAAI,SAAA8a,GAAC,OAC3B2vK,EAA8B3vK,EAAGusK,GAAM/xK,EAAQwF,GADjD,IAGA,CAACwF,QAAQE,QAAQ,oCAEvB,OAAOF,QAAQC,IAAIqqK,GAAkBnqK,MAAK,SAACoqK,GAAD,OACxCA,EAAgBx0K,QAAO,SAACxa,EAAMu5K,EAAM96K,GAClC,MAAa,oCAAT86K,GAGAA,IACFv5K,EAAO0rL,GAAM1rL,EAAM8uL,EAAwBrwL,GAAQ86K,IAH5Cv5K,CAFX,GAQG,CAAC,EATC,GAdsB,GA0B/B,CAAC4uL,IAIGK,GAAoBloL,EAAAA,EAAAA,cACxB,SAAC0S,GACC,OAAOgL,QAAQC,IAAI,CACjBmqK,EAAyBp1K,GACzB7Z,EAAMquL,iBAAmBD,EAAoBv0K,GAAU,CAAC,EACxD7Z,EAAMwoC,SAAWylJ,EAAmBp0K,GAAU,CAAC,IAC9CmL,MAAK,gBAAEsqK,EAAAA,EAAAA,GAAaC,EAAAA,EAAAA,GAAcC,EAAAA,EAAAA,GAKnC,OAJuBlgI,GAAAA,IACrB,CAACggI,EAAaC,EAAcC,GAC5B,CAAEtP,WAAAA,IAPC,GAFe,GAcxB,CACElgL,EAAMwoC,SACNxoC,EAAMquL,iBACNY,EACAhB,EACAG,IAKEqB,EAA+BnqH,IACnC,SAACzrD,GAEC,YAFDA,IAAAA,IAAAA,EAAiB7G,EAAM6G,QACtB6hG,EAAS,CAAE37G,KAAM,mBAAoBikC,SAAS,IACvCqrJ,EAAkBx1K,GAAQmL,MAAK,SAAA0qK,GAKpC,OAJMj4E,EAAUxnG,UACdyrG,EAAS,CAAE37G,KAAM,mBAAoBikC,SAAS,IAC9C03E,EAAS,CAAE37G,KAAM,aAAcikC,QAAS0rJ,KAEnCA,CALF,GAH0C,KAarDvoL,EAAAA,EAAAA,YAAgB,WAEZomL,IACsB,IAAtB91E,EAAUxnG,SACV28K,KAAQiB,EAAc59K,QAASjQ,EAAM6tL,gBAErC4B,EAA6B5B,EAAc59K,QAN/C,GAQG,CAACs9K,EAAiBkC,IAErB,IAAME,GAAYxoL,EAAAA,EAAAA,cAChB,SAAC47H,GACC,IAAMlpH,EACJkpH,GAAaA,EAAUlpH,OACnBkpH,EAAUlpH,OACVg0K,EAAc59K,QACdoG,EACJ0sH,GAAaA,EAAU1sH,OACnB0sH,EAAU1sH,OACVy3K,EAAc79K,QACd69K,EAAc79K,QACdjQ,EAAM8tL,eAAiB,CAAC,EACxBnB,EACJ5pD,GAAaA,EAAU4pD,QACnB5pD,EAAU4pD,QACVoB,EAAe99K,QACf89K,EAAe99K,QACfjQ,EAAM+tL,gBAAkB,CAAC,EACzBvqI,EACJu/E,GAAaA,EAAUv/E,OACnBu/E,EAAUv/E,OACVk9E,EAAczwH,QACdywH,EAAczwH,QACdjQ,EAAM0gI,cACZmtD,EAAc59K,QAAU4J,EACxBi0K,EAAc79K,QAAUoG,EACxB03K,EAAe99K,QAAU08K,EACzBjsD,EAAczwH,QAAUuzC,EAExB,IAAMosI,EAAa,WACjBl0E,EAAS,CACP37G,KAAM,aACNikC,QAAS,CACP6oJ,eAAgB9pD,KAAeA,EAAU8pD,aACzCx2K,OAAAA,EACAs2K,QAAAA,EACAnpI,OAAAA,EACA3pC,OAAAA,EACAizK,eAAgB/pD,KAAeA,EAAU+pD,aACzCC,YACIhqD,GACAA,EAAUgqD,aACqB,kBAA1BhqD,EAAUgqD,YACbhqD,EAAUgqD,YACV,IAfZ,EAoBA,GAAI/sL,EAAM6vL,QAAS,CACjB,IAAMC,EAAwB9vL,EAAM6vL,QAClC78K,EAAM6G,OACNk2K,GAGEpE,GAAUmE,GACXA,EAAsC9qK,KAAK4qK,GAE5CA,GATJ,MAYEA,GA7DY,GAgEhB,CAAC5vL,EAAM8tL,cAAe9tL,EAAM0gI,cAAe1gI,EAAM+tL,kBAGnD5mL,EAAAA,EAAAA,YAAgB,YAEU,IAAtBswG,EAAUxnG,SACT28K,KAAQiB,EAAc59K,QAASjQ,EAAM6tL,iBAElCH,IACFG,EAAc59K,QAAUjQ,EAAM6tL,cAC9B8B,KAGEpC,GACFkC,EAA6B5B,EAAc59K,SAXjD,GAcG,CACDy9K,EACA1tL,EAAM6tL,cACN8B,EACApC,EACAkC,KAGFtoL,EAAAA,EAAAA,YAAgB,WAEZumL,IACsB,IAAtBj2E,EAAUxnG,UACT28K,KAAQkB,EAAc79K,QAASjQ,EAAM8tL,iBAEtCA,EAAc79K,QAAUjQ,EAAM8tL,eAAiBd,GAC/CtxE,EAAS,CACP37G,KAAM,aACNikC,QAAShkC,EAAM8tL,eAAiBd,KATtC,GAYG,CAACU,EAAoB1tL,EAAM8tL,iBAE9B3mL,EAAAA,EAAAA,YAAgB,WAEZumL,IACsB,IAAtBj2E,EAAUxnG,UACT28K,KAAQmB,EAAe99K,QAASjQ,EAAM+tL,kBAEvCA,EAAe99K,QAAUjQ,EAAM+tL,gBAAkBd,GACjDvxE,EAAS,CACP37G,KAAM,cACNikC,QAAShkC,EAAM+tL,gBAAkBd,KATvC,GAYG,CAACS,EAAoB1tL,EAAM+tL,kBAE9B5mL,EAAAA,EAAAA,YAAgB,WAEZumL,IACsB,IAAtBj2E,EAAUxnG,UACT28K,KAAQlsD,EAAczwH,QAASjQ,EAAM0gI,iBAEtCA,EAAczwH,QAAUjQ,EAAM0gI,cAC9BhlB,EAAS,CACP37G,KAAM,aACNikC,QAAShkC,EAAM0gI,gBATrB,GAYG,CAACgtD,EAAoB1tL,EAAM0gI,cAAe1gI,EAAM+tL,iBAEnD,IAAMiC,EAAgB1qH,IAAiB,SAACp/D,GAKtC,GACE8nL,EAAc/9K,QAAQ/J,IACtByuH,GAAWq5D,EAAc/9K,QAAQ/J,GAAMsiC,UACvC,CACA,IAAMnqC,EAAQutL,GAAM54K,EAAM6G,OAAQ3T,GAC5B+pL,EAAejC,EAAc/9K,QAAQ/J,GAAMsiC,SAASnqC,GAC1D,OAAIstL,GAAUsE,IAEZv0E,EAAS,CAAE37G,KAAM,mBAAoBikC,SAAS,IACvCisJ,EACJjrK,MAAK,SAACzhB,GAAD,OAAYA,CADb,IAEJyhB,MAAK,SAACvO,GACLilG,EAAS,CACP37G,KAAM,kBACNikC,QAAS,CAAEtQ,MAAOxtB,EAAM7H,MAAOoY,KAEjCilG,EAAS,CAAE37G,KAAM,mBAAoBikC,SAAS,GAP3C,MAUP03E,EAAS,CACP37G,KAAM,kBACNikC,QAAS,CACPtQ,MAAOxtB,EACP7H,MAAO4xL,KAGJprK,QAAQE,QAAQkrK,GA1B3B,CA4BO,OAAIjwL,EAAMquL,kBACf3yE,EAAS,CAAE37G,KAAM,mBAAoBikC,SAAS,IACvCoqJ,EAAoBp7K,EAAM6G,OAAQ3T,GACtC8e,MAAK,SAACzhB,GAAD,OAAYA,CADb,IAEJyhB,MAAK,SAACvO,GACLilG,EAAS,CACP37G,KAAM,kBACNikC,QAAS,CAAEtQ,MAAOxtB,EAAM7H,MAAOoY,EAAMvQ,MAEvCw1G,EAAS,CAAE37G,KAAM,mBAAoBikC,SAAS,GAP3C,KAWFnf,QAAQE,SA9CqB,IAiDhCmrK,GAAgB/oL,EAAAA,EAAAA,cAAkB,SAACjB,EAAD,OAAiBsiC,EAAAA,EAAAA,SACvDwlJ,EAAc/9K,QAAQ/J,GAAQ,CAC5BsiC,SAAAA,EAFkB,GAInB,IAEG2nJ,GAAkBhpL,EAAAA,EAAAA,cAAkB,SAACjB,UAClC8nL,EAAc/9K,QAAQ/J,EADP,GAErB,IAEGkqL,EAAa9qH,IACjB,SAACqnH,EAAgC0D,GAI/B,OAHA30E,EAAS,CAAE37G,KAAM,cAAeikC,QAAS2oJ,UAEpB5wL,IAAnBs0L,EAA+BhD,EAAiBgD,GAE9CZ,EAA6Bz8K,EAAM6G,QACnCgL,QAAQE,SAPmB,IAW7B02H,GAAYt0I,EAAAA,EAAAA,cAAkB,SAACkP,GACnCqlG,EAAS,CAAE37G,KAAM,aAAcikC,QAAS3tB,GADxB,GAEf,IAEGi6K,EAAYhrH,IAChB,SAACzrD,EAAsCw2K,GACrC,IAAME,EAAiB57D,GAAW96G,GAAUA,EAAO7G,EAAM6G,QAAUA,EAKnE,OAHA6hG,EAAS,CAAE37G,KAAM,aAAcikC,QAASusJ,UAEnBx0L,IAAnBs0L,EAA+BlD,EAAmBkD,GAEhDZ,EAA6Bc,GAC7B1rK,QAAQE,SATkB,IAa5ByrK,GAAgBrpL,EAAAA,EAAAA,cACpB,SAACusB,EAAer1B,GACdq9G,EAAS,CACP37G,KAAM,kBACNikC,QAAS,CAAEtQ,MAAAA,EAAOr1B,MAAAA,IAJF,GAOpB,IAGIoyL,EAAgBnrH,IACpB,SAAC5xC,EAAer1B,EAAYgyL,GAU1B,OATA30E,EAAS,CACP37G,KAAM,kBACNikC,QAAS,CACPtQ,MAAAA,EACAr1B,MAAAA,WAIiBtC,IAAnBs0L,EAA+BlD,EAAmBkD,GAEhDZ,EAA6B3D,GAAM94K,EAAM6G,OAAQ6Z,EAAOr1B,IACxDwmB,QAAQE,SAbsB,IAiBhC2rK,GAAgBvpL,EAAAA,EAAAA,cACpB,SAACwpL,EAAmDC,GAIlD,IAEIhtL,EAFA8vB,EAAQk9J,EACRnkK,EAAMkkK,EAIV,IAAKlF,GAASkF,GAAmB,CAG1BA,EAAyBptF,SAC3BotF,EAA4CptF,UAE/C,IAAM32F,EAAS+jL,EAAiB/jL,OAC3B+jL,EAA4C/jL,OAC5C+jL,EAA4C3tF,cAG/CjjG,EAQE6M,EARF7M,KACAmG,EAOE0G,EAPF1G,KACA2Y,EAMEjS,EANFiS,GACAxgB,EAKEuO,EALFvO,MACAumE,EAIEh4D,EAJFg4D,QAEA7pE,GAEE6R,EAHFikL,UAGEjkL,EAFF7R,SACAgoH,EACEn2G,EADFm2G,SAGFrvF,EAAQk9J,IAAwB1qL,GAAc2Y,GAQ9C4N,EAAM,eAAetf,KAAKpN,IACpB6D,EAASi9C,WAAWxiD,GAAS+1F,MAAMxwF,GAAU,GAAKA,GACpD,WAAWuJ,KAAKpN,GA0f5B,SACE+wL,EACAlsH,EACAm3F,GAGA,GAA4B,mBAAjB+0B,EACT,OAAO98D,QAAQpvD,GAIjB,IAAImsH,EAAuB,GACvBC,GAAiB,EACjBnyL,GAAS,EAEb,GAAKgG,MAAM4G,QAAQqlL,GAOjBC,EAAuBD,EAEvBE,GADAnyL,EAAQiyL,EAAanyL,QAAQo9J,KACH,OAP1B,IAAKA,GAA0B,QAAbA,GAAoC,SAAbA,EACvC,OAAO/nC,QAAQpvD,GAUnB,GAAIA,GAAWm3F,IAAci1B,EAC3B,OAAOD,EAAqBnrL,OAAOm2J,GAIrC,IAAKi1B,EACH,OAAOD,EAIT,OAAOA,EACJ7xL,MAAM,EAAGL,GACT+G,OAAOmrL,EAAqB7xL,MAAML,EAAQ,GAC9C,CAliBWoyL,CAAoBrF,GAAM54K,EAAM6G,OAAQ6Z,GAASkxC,EAASvmE,GAC1DtD,GAAWgoH,EAifvB,SAA2BhoH,GACzB,OAAO8J,MAAM9G,KAAKhD,GACfsjB,QAAO,SAAA6oE,GAAE,OAAIA,EAAGr6B,QADZ,IAEJtoD,KAAI,SAAA2iF,GAAE,OAAIA,EAAG7oF,KAFT,GAGR,CApfW6yL,CAAkBn2L,GAClBsD,CACL,CAEGq1B,GAEF+8J,EAAc/8J,EAAOjH,EAlDL,GAqDpB,CAACgkK,EAAez9K,EAAM6G,SAGlB6rI,EAAepgF,IACnB,SACE6rH,GAEA,GAAI1F,GAAS0F,GACX,OAAO,SAAAx7H,GAAK,OAAI+6H,EAAc/6H,EAAOw7H,EAArC,EAEAT,EAAcS,EAPiB,IAY/BC,EAAkB9rH,IACtB,SAAC5xC,EAAei5J,EAAyB0D,GAUvC,YAVc1D,IAAAA,IAAAA,GAAmB,GACjCjxE,EAAS,CACP37G,KAAM,oBACNikC,QAAS,CACPtQ,MAAAA,EACAr1B,MAAOsuL,WAIU5wL,IAAnBs0L,EAA+BhD,EAAiBgD,GAE9CZ,EAA6Bz8K,EAAM6G,QACnCgL,QAAQE,SAbwB,IAiBlCssK,GAAclqL,EAAAA,EAAAA,cAClB,SAAC3J,EAAQ+Y,GACH/Y,EAAE+lG,SACJ/lG,EAAE+lG,gBAE4B/lG,EAAEoP,OAA1B1G,EAAAA,EAAAA,KAAM2Y,EAAAA,EAAAA,GACR6U,GADYm9J,EAAAA,UACJt6K,IAAcrQ,GAAc2Y,IAU1CuyK,EAAgB19J,GAAO,EAhBP,GAkBlB,CAAC09J,IAGG59C,EAAaluE,IACjB,SAACgsH,GACC,GAAI7F,GAAS6F,GACX,OAAO,SAAA37H,GAAK,OAAI07H,EAAY17H,EAAO27H,EAAnC,EAEAD,EAAYC,EALiB,IAU7BC,GAAiBpqL,EAAAA,EAAAA,cACrB,SACEqqL,GAII78D,GAAW68D,GACb91E,EAAS,CAAE37G,KAAM,mBAAoBikC,QAASwtJ,IAE9C91E,EAAS,CAAE37G,KAAM,mBAAoBikC,QAAS,kBAAMwtJ,CAAN,GAT7B,GAYrB,IAGIC,GAAYtqL,EAAAA,EAAAA,cAAkB,SAACq8C,GACnCk4D,EAAS,CAAE37G,KAAM,aAAcikC,QAASwf,GADxB,GAEf,IAEGkuI,GAAgBvqL,EAAAA,EAAAA,cAAkB,SAAC0lL,GACvCnxE,EAAS,CAAE37G,KAAM,mBAAoBikC,QAAS6oJ,GAD1B,GAEnB,IAEG8E,EAAarsH,IAAiB,WAElC,OADAo2C,EAAS,CAAE37G,KAAM,mBACV0vL,IAA+BzqK,MACpC,SAAC0qK,GAQC,IAAMkC,EAAoBlC,aAA0B70K,MAGpD,IADG+2K,GAA4D,IAAvCzzL,OAAOihB,KAAKswK,GAAgBp0L,OAC/B,CAWnB,IAAIu2L,EACJ,IAIE,QAA2B91L,KAH3B81L,EAAqBC,KAInB,MAIH,CAFC,MAAOr7K,GACP,MAAMA,CACP,CAED,OAAOoO,QAAQE,QAAQ8sK,GACpB7sK,MAAK,SAAAjZ,GAIJ,OAHM0rG,EAAUxnG,SACdyrG,EAAS,CAAE37G,KAAM,mBAEZgM,CALJ,WAOE,SAAAgmL,GACL,GAAMt6E,EAAUxnG,QAId,MAHAyrG,EAAS,CAAE37G,KAAM,mBAGXgyL,CAZL,GAvBT,CAsCO,GAAMt6E,EAAUxnG,UAErByrG,EAAS,CAAE37G,KAAM,mBAEb6xL,GACF,MAAMlC,CAvDP,GAF0B,IAiE7BsC,EAAe1sH,IACnB,SAAC9nE,GACKA,GAAKA,EAAE6lG,gBAAkBsxB,GAAWn3H,EAAE6lG,iBACxC7lG,EAAE6lG,iBAGA7lG,GAAKA,EAAE2kG,iBAAmBwyB,GAAWn3H,EAAE2kG,kBACzC3kG,EAAE2kG,kBAsBJwvF,IAAU,OAAS,SAAA5zK,GACjBzI,QAAQT,KAARS,2DAEEyI,EAHJ,GA7BiC,IAsC/BgyK,EAA2C,CAC/CJ,UAAAA,EACAsC,aAAcxC,EACdO,cAAAA,EACAv0C,UAAAA,EACA+0C,cAAAA,EACAY,gBAAAA,EACAX,cAAAA,EACAgB,UAAAA,EACAC,cAAAA,EACAtB,WAAAA,EACAE,UAAAA,EACAiB,eAAAA,EACAI,WAAAA,GAGIG,EAAgBxsH,IAAiB,WACrC,OAAOsoH,EAAS56K,EAAM6G,OAAQk2K,EADM,IAIhCmC,EAAc5sH,IAAiB,SAAA9nE,GAC/BA,GAAKA,EAAE6lG,gBAAkBsxB,GAAWn3H,EAAE6lG,iBACxC7lG,EAAE6lG,iBAGA7lG,GAAKA,EAAE2kG,iBAAmBwyB,GAAWn3H,EAAE2kG,kBACzC3kG,EAAE2kG,kBAGJwtF,GATkC,IAY9BwC,GAAehrL,EAAAA,EAAAA,cACnB,SAACjB,GACC,MAAO,CACL7H,MAAOutL,GAAM54K,EAAM6G,OAAQ3T,GAC3BuQ,MAAOm1K,GAAM54K,EAAMqD,OAAQnQ,GAC3BymL,UAAWf,GAAM54K,EAAM25K,QAASzmL,GAChCilE,aAAcygH,GAAMiC,EAAc59K,QAAS/J,GAC3C6nL,iBAAkBnC,GAAMmC,EAAe99K,QAAS/J,GAChDksL,aAAcxG,GAAMkC,EAAc79K,QAAS/J,GAR5B,GAWnB,CAAC8M,EAAMqD,OAAQrD,EAAM25K,QAAS35K,EAAM6G,SAGhCw4K,GAAkBlrL,EAAAA,EAAAA,cACtB,SAACjB,GACC,MAAO,CACL2uD,SAAU,SAACx2D,EAAYgyL,GAAb,OACRI,EAAcvqL,EAAM7H,EAAOgyL,EAFxB,EAGLD,WAAY,SAAC/xL,EAAgBgyL,GAAjB,OACVe,EAAgBlrL,EAAM7H,EAAOgyL,EAJ1B,EAKLiC,SAAU,SAACj0L,GAAD,OAAgBmyL,EAActqL,EAAM7H,EAApC,EAPQ,GAUtB,CAACoyL,EAAeW,EAAiBZ,IAG7B+B,GAAgBprL,EAAAA,EAAAA,cACpB,SAACqrL,GACC,IAAMC,EAAa79D,GAAS49D,GACtBtsL,EAAOusL,EAAaD,EAActsL,KAAOssL,EACzC59H,EAAag3H,GAAM54K,EAAM6G,OAAQ3T,GAEjCwtB,EAA8B,CAClCxtB,KAAAA,EACA7H,MAAOu2D,EACP2wF,SAAUG,EACV9uF,OAAQ48E,GAEV,GAAIi/C,EAAY,KAEZ1yL,EAIEyyL,EAJFzyL,KACOg8J,EAGLy2B,EAHFn0L,MACIk8F,EAEFi4F,EAFF1jL,GACAi0G,EACEyvE,EADFzvE,SAGW,aAAThjH,OACgBhE,IAAdggK,EACFroI,EAAMkxC,UAAYhQ,GAElBlhC,EAAMkxC,WACJ//D,MAAM4G,QAAQmpD,MAAgBA,EAAWj2D,QAAQo9J,IAEnDroI,EAAMr1B,MAAQ09J,GAEE,UAATh8J,GACT2zB,EAAMkxC,QAAUhQ,IAAemnG,EAC/BroI,EAAMr1B,MAAQ09J,GACE,WAAPxhE,GAAmBwoB,IAC5BrvF,EAAMr1B,MAAQq1B,EAAMr1B,OAAS,GAC7Bq1B,EAAMqvF,UAAW,EAEpB,CACD,OAAOrvF,CArCW,GAuCpB,CAAC8/G,EAAYkS,EAAc1yI,EAAM6G,SAG7B64K,IAAQvrL,EAAAA,EAAAA,UACZ,kBAAOylL,KAAQiB,EAAc59K,QAAS+C,EAAM6G,OADhC,GAEZ,CAACg0K,EAAc59K,QAAS+C,EAAM6G,SAG1B84K,IAAUxrL,EAAAA,EAAAA,UACd,iBAC4B,qBAAnBsmL,EACHiF,GACE1/K,EAAMqD,QAA+C,IAArClY,OAAOihB,KAAKpM,EAAMqD,QAAQ/a,QACvB,IAAnBmyL,GAA4B94D,GAAW84D,GACtCA,EAA4DztL,GAC5DytL,EACHz6K,EAAMqD,QAA+C,IAArClY,OAAOihB,KAAKpM,EAAMqD,QAAQ/a,MARlC,GASd,CAACmyL,EAAgBiF,GAAO1/K,EAAMqD,OAAQrW,IAsCxC,OAnCY,MACPgT,EADI,CAEP66K,cAAeA,EAAc59K,QAC7B69K,cAAeA,EAAc79K,QAC7B89K,eAAgBA,EAAe99K,QAC/BywH,cAAeA,EAAczwH,QAC7BujI,WAAAA,EACAkS,aAAAA,EACAwsC,YAAAA,EACAF,aAAAA,EACArC,UAAAA,EACAl0C,UAAAA,EACA81C,eAAAA,EACAH,gBAAAA,EACAX,cAAAA,EACAD,cAAAA,EACAiB,UAAAA,EACAC,cAAAA,EACAtB,WAAAA,EACAE,UAAAA,EACAqB,WAAAA,EACAM,aAAcxC,EACdO,cAAAA,EACA2C,QAAAA,GACAD,MAAAA,GACAvC,gBAAAA,EACAD,cAAAA,EACAqC,cAAAA,EACAJ,aAAAA,EACAE,gBAAAA,EACAhF,eAAAA,EACAF,iBAAAA,EACAI,gBAAAA,GAIH,CAED,SAAgBqF,GAGd5yL,GACA,IAAM6yL,EAAY3F,GAAkBltL,GAC5Bid,EAA0Cjd,EAA1Cid,UAAWhd,EAA+BD,EAA/BC,SAAUqpF,EAAqBtpF,EAArBspF,OAAQwpG,EAAa9yL,EAAb8yL,SAerC,OAZA3rL,EAAAA,EAAAA,qBAA0B2rL,GAAU,kBAAMD,CAA1C,KAaE1rL,EAAAA,EAAAA,eAAColL,GAAD,CAAgBluL,MAAOw0L,GACpB51K,GACG9V,EAAAA,EAAAA,eAAoB8V,EAAkB41K,GACtCvpG,EACAA,EAAOupG,GACP5yL,EACA00H,GAAW10H,GACRA,EACC4yL,GAEDnH,GAAgBzrL,GAEjB,KADAkH,EAAAA,SAAAA,KAAoBlH,GAEtB,KAGT,CAwDD,SAAgByuL,GACd70K,GAEA,IAAIxC,EAAqBxS,MAAM4G,QAAQoO,GAAU,GAAK,CAAC,EACvD,IAAK,IAAIvW,KAAKuW,EACZ,GAAI1b,OAAO9B,UAAU0Q,eAAejI,KAAK+U,EAAQvW,GAAI,CACnD,IAAMnH,EAAM6B,OAAOsF,IACgB,IAA/BuB,MAAM4G,QAAQoO,EAAO1d,IACvBkb,EAAKlb,GAAO0d,EAAO1d,GAAKoI,KAAI,SAAClG,GAC3B,OAA6B,IAAzBwG,MAAM4G,QAAQpN,IAAmBmmE,GAAcnmE,GAC1CqwL,GAAyBrwL,GAEf,KAAVA,EAAeA,OAAQtC,CAJtB,IAOHyoE,GAAc3qD,EAAO1d,IAC9Bkb,EAAKlb,GAAOuyL,GAAyB70K,EAAO1d,IAE5Ckb,EAAKlb,GAAuB,KAAhB0d,EAAO1d,GAAc0d,EAAO1d,QAAOJ,CAElD,CAEH,OAAOsb,CACR,CAMD,SAAS6oK,GAAWtzK,EAAeE,EAAe/R,GAChD,IAAMi8I,EAAcpqI,EAAO1N,QAe3B,OAbA4N,EAAOtQ,SAAQ,SAAegB,EAAQN,GACpC,GAA8B,qBAAnB85I,EAAY95I,GAAoB,CACzC,IACM61L,GADmC,IAAlBh4L,EAAQ6qC,OACO7qC,EAAQ2kL,kBAAkBliL,GAChEw5I,EAAY95I,GAAK61L,EACbzjI,GAAUzqD,MAAM4G,QAAQjO,GAAK,GAAK,CAAC,EAAGA,EAAGzC,GACzCyC,CALN,MAMWzC,EAAQ2kL,kBAAkBliL,GACnCw5I,EAAY95I,GAAKoyD,GAAU1iD,EAAO1P,GAAIM,EAAGzC,IACT,IAAvB6R,EAAOjO,QAAQnB,IACxBw5I,EAAYn7I,KAAK2B,EAVrB,IAaOw5I,CACR,CAyDD,IAAMuD,GACc,qBAAXh3G,QACoB,qBAApBA,OAAO5mC,UAC2B,qBAAlC4mC,OAAO5mC,SAASC,cACnBuK,EAAAA,gBACAA,EAAAA,UAEN,SAASm+D,GAAoDl/D,GAC3D,IAAMY,GAAWG,EAAAA,EAAAA,QAAaf,GAO9B,OAJAm0I,IAA0B,WACxBvzI,EAAIiJ,QAAU7J,CADS,KAIlBe,EAAAA,EAAAA,cACL,sCAAIgF,EAAJ,yBAAIA,EAAJ,GAAAU,UAAAA,GAAA,OAAoB7F,EAAIiJ,QAAQjD,WAAM,EAAQb,EADzC,GAEL,GAEH,KCpqCY6mL,IAAO7rL,EAAAA,EAAAA,aAClB,SAACnH,EAAwBgH,OAGfijD,EAAoBjqD,EAApBiqD,OAAWw4F,EAAAA,GAASziJ,EAAAA,CAAAA,WACtBizL,EAAO,MAAGhpI,EAAAA,EAAU,MACYuiI,KAA9B0F,EAAAA,EAAAA,YAAaF,EAAAA,EAAAA,aACrB,OACE7qL,EAAAA,EAAAA,eAAAA,OAAAA,OAAAA,OAAAA,CACEymL,SAAUoE,EACVhrL,IAAKA,EACL6oL,QAASqC,EACTjoI,OAAQgpI,GACJxwC,GAbQ,IAmBpBuwC,GAAK1jL,YAAc,OCkCnB,IAoBa7S,GAAS,SACpBy2L,EACAr0L,EACAR,GAEA,IAAM8B,EAAOgzL,GAAcD,GAE3B,OADA/yL,EAAKyxB,OAAO/yB,EAAO,EAAGR,GACf8B,CAPF,EAoBDgzL,GAAgB,SAACD,GACrB,GAAKA,EAEE,IAAIruL,MAAM4G,QAAQynL,GACvB,MAAO,GAAP,OAAWA,GAEX,IAAME,EAAWj1L,OAAOihB,KAAK8zK,GAC1B3uL,KAAI,SAAApI,GAAG,OAAI4V,SAAS5V,EADN,IAEdye,QAAO,SAAC6qB,EAAKyhD,GAAN,OAAcA,EAAKzhD,EAAMyhD,EAAKzhD,CAFvB,GAE6B,GAC9C,OAAO5gC,MAAM9G,KAAN8G,GAAAA,CAAAA,EAAgBquL,EAAhB,CAA2B53L,OAAQ83L,EAAW,IACtD,CARC,MAAO,EAFX,EAaMC,GAAAA,SAAAA,GAQJ,WAAYrzL,gBACVhF,EAAAA,EAAAA,KAAAA,KAAMgF,IAAN,MAsBFhF,iBAAmB,SACjBoL,EACAktL,EACAC,SAMIv4L,EAAKgF,MAHPkG,EAAAA,EAAAA,MAIFqrL,EAFYA,EAAV9E,OAAU8E,iBAEG,SAACpwD,GACd,IAAIqyD,EAAsC,oBAAhBD,EAA6BA,EAAcntL,EACjEqtL,EACsB,oBAAjBH,EAA8BA,EAAeltL,EAIlDyT,EAASiyK,GACX3qD,EAAUtnH,OACV3T,EACAE,EAAGwlL,GAAMzqD,EAAUtnH,OAAQ3T,KAGzBwtL,EAAaH,EACbC,EAAa5H,GAAMzqD,EAAU9qH,OAAQnQ,SACrCnK,EACA43L,EAAeL,EACfG,EAAc7H,GAAMzqD,EAAUwrD,QAASzmL,SACvCnK,EASJ,OAPIyvL,GAAakI,KACfA,OAAa33L,GAEXyvL,GAAamI,KACfA,OAAe53L,GAGV,MACFolI,EADL,CAEEtnH,OAAAA,EACAxD,OAAQk9K,EACJzH,GAAM3qD,EAAU9qH,OAAQnQ,EAAMwtL,GAC9BvyD,EAAU9qH,OACds2K,QAAS2G,EACLxH,GAAM3qD,EAAUwrD,QAASzmL,EAAMytL,GAC/BxyD,EAAUwrD,SAnCJ,GAVhB,EAkDA3xL,EAAAA,KAAO,SAACqD,GAAD,OACLrD,EAAK44L,kBACH,SAACV,GAAD,gBACKC,GAAcD,GADnB,CAEEW,GAAUx1L,IAHd,IAKE,GACA,EAPJ,EAUArD,EAAAA,WAAa,SAACqD,GAAD,OAAgB,kBAAMrD,EAAKa,KAAKwC,EAAhC,CAAb,EAEArD,EAAAA,KAAO,SAAC84L,EAAgBC,GAAjB,OACL/4L,EAAK44L,kBACH,SAACt0L,GAAD,OA5Ic,SAClB4zL,EACAY,EACAC,GAEA,IAAM5zL,EAAOgzL,GAAcD,GACrBnlK,EAAI5tB,EAAK2zL,GAGf,OAFA3zL,EAAK2zL,GAAU3zL,EAAK4zL,GACpB5zL,EAAK4zL,GAAUhmK,EACR5tB,CATF,CA4IiB6zL,CAAK10L,EAAOw0L,EAAQC,EADxC,IAEE,GACA,EAJJ,EAOA/4L,EAAAA,WAAa,SAAC84L,EAAgBC,GAAjB,OAAoC,kBAC/C/4L,EAAKg5L,KAAKF,EAAQC,EADP,CAAb,EAGA/4L,EAAAA,KAAO,SAAC+C,EAAcknB,GAAf,OACLjqB,EAAK44L,kBAAiB,SAACt0L,GAAD,OA7JN,SAACA,EAAcvB,EAAcknB,GAC/C,IAAM9kB,EAAOgzL,GAAc7zL,GACrBjB,EAAQ8B,EAAKpC,GAGnB,OAFAoC,EAAKyxB,OAAO7zB,EAAM,GAClBoC,EAAKyxB,OAAO3M,EAAI,EAAG5mB,GACZ8B,CALF,CA6JqC6tE,CAAK1uE,EAAOvB,EAAMknB,EAA1D,IAA+D,GAAM,EADvE,EAGAjqB,EAAAA,WAAa,SAAC+C,EAAcknB,GAAf,OAA8B,kBAAMjqB,EAAKgzE,KAAKjwE,EAAMknB,EAApD,CAAb,EAEAjqB,EAAAA,OAAS,SAAC6D,EAAeR,GAAhB,OACPrD,EAAK44L,kBACH,SAACt0L,GAAD,OAAkB7C,GAAO6C,EAAOT,EAAOR,EADzC,IAEE,SAACiB,GAAD,OAAkB7C,GAAO6C,EAAOT,EAAO,KAFzC,IAGE,SAACS,GAAD,OAAkB7C,GAAO6C,EAAOT,EAAO,KAHzC,GADF,EAOA7D,EAAAA,aAAe,SAAC6D,EAAeR,GAAhB,OAA+B,kBAAMrD,EAAKyB,OAAOoC,EAAOR,EAAxD,CAAf,EAEArD,EAAAA,QAAU,SAAC6D,EAAeR,GAAhB,OACRrD,EAAK44L,kBACH,SAACt0L,GAAD,OA9IiB,SACrB4zL,EACAr0L,EACAR,GAEA,IAAM8B,EAAOgzL,GAAcD,GAE3B,OADA/yL,EAAKtB,GAASR,EACP8B,CAPF,CA8IiB7B,CAAQgB,EAAOT,EAAOR,EAD1C,IAEE,GACA,EAJJ,EAOArD,EAAAA,cAAgB,SAAC6D,EAAeR,GAAhB,OAA+B,kBAC7CrD,EAAKsD,QAAQO,EAAOR,EADN,CAAhB,EAGArD,EAAAA,QAAU,SAACqD,GACT,IAAI/C,GAAU,EAwBd,OAvBAN,EAAK44L,kBACH,SAACt0L,GACC,IAAMktB,EAAMltB,EAAQ,CAACjB,GAAJ,OAAciB,GAAS,CAACjB,GAIzC,OAHI/C,EAAS,IACXA,EAASkxB,EAAIlxB,QAERkxB,CANX,IAQE,SAACltB,GACC,IAAMktB,EAAMltB,EAAQ,CAAC,MAAJ,OAAaA,GAAS,CAAC,MAIxC,OAHIhE,EAAS,IACXA,EAASkxB,EAAIlxB,QAERkxB,CAbX,IAeE,SAACltB,GACC,IAAMktB,EAAMltB,EAAQ,CAAC,MAAJ,OAAaA,GAAS,CAAC,MAIxC,OAHIhE,EAAS,IACXA,EAASkxB,EAAIlxB,QAERkxB,CApBX,IAuBOlxB,CAzBT,EA4BAN,EAAAA,cAAgB,SAACqD,GAAD,OAAgB,kBAAMrD,EAAK2vB,QAAQtsB,EAAnC,CAAhB,EAwBArD,EAAAA,aAAe,SAAC6D,GAAD,OAAmB,kBAAM7D,EAAKk6H,OAAYr2H,EAA1C,CAAf,EAqBA7D,EAAAA,UAAY,kBAAM,kBAAMA,EAAKgmB,KAAjB,CAAZ,EA5LEhmB,EAAKk6H,OAASl6H,EAAKk6H,OAAOvoH,KAAZ,OACd3R,EAAKgmB,IAAMhmB,EAAKgmB,IAAIrU,KAAT,QACZ,oCAEDm0G,mBAAAA,SACEugB,GAGEpmI,KAAK+E,MAAMmtL,kBACXlyL,KAAK+E,MAAMysL,OAAOU,mBACjBP,KACChB,GAAMvqD,EAAUorD,OAAO5yK,OAAQwnH,EAAUn7H,MACzC0lL,GAAM3wL,KAAK+E,MAAMysL,OAAO5yK,OAAQ5e,KAAK+E,MAAMkG,QAG7CjL,KAAK+E,MAAMysL,OAAOwF,aAAah3L,KAAK+E,MAAMysL,OAAO5yK,OAEpD,IAgIDq7G,OAAAA,SAAUr2H,GAER,IAAIkN,EAiBJ,OAhBA9Q,KAAK24L,kBAEH,SAACt0L,GACC,IAAMa,EAAOb,EAAQ6zL,GAAc7zL,GAAS,GAO5C,OANKyM,IACHA,EAAS5L,EAAKtB,IAEZ81H,GAAWx0H,EAAKyxB,SAClBzxB,EAAKyxB,OAAO/yB,EAAO,GAEdsB,CAVX,IAYE,GACA,GAGK4L,CACR,IAIDiV,IAAAA,WAEE,IAAIjV,EAcJ,OAbA9Q,KAAK24L,kBAEH,SAACt0L,GACC,IAAM8jC,EAAM9jC,EAIZ,OAHKyM,IACHA,EAASq3B,GAAOA,EAAIpiB,KAAOoiB,EAAIpiB,OAE1BoiB,CAPX,IASE,GACA,GAGKr3B,CACR,IAIDu9E,OAAAA,WACE,IAAM2qG,EAA6B,CACjCp4L,KAAMZ,KAAKY,KACXmlB,IAAK/lB,KAAK+lB,IACVgzK,KAAM/4L,KAAK+4L,KACXhmH,KAAM/yE,KAAK+yE,KACXvxE,OAAQxB,KAAKwB,OACb6B,QAASrD,KAAKqD,QACdqsB,QAAS1vB,KAAK0vB,QACduqG,OAAQj6H,KAAKi6H,OACbg/D,WAAYj5L,KAAKi5L,WACjBC,UAAWl5L,KAAKk5L,UAChBC,WAAYn5L,KAAKm5L,WACjBC,WAAYp5L,KAAKo5L,WACjBC,aAAcr5L,KAAKq5L,aACnBC,cAAet5L,KAAKs5L,cACpBC,cAAev5L,KAAKu5L,cACpBC,aAAcx5L,KAAKw5L,gBAajBx5L,KAAK+E,MATPid,EAAAA,EAAAA,UACAqsE,EAAAA,EAAAA,OACArpF,EAAAA,EAAAA,SACAiG,EAAAA,EAAAA,KAQIlG,EAAK,MACNi0L,EADM,CAET30J,KANKo1J,KAHLjI,OAGKiI,CAAAA,WAAAA,qBAOLxuL,KAAAA,IAGF,OAAO+W,GACH9V,EAAAA,EAAAA,eAAoB8V,EAAkBjd,GACtCspF,EACCA,EAAetpF,GAChBC,EACoB,oBAAbA,EACJA,EAAiBD,GACjB0rL,GAAgBzrL,GAEjB,KADAkH,EAAAA,SAAAA,KAAoBlH,GAEtB,IACL,IA3PGozL,CAAqClsL,EAAAA,WAIlCksL,GAAAA,aAAe,CACpBlG,kBAAkB,GChHShmL,EAAAA,UC6BuBA,EAAAA,UClChD,SAAUwtL,GAAQ7nL,GACtB,OAAO6nH,GAAiB,OAAN7nH,QAAM,IAANA,OAAM,EAANA,EAAQ8nL,KAC3B,CAMK,SAAUC,GACdC,GAEA,OAAO,SAAChoL,GACN,GAAI6nL,GAAQ7nL,GACV,OAAOA,EAAO8nL,MAAK,SAA+BG,GAChD,IACE,OAAOD,EAAKC,EAAc95L,KAG3B,CAFC,MAAO81B,GACP91B,KAAKwb,MAAMsa,EACZ,CACF,IAEH,MAAM,IAAIpJ,UAAU,yCACrB,CACF,CCjBK,SAAUqtK,GACdh+C,EACAi+C,EACAC,EACA34I,EACA44I,GAEA,OAAO,IAAIC,GAAmBp+C,EAAai+C,EAAQC,EAAY34I,EAAS44I,EACzE,CAMD,mBAiBE,WACEn+C,EACAi+C,EACAC,EACA34I,EACQ44I,EACAE,GANV,MAoBEvgD,EAAAA,KAAAA,KAAMkC,IAAY,YAfVh8I,EAAAA,WAAAA,EACAA,EAAAA,kBAAAA,EAeRA,EAAKw8I,MAAQy9C,EACT,SAAuC52L,GACrC,IACE42L,EAAO52L,EAGR,CAFC,MAAO0yB,GACPimH,EAAYvgI,MAAMsa,EACnB,CACF,EACD+jH,EAAAA,UAAM0C,MACVx8I,EAAKy8I,OAASl7F,EACV,SAAuCxrB,GACrC,IACEwrB,EAAQxrB,EAOT,CANC,MAAOA,GAEPimH,EAAYvgI,MAAMsa,EACnB,CALD,QAOE91B,KAAKi7I,aACN,CACF,EACDpB,EAAAA,UAAM2C,OACVz8I,EAAK08I,UAAYw9C,EACb,WACE,IACEA,GAOD,CANC,MAAOnkK,GAEPimH,EAAYvgI,MAAMsa,EACnB,CALD,QAOE91B,KAAKi7I,aACN,CACF,EACDpB,EAAAA,UAAM4C,WACX,CAUH,OAnF2Che,EAAAA,GAAAA,IAAAA,EAAAA,GA2EzC07D,EAAAA,UAAAA,YAAAA,iBACE,IAAKn6L,KAAKo6L,mBAAqBp6L,KAAKo6L,oBAAqB,CAC/C,MAAWp6L,KAAIg6I,OACvBH,EAAAA,UAAMoB,YAAWpxI,KAAA,OAEhBwwL,IAAyB,QAAf,EAAAr6L,KAAKk6L,kBAAUxjK,IAAAA,GAAAA,EAAAA,KAAf12B,MACZ,CACF,EACH,CAAC,CAnFD,CAA2Ci8I,ICfrC,SAAUq+C,GACdC,EACAj9J,EACAk9J,EACAC,EACAC,GAEA,OAAO,SAAC7oL,EAAuBorI,GAI7B,IAAI09C,EAAWH,EAIXziL,EAAaulB,EAEb15B,EAAQ,EAGZiO,EAAOyrI,UACLy8C,GACE98C,GACA,SAAC75I,GAEC,IAAMnB,EAAI2B,IAEVmU,EAAQ4iL,EAEJJ,EAAYxiL,EAAO3U,EAAOnB,IAIxB04L,GAAW,EAAOv3L,GAGxBq3L,GAAcx9C,EAAW73I,KAAK2S,EAC/B,GAGD2iL,GACG,WACCC,GAAY19C,EAAW73I,KAAK2S,GAC5BklI,EAAWf,UACZ,GAGR,CACF,+DCzDD,MA8BA,GA7BYs1B,GAAU,CACpB54G,cAFmBhC,EAAAA,GAAAA,KAGnB66G,iBAAkB,cAClBC,kBAAmBp4G,GAAAA,EAAAA,4CCLrB,MAcA,IAdc5M,EAAAA,GAAAA,GAAOkuI,GAAPluI,CAAiB,CAC7BuiF,YAAa,GACb8c,aAAc,GACd6T,WAAY,GACZsD,cAAe,GACf/0G,QAAS,OACTs/F,cAAe,SACfje,eAAgB,SAChB9qE,IAAK,EACL7sC,MAAO,OACP84B,UAAW,OACXnsD,SAAU,aCmCZ,GAvCyCO,IACvC,MAAM,MAAE3B,EAAF,MAASoQ,EAAT,YAAgBqnL,EAAhB,KAA6BC,EAA7B,SAAmCC,GAAah2L,EAChDi2L,EAAW,IACXF,GAAQ,CAAEnmI,WAAY,gBACtBomI,GAAY,CACd51H,UAAU,GAAD,OAAgB,IAAX41H,EAAL,OACTthF,SAAU,WAGd,OACE,UAAC,GAAD,WACGjmG,IACC,gBACE0pD,MAAO,CACL14D,SAAU,WACVutG,IAAK,QAHT,UAME,SAAC,GAAD,CAAYllD,MAAM,UAAUE,SAAS,UAArC,SACGv5C,OAIP,UAAC,GAAD,CAAKu0D,GAAI,CAAE5Z,QAAS,OAAQqhF,eAAgB,iBAA5C,WACE,SAAC,GAAD,CACE3iF,MAAM,UACNouI,UAAU,SACVlzH,GAAI,CAAEmzH,UAAW,cACjBnuC,WAAW,cACPiuC,EALN,SAOG53L,IAEFy3L,OAxBP,ECDK,SAASM,GAAMroK,EAAGC,GACvB,MAAMqoK,EAAOnX,GAASnxJ,GAChBuoK,EAAOpX,GAASlxJ,GAEtB,GAAIqoK,EAAK/6L,SAAWg7L,EAAKh7L,OAAQ,CAC/B,MAAMi7L,EAAM,IAAI9O,SAAS4O,EAAKzyJ,OAAQyyJ,EAAKnO,YACrCsO,EAAM,IAAI/O,SAAS6O,EAAK1yJ,OAAQ0yJ,EAAKpO,YACrCl/J,EAAMqtK,EAAK/6L,OAAS,EAAI,EACxBA,EAAS+6L,EAAK/6L,OAAS0tB,EAAM,EAEnC,IAAK,IAAI9rB,EAAI,EAAGA,EAAI5B,EAAQ4B,GAAK,EAC/B,GAAIq5L,EAAIE,UAAUv5L,KAAOs5L,EAAIC,UAAUv5L,GACrC,OAAO,EAIX,IAAK,IAAIA,EAAI5B,EAAQ4B,EAAIm5L,EAAK/6L,OAAQ4B,IACpC,GAAIm5L,EAAKn5L,KAAOo5L,EAAKp5L,GACnB,OAAO,EAIX,OAAO,CACR,CAED,OAAO,CACR,CCvBM,SAASw5L,KACd,MAAMC,EAAO,IAAI9xL,MAAM,UAAKvJ,QAC5B,IAAIA,EAAS,EAEb,IAAK,IAAI4B,EAAI,EAAGA,EAAI,UAAK5B,OAAQ4B,IAC/By5L,EAAKz5L,GAAKgiL,GAAchiL,EAAN,qBAAMA,OAAN,YAAMA,IACxB5B,GAAUq7L,EAAKz5L,GAAG5B,OAGpB,OAAOs7L,GAAgBD,EAAMr7L,EAC9B,CAMM,SAASs7L,GAAgBD,GAAkB,IAAZr7L,EAAY,uDAAH,EACzCkH,EAAS,EAEb,IAAKlH,EACH,IAAK,IAAI4B,EAAI,EAAGA,EAAIy5L,EAAKr7L,OAAQ4B,IAC/B5B,GAAUq7L,EAAKz5L,GAAG5B,OAItB,MAAMyQ,EAAS,IAAIqL,WAAW9b,GAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAIy5L,EAAKr7L,OAAQ4B,IAC/B6O,EAAO5H,IAAIwyL,EAAKz5L,GAAIsF,GACpBA,GAAUm0L,EAAKz5L,GAAG5B,OAGpB,OAAOyQ,CACR,CClDD,MAAM2gF,GAAS,CACbjnE,MAAO,6DACP/L,MAAOsjK,GACPoC,KAAM,IACNr/K,KAAM,UASK82L,GAAiBrX,GAAe9yF,IAQhCoqG,GAAe3X,GAAazyF,GAAQmqG,IAQpCE,GAAezX,GAAa5yF,IAMjB6yF,GAASsX,ICvC1B,SAAS/zJ,GAAO3U,GACnB,IAAKsrC,OAAOqiH,cAAc3tJ,IAAMA,EAAI,EAChC,MAAM,IAAItT,MAAJ,kCAAqCsT,GAClD,CAKM,SAASxW,GAAMqW,GAClB,KAAMA,aAAa5W,YACf,MAAM,IAAIuQ,UAAU,uBAFS,2BAATqvK,EAAS,iCAATA,EAAS,kBAGjC,GAAIA,EAAQ17L,OAAS,IAAM07L,EAAQ7gG,SAASnoE,EAAE1yB,QAC1C,MAAM,IAAIqsB,UAAJ,wCAA+CqvK,EAA/C,2BAAyEhpK,EAAE1yB,QACxF,CAoBD,MAAM0lC,GAAS,CACX8B,UACAm0J,KA/BG,SAAcjpK,GACjB,GAAiB,mBAANA,EACP,MAAM,IAAInT,MAAJ,gCAAmCmT,GAChD,EA6BGrW,MAHW,GAIX3V,KAvBG,SAAcA,GACjB,GAAoB,oBAATA,GAA8C,oBAAhBA,EAAKqE,OAC1C,MAAM,IAAIwU,MAAM,mDACpBioB,GAAO9gC,EAAKk1L,WACZp0J,GAAO9gC,EAAKq7K,SACf,EAmBG8Z,OAlBG,SAAgBpoF,GAAgC,IAAtBqoF,IAAsB,yDACnD,GAAIroF,EAASsoF,UACT,MAAM,IAAIx8K,MAAM,oCACpB,GAAIu8K,GAAiBroF,EAASuoF,SAC1B,MAAM,IAAIz8K,MAAM,wCACvB,EAcGlZ,OAbG,SAAgB0tE,EAAK0/B,GACxBp3F,GAAM03D,GACN,MAAMvW,EAAMi2C,EAASmoF,UACrB,GAAI7nH,EAAI/zE,OAASw9D,EACb,MAAM,IAAIj+C,MAAJ,gEAAmEi+C,GAEhF,GASD,MCnCay+H,ICJY,kBAATj0J,MAAqB,WAAYA,MAAOA,KAAK9F,ODIzChR,GAAQ,IAAIujE,YAAYvjE,EAAIoX,OAAQpX,EAAI07J,WAAYpqL,KAAKioB,MAAMyG,EAAI4d,WAAa,KAQpG,KAHgF,KAA5D,IAAIhzB,WAAW,IAAI24E,YAAY,CAAC,YAAansD,QAAQ,IAIrE,MAAM,IAAI/oB,MAAM,+CACNhW,MAAM9G,KAAK,CAAEzC,OAAQ,MAAO,CAACogB,EAAGxe,IAAMA,EAAEqK,SAAS,IAAI61K,SAAS,EAAG,OAwDxE,SAAS/0G,GAAQhxD,GAGpB,GAFoB,kBAATA,IACPA,EARD,SAAqBjQ,GACxB,GAAmB,kBAARA,EACP,MAAM,IAAIugB,UAAJ,kDAAyDvgB,IAEnE,OAAO,IAAIg3K,aAAcjlK,OAAO/R,EACnC,CAGcowL,CAAYngL,MACjBA,aAAgBD,YAClB,MAAM,IAAIuQ,UAAJ,wDAA+DtQ,EAA/D,MACV,OAAOA,CACV,CAoBM,MAAM0qE,GAETn8C,QACI,OAAO3qC,KAAKw8L,YACf,EAkBE,SAASC,GAAwBC,GACpC,MAAMC,EAAQ,CAAClzJ,EAAKye,IAASw0I,EAASx0I,GAAM7e,OAAO+jC,GAAQ3jC,IAAMH,SAC3DnB,EAAMu0J,EAAS,CAAC,GAItB,OAHAC,EAAMV,UAAY9zJ,EAAI8zJ,UACtBU,EAAMva,SAAWj6I,EAAIi6I,SACrBua,EAAMvxL,OAAU88C,GAASw0I,EAASx0I,GAC3By0I,CACV,CE5HM,MAAMC,GAAQ,IAAIzgL,WAAW,CAChC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EACnD,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAClD,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EACnD,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAClD,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAClD,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAEnD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAEhD,MAAM0gL,WAAe/1G,GACxBrwE,YAAY2rK,EAAU6Z,GAAgD,IAArC/zI,EAAqC,uDAA9B,CAAC,EAAG40I,EAA0B,uCAAlBC,EAAkB,uCAATC,EAAS,uCAWlE,GAVAh/K,QACAhe,KAAKoiL,SAAWA,EAChBpiL,KAAKi8L,UAAYA,EACjBj8L,KAAKK,OAAS,EACdL,KAAK0xB,IAAM,EACX1xB,KAAKq8L,UAAW,EAChBr8L,KAAKo8L,WAAY,EACjBr2J,GAAAA,OAAcq8I,GACdr8I,GAAAA,OAAck2J,GACdl2J,GAAAA,OAAc+2J,GACVb,EAAY,GAAKA,EAAYa,EAC7B,MAAM,IAAIl9K,MAAM,wCACpB,QAAiB9e,IAAbonD,EAAKhnD,MAAsBgnD,EAAKhnD,IAAIb,OAAS,GAAK6nD,EAAKhnD,IAAIb,OAASy8L,GACpE,MAAM,IAAIl9K,MAAJ,8BAAiCk9K,EAAjC,4BACV,QAAkBh8L,IAAdonD,EAAKv8B,MAAsBu8B,EAAKv8B,KAAKtrB,SAAW08L,EAChD,MAAM,IAAIn9K,MAAJ,yBAA4Bm9K,EAA5B,4BACV,QAA6Bj8L,IAAzBonD,EAAK+0I,iBAAiC/0I,EAAK+0I,gBAAgB58L,SAAW28L,EACtE,MAAM,IAAIp9K,MAAJ,oCAAuCo9K,EAAvC,4BACVh9L,KAAKk9L,SAAWZ,GAAKt8L,KAAK2oC,OAAS,IAAIxsB,WAAWimK,GACrD,CACD/4I,OAAOjtB,GACH2pB,GAAAA,OAAc/lC,MAKd,MAAM,SAAEoiL,EAAF,OAAYz5I,EAAZ,SAAoBu0J,GAAal9L,KAEjCqM,GADN+P,EAAOgxD,GAAQhxD,IACE/b,OACjB,IAAK,IAAIqxB,EAAM,EAAGA,EAAMrlB,GAAM,CAEtBrM,KAAK0xB,MAAQ0wJ,IACbpiL,KAAKm9L,SAASD,EAAU,GAAG,GAC3Bl9L,KAAK0xB,IAAM,GAEf,MAAM0rK,EAAOv6L,KAAKg7D,IAAIukH,EAAWpiL,KAAK0xB,IAAKrlB,EAAMqlB,GAC3C2rK,EAAajhL,EAAK6wK,WAAav7J,EAErC,GAAI0rK,IAAShb,GAAcib,EAAa,KAAM3rK,EAAM0rK,EAAO/wL,GAQ3Ds8B,EAAOz/B,IAAIkT,EAAK8lK,SAASxwJ,EAAKA,EAAM0rK,GAAOp9L,KAAK0xB,KAChD1xB,KAAK0xB,KAAO0rK,EACZp9L,KAAKK,QAAU+8L,EACf1rK,GAAO0rK,MAXP,CACI,MAAME,EAAS,IAAIxoG,YAAY14E,EAAKusB,OAAQ00J,EAAYx6L,KAAKioB,OAAOze,EAAMqlB,GAAO,IACjF,IAAK,IAAI6rK,EAAQ,EAAG7rK,EAAM0wJ,EAAW/1K,EAAKkxL,GAASL,EAAS78L,OAAQqxB,GAAO0wJ,EACvEpiL,KAAKK,QAAU+hL,EACfpiL,KAAKm9L,SAASG,EAAQC,GAAO,EAGpC,CAKJ,CACD,OAAOv9L,IACV,CACDw9L,WAAWppH,GACPruC,GAAAA,OAAc/lC,MACd+lC,GAAAA,OAAcquC,EAAKp0E,MACnB,MAAM,IAAE0xB,EAAF,SAAOwrK,GAAal9L,KAC1BA,KAAKq8L,UAAW,EAEhBr8L,KAAK2oC,OAAOu5I,SAASxwJ,GAAKkC,KAAK,GAC/B5zB,KAAKm9L,SAASD,EAAU,GAAG,GAC3B,MAAMO,EAAQnB,GAAIloH,GAClBp0E,KAAKiJ,MAAM1H,SAAQ,CAACkf,EAAGxe,IAAOw7L,EAAMx7L,GAAKwe,GAC5C,CACD6oB,SACI,MAAM,OAAEX,EAAF,UAAUszJ,GAAcj8L,KAC9BA,KAAKw9L,WAAW70J,GAChB,MAAMmB,EAAMnB,EAAO1kC,MAAM,EAAGg4L,GAE5B,OADAj8L,KAAKwhH,UACE13E,CACV,CACD0yJ,WAAWxyK,GACP,MAAM,OAAE2e,EAAF,OAAUtoC,EAAV,SAAkBg8L,EAAlB,UAA4BD,EAA5B,UAAuCH,EAAvC,IAAkDvqK,GAAQ1xB,KAShE,OARAgqB,IAAOA,EAAK,IAAIhqB,KAAKyW,YAAY,CAAE0qB,MAAO86J,KAC1CjyK,EAAG9gB,OAAOlJ,KAAKiJ,OACf+gB,EAAG3pB,OAASA,EACZ2pB,EAAGqyK,SAAWA,EACdryK,EAAGoyK,UAAYA,EACfpyK,EAAGiyK,UAAYA,EACfjyK,EAAG2e,OAAOz/B,IAAIy/B,GACd3e,EAAG0H,IAAMA,EACF1H,CACV,ECtGL,MAAM0zK,GAAa1uK,OAAO,GAAK,GAAK,GAC9B2uK,GAAO3uK,OAAO,IAEb,SAAS4uK,GAAQ1qK,GAAe,IAAZu7E,EAAY,wDACnC,OAAIA,EACO,CAAEriG,EAAGoyD,OAAOtrC,EAAIwqK,IAAa32J,EAAGy3B,OAAQtrC,GAAKyqK,GAAQD,KACzD,CAAEtxL,EAAsC,EAAnCoyD,OAAQtrC,GAAKyqK,GAAQD,IAAiB32J,EAA4B,EAAzBy3B,OAAOtrC,EAAIwqK,IACnE,CAqCD,MAOMG,GAAM,CACRD,WAASvzL,MA5CN,SAAeyzL,GAAiB,IAAZrvF,EAAY,wDAC/BjnB,EAAK,IAAIsN,YAAYgpG,EAAIz9L,QACzB09L,EAAK,IAAIjpG,YAAYgpG,EAAIz9L,QAC7B,IAAK,IAAI4B,EAAI,EAAGA,EAAI67L,EAAIz9L,OAAQ4B,IAAK,CACjC,MAAM,EAAEmK,EAAF,EAAK26B,GAAM62J,GAAQE,EAAI77L,GAAIwsG,IAChCjnB,EAAGvlF,GAAI87L,EAAG97L,IAAM,CAACmK,EAAG26B,EACxB,CACD,MAAO,CAACygD,EAAIu2G,EACf,EAoCmBC,MAnCC,CAAC5xL,EAAG26B,IAAO/X,OAAO5iB,IAAM,IAAMuxL,GAAQ3uK,OAAO+X,IAAM,GAoCpEk3J,MAlCU,CAAC7xL,EAAG26B,EAAGtW,IAAMrkB,IAAMqkB,EAkCtBytK,MAjCG,CAAC9xL,EAAG26B,EAAGtW,IAAOrkB,GAAM,GAAKqkB,EAAOsW,IAAMtW,EAkChD0tK,OAhCW,CAAC/xL,EAAG26B,EAAGtW,IAAOrkB,IAAMqkB,EAAMsW,GAAM,GAAKtW,EAgCxC2tK,OA/BG,CAAChyL,EAAG26B,EAAGtW,IAAOrkB,GAAM,GAAKqkB,EAAOsW,IAAMtW,EA+BjC4tK,OA7BL,CAACjyL,EAAG26B,EAAGtW,IAAOrkB,GAAM,GAAKqkB,EAAOsW,IAAOtW,EAAI,GA6B9B6tK,OA5Bb,CAAClyL,EAAG26B,EAAGtW,IAAOrkB,IAAOqkB,EAAI,GAAQsW,GAAM,GAAKtW,EA6BvD8tK,QA3BY,CAACnyL,EAAG26B,IAAMA,EA2Bby3J,QA1BG,CAACpyL,EAAG26B,IAAM36B,EA2BtBqyL,OAzBW,CAACryL,EAAG26B,EAAGtW,IAAOrkB,GAAKqkB,EAAMsW,IAAO,GAAKtW,EAyBxCiuK,OAxBG,CAACtyL,EAAG26B,EAAGtW,IAAOsW,GAAKtW,EAAMrkB,IAAO,GAAKqkB,EAwBhCkuK,OAtBL,CAACvyL,EAAG26B,EAAGtW,IAAOsW,GAAMtW,EAAI,GAAQrkB,IAAO,GAAKqkB,EAsB/BmuK,OArBb,CAACxyL,EAAG26B,EAAGtW,IAAOrkB,GAAMqkB,EAAI,GAAQsW,IAAO,GAAKtW,EAsBvDzP,IAlBG,SAAawmE,EAAIu2G,EAAIt2G,EAAIo3G,GAC5B,MAAM93J,GAAKg3J,IAAO,IAAMc,IAAO,GAC/B,MAAO,CAAEzyL,EAAIo7E,EAAKC,GAAO1gD,EAAI,GAAK,GAAM,GAAM,EAAGA,EAAO,EAAJA,EACvD,EAeQ+3J,MAbK,CAACf,EAAIc,EAAIE,KAAQhB,IAAO,IAAMc,IAAO,IAAME,IAAO,GAahDC,MAZF,CAACrsK,EAAK60D,EAAIC,EAAIC,IAAQF,EAAKC,EAAKC,GAAO/0D,EAAM,GAAK,GAAM,GAAM,EAYrDssK,MAXT,CAAClB,EAAIc,EAAIE,EAAIG,KAAQnB,IAAO,IAAMc,IAAO,IAAME,IAAO,IAAMG,IAAO,GAWnDC,MAVhB,CAACxsK,EAAK60D,EAAIC,EAAIC,EAAIC,IAAQH,EAAKC,EAAKC,EAAKC,GAAOh1D,EAAM,GAAK,GAAM,GAAM,EAUhDysK,MARvB,CAACzsK,EAAK60D,EAAIC,EAAIC,EAAIC,EAAIC,IAAQJ,EAAKC,EAAKC,EAAKC,EAAKC,GAAOj1D,EAAM,GAAK,GAAM,GAAM,EAQlD0sK,MAT9B,CAACtB,EAAIc,EAAIE,EAAIG,EAAII,KAAQvB,IAAO,IAAMc,IAAO,IAAME,IAAO,IAAMG,IAAO,IAAMI,IAAO,IAWlG,MCtDMC,GAAK,IAAIzqG,YAAY,CACvB,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,aAGlF0qG,GAAM,IAAI1qG,YAAY,IAE5B,SAAS2qG,GAAG3sK,EAAGC,EAAG9a,EAAG++B,EAAGvN,EAAKnhC,GAEzB,MAAMo3L,EAAKj2J,EAAInhC,GAAIm3G,EAAKh2E,EAAInhC,EAAI,GAChC,IAAIy1L,EAAKyB,GAAI,EAAI1sK,GAAI00D,EAAKg4G,GAAI,EAAI1sK,EAAI,GAClC+rK,EAAKW,GAAI,EAAIzsK,GAAI00D,EAAK+3G,GAAI,EAAIzsK,EAAI,GAClCgsK,EAAKS,GAAI,EAAIvnL,GAAIyvE,EAAK83G,GAAI,EAAIvnL,EAAI,GAClCinL,EAAKM,GAAI,EAAIxoJ,GAAI2wC,EAAK63G,GAAI,EAAIxoJ,EAAI,GAElC23E,EAAKkvE,GAAAA,MAAUE,EAAIc,EAAIa,GAC3Bl4G,EAAKq2G,GAAAA,MAAUlvE,EAAInnC,EAAIC,EAAIg4B,GAC3Bs+E,EAAU,EAALpvE,IAEFhnC,KAAIu3G,MAAO,CAAEv3G,GAAIA,EAAKH,EAAI03G,GAAIA,EAAKnB,MACnCp2G,KAAIu3G,MAAO,CAAEv3G,GAAIk2G,GAAAA,QAAYl2G,EAAIu3G,GAAKA,GAAIrB,GAAAA,QAAYl2G,EAAIu3G,OAE1D9yL,EAAGs7E,EAAI3gD,EAAGg4J,GAAOlB,GAAAA,IAAQn2G,EAAIq3G,EAAIp3G,EAAIu3G,MAErCz3G,KAAIo3G,MAAO,CAAEp3G,GAAIA,EAAKC,EAAIm3G,GAAIA,EAAKE,MACnCt3G,KAAIo3G,MAAO,CAAEp3G,GAAIo2G,GAAAA,OAAWp2G,EAAIo3G,EAAI,IAAKA,GAAIhB,GAAAA,OAAWp2G,EAAIo3G,EAAI,MAClEW,GAAI,EAAI1sK,GAAKirK,EAAMyB,GAAI,EAAI1sK,EAAI,GAAK00D,EACpCg4G,GAAI,EAAIzsK,GAAK8rK,EAAMW,GAAI,EAAIzsK,EAAI,GAAK00D,EACpC+3G,GAAI,EAAIvnL,GAAK8mL,EAAMS,GAAI,EAAIvnL,EAAI,GAAKyvE,EACpC83G,GAAI,EAAIxoJ,GAAKkoJ,EAAMM,GAAI,EAAIxoJ,EAAI,GAAK2wC,CACxC,CACD,SAASg4G,GAAG7sK,EAAGC,EAAG9a,EAAG++B,EAAGvN,EAAKnhC,GAEzB,MAAMo3L,EAAKj2J,EAAInhC,GAAIm3G,EAAKh2E,EAAInhC,EAAI,GAChC,IAAIy1L,EAAKyB,GAAI,EAAI1sK,GAAI00D,EAAKg4G,GAAI,EAAI1sK,EAAI,GAClC+rK,EAAKW,GAAI,EAAIzsK,GAAI00D,EAAK+3G,GAAI,EAAIzsK,EAAI,GAClCgsK,EAAKS,GAAI,EAAIvnL,GAAIyvE,EAAK83G,GAAI,EAAIvnL,EAAI,GAClCinL,EAAKM,GAAI,EAAIxoJ,GAAI2wC,EAAK63G,GAAI,EAAIxoJ,EAAI,GAElC23E,EAAKkvE,GAAAA,MAAUE,EAAIc,EAAIa,GAC3Bl4G,EAAKq2G,GAAAA,MAAUlvE,EAAInnC,EAAIC,EAAIg4B,GAC3Bs+E,EAAU,EAALpvE,IAEFhnC,KAAIu3G,MAAO,CAAEv3G,GAAIA,EAAKH,EAAI03G,GAAIA,EAAKnB,MACnCp2G,KAAIu3G,MAAO,CAAEv3G,GAAIk2G,GAAAA,OAAWl2G,EAAIu3G,EAAI,IAAKA,GAAIrB,GAAAA,OAAWl2G,EAAIu3G,EAAI,QAEhE9yL,EAAGs7E,EAAI3gD,EAAGg4J,GAAOlB,GAAAA,IAAQn2G,EAAIq3G,EAAIp3G,EAAIu3G,MAErCz3G,KAAIo3G,MAAO,CAAEp3G,GAAIA,EAAKC,EAAIm3G,GAAIA,EAAKE,MACnCt3G,KAAIo3G,MAAO,CAAEp3G,GAAIo2G,GAAAA,OAAWp2G,EAAIo3G,EAAI,IAAKA,GAAIhB,GAAAA,OAAWp2G,EAAIo3G,EAAI,MAClEW,GAAI,EAAI1sK,GAAKirK,EAAMyB,GAAI,EAAI1sK,EAAI,GAAK00D,EACpCg4G,GAAI,EAAIzsK,GAAK8rK,EAAMW,GAAI,EAAIzsK,EAAI,GAAK00D,EACpC+3G,GAAI,EAAIvnL,GAAK8mL,EAAMS,GAAI,EAAIvnL,EAAI,GAAKyvE,EACpC83G,GAAI,EAAIxoJ,GAAKkoJ,EAAMM,GAAI,EAAIxoJ,EAAI,GAAK2wC,CACxC,CACD,MAAMi4G,WAAgB/C,GAClBpmL,cAAuB,IAAXyxC,EAAW,uDAAJ,CAAC,EAChBlqC,MAAM,SAAoBld,IAAfonD,EAAK/mB,MAAsB,GAAK+mB,EAAK/mB,MAAO+mB,EAAM,GAAI,GAAI,IAErEloD,KAAK6/L,IAAc,EAARN,GAAG,GACdv/L,KAAK8/L,IAAc,EAARP,GAAG,GACdv/L,KAAK+/L,IAAc,EAARR,GAAG,GACdv/L,KAAKggM,IAAc,EAART,GAAG,GACdv/L,KAAKigM,IAAc,EAARV,GAAG,GACdv/L,KAAKkgM,IAAc,EAARX,GAAG,GACdv/L,KAAKmgM,IAAc,EAARZ,GAAG,GACdv/L,KAAKogM,IAAc,EAARb,GAAG,GACdv/L,KAAKqgM,IAAc,EAARd,GAAG,GACdv/L,KAAKsgM,IAAc,EAARf,GAAG,GACdv/L,KAAKugM,IAAe,EAAThB,GAAG,IACdv/L,KAAKwgM,IAAe,EAATjB,GAAG,IACdv/L,KAAKygM,IAAe,EAATlB,GAAG,IACdv/L,KAAK0gM,IAAe,EAATnB,GAAG,IACdv/L,KAAK2gM,IAAe,EAATpB,GAAG,IACdv/L,KAAK4gM,IAAe,EAATrB,GAAG,IACd,MAAMsB,EAAY34I,EAAKhnD,IAAMgnD,EAAKhnD,IAAIb,OAAS,EAE/C,GADAL,KAAK6/L,KAAO7/L,KAAKi8L,UAAa4E,GAAa,EAAM,MAAe,GAAQ,GACpE34I,EAAKv8B,KAAM,CACX,MAAMA,EAAO2wK,GAAIlvH,GAAQllB,EAAKv8B,OAC9B3rB,KAAKqgM,KAAO10K,EAAK,GACjB3rB,KAAKsgM,KAAO30K,EAAK,GACjB3rB,KAAKugM,KAAO50K,EAAK,GACjB3rB,KAAKwgM,KAAO70K,EAAK,EACpB,CACD,GAAIu8B,EAAK+0I,gBAAiB,CACtB,MAAMrjJ,EAAO0iJ,GAAIlvH,GAAQllB,EAAK+0I,kBAC9Bj9L,KAAKygM,KAAO7mJ,EAAK,GACjB55C,KAAK0gM,KAAO9mJ,EAAK,GACjB55C,KAAK2gM,KAAO/mJ,EAAK,GACjB55C,KAAK4gM,KAAOhnJ,EAAK,EACpB,CACD,GAAIsO,EAAKhnD,IAAK,CAEV,MAAMinC,EAAM,IAAIhsB,WAAWnc,KAAKoiL,UAChCj6I,EAAIj/B,IAAIkkE,GAAQllB,EAAKhnD,MACrBlB,KAAKqpC,OAAOlB,EACf,CACJ,CAEDl/B,MACI,IAAI,IAAE42L,EAAF,IAAOC,EAAP,IAAYC,EAAZ,IAAiBC,EAAjB,IAAsBC,EAAtB,IAA2BC,EAA3B,IAAgCC,EAAhC,IAAqCC,EAArC,IAA0CC,EAA1C,IAA+CC,EAA/C,IAAoDC,EAApD,IAAyDC,EAAzD,IAA8DC,EAA9D,IAAmEC,EAAnE,IAAwEC,EAAxE,IAA6EC,GAAQ5gM,KACzF,MAAO,CAAC6/L,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACtF,CAED13L,IAAI22L,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAC3E5gM,KAAK6/L,IAAY,EAANA,EACX7/L,KAAK8/L,IAAY,EAANA,EACX9/L,KAAK+/L,IAAY,EAANA,EACX//L,KAAKggM,IAAY,EAANA,EACXhgM,KAAKigM,IAAY,EAANA,EACXjgM,KAAKkgM,IAAY,EAANA,EACXlgM,KAAKmgM,IAAY,EAANA,EACXngM,KAAKogM,IAAY,EAANA,EACXpgM,KAAKqgM,IAAY,EAANA,EACXrgM,KAAKsgM,IAAY,EAANA,EACXtgM,KAAKugM,IAAY,EAANA,EACXvgM,KAAKwgM,IAAY,EAANA,EACXxgM,KAAKygM,IAAY,EAANA,EACXzgM,KAAK0gM,IAAY,EAANA,EACX1gM,KAAK2gM,IAAY,EAANA,EACX3gM,KAAK4gM,IAAY,EAANA,CACd,CACDzD,SAAS1zJ,EAAKliC,EAAQu5L,GAClB9gM,KAAKiJ,MAAM1H,SAAQ,CAACkf,EAAGxe,IAAOu9L,GAAIv9L,GAAKwe,IACvC++K,GAAIt2L,IAAIq2L,GAAI,IACZ,IAAI,EAAEnzL,EAAF,EAAK26B,GAAM82J,GAAAA,QAAY7uK,OAAOhvB,KAAKK,SACvCm/L,GAAI,IAAMD,GAAG,GAAKx4J,EAClBy4J,GAAI,IAAMD,GAAG,GAAKnzL,EAEd00L,IACAtB,GAAI,KAAOA,GAAI,IACfA,GAAI,KAAOA,GAAI,KAEnB,IAAIp3L,EAAI,EACR,MAAMqoB,EAAImsK,GACV,IAAK,IAAI36L,EAAI,EAAGA,EAAI,GAAIA,IACpBw9L,GAAG,EAAG,EAAG,EAAG,GAAIh2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACpCu3L,GAAG,EAAG,EAAG,EAAG,GAAIl2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACpCq3L,GAAG,EAAG,EAAG,EAAG,GAAIh2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACpCu3L,GAAG,EAAG,EAAG,EAAG,GAAIl2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACpCq3L,GAAG,EAAG,EAAG,GAAI,GAAIh2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACrCu3L,GAAG,EAAG,EAAG,GAAI,GAAIl2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACrCq3L,GAAG,EAAG,EAAG,GAAI,GAAIh2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACrCu3L,GAAG,EAAG,EAAG,GAAI,GAAIl2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACrCq3L,GAAG,EAAG,EAAG,GAAI,GAAIh2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACrCu3L,GAAG,EAAG,EAAG,GAAI,GAAIl2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACrCq3L,GAAG,EAAG,EAAG,GAAI,GAAIh2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACrCu3L,GAAG,EAAG,EAAG,GAAI,GAAIl2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACrCq3L,GAAG,EAAG,EAAG,EAAG,GAAIh2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACpCu3L,GAAG,EAAG,EAAG,EAAG,GAAIl2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACpCq3L,GAAG,EAAG,EAAG,EAAG,GAAIh2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MACpCu3L,GAAG,EAAG,EAAG,EAAG,GAAIl2J,EAAKliC,EAAS,EAAIkpB,EAAEroB,MAExCpI,KAAK6/L,KAAOL,GAAI,GAAKA,GAAI,IACzBx/L,KAAK8/L,KAAON,GAAI,GAAKA,GAAI,IACzBx/L,KAAK+/L,KAAOP,GAAI,GAAKA,GAAI,IACzBx/L,KAAKggM,KAAOR,GAAI,GAAKA,GAAI,IACzBx/L,KAAKigM,KAAOT,GAAI,GAAKA,GAAI,IACzBx/L,KAAKkgM,KAAOV,GAAI,GAAKA,GAAI,IACzBx/L,KAAKmgM,KAAOX,GAAI,GAAKA,GAAI,IACzBx/L,KAAKogM,KAAOZ,GAAI,GAAKA,GAAI,IACzBx/L,KAAKqgM,KAAOb,GAAI,GAAKA,GAAI,IACzBx/L,KAAKsgM,KAAOd,GAAI,GAAKA,GAAI,IACzBx/L,KAAKugM,KAAOf,GAAI,IAAMA,GAAI,IAC1Bx/L,KAAKwgM,KAAOhB,GAAI,IAAMA,GAAI,IAC1Bx/L,KAAKygM,KAAOjB,GAAI,IAAMA,GAAI,IAC1Bx/L,KAAK0gM,KAAOlB,GAAI,IAAMA,GAAI,IAC1Bx/L,KAAK2gM,KAAOnB,GAAI,IAAMA,GAAI,IAC1Bx/L,KAAK4gM,KAAOpB,GAAI,IAAMA,GAAI,IAC1BA,GAAI5rK,KAAK,EACZ,CACD4tF,UACIxhH,KAAKo8L,WAAY,EACjBp8L,KAAKk9L,SAAStpK,KAAK,GACnB5zB,KAAKkJ,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACzD,EAOE,MAAM63L,GAAUtE,IAAyBv0I,GAAS,IAAI03I,GAAQ13I,KC1LtD,SAAS84I,GAA2B1wL,EAAK2wL,EAAY79L,ICDrD,SAAoCkN,EAAK4wL,GACtD,GAAIA,EAAkB/qK,IAAI7lB,GACxB,MAAM,IAAIoc,UAAU,iEAExB,CDFE,CAA0Bpc,EAAK2wL,GAC/BA,EAAW/3L,IAAIoH,EAAKlN,EACtB,CEJe,SAAS+9L,GAA6BC,EAAUH,EAAYjyI,GACzE,IAAKiyI,EAAW9qK,IAAIirK,GAClB,MAAM,IAAI10K,UAAU,gBAAkBsiC,EAAS,kCAGjD,OAAOiyI,EAAWh4L,IAAIm4L,EACxB,CCJe,SAASC,GAAsBD,EAAUH,GAEtD,OCJa,SAAkCG,EAAUnyG,GACzD,OAAIA,EAAWhmF,IACNgmF,EAAWhmF,IAAIY,KAAKu3L,GAGtBnyG,EAAW7rF,KACpB,CDFS,CAAwBg+L,EADd,GAA4BA,EAAUH,EAAY,OAErE,CEHe,SAASK,GAAsBF,EAAUH,EAAY79L,GAGlE,OCLa,SAAkCg+L,EAAUnyG,EAAY7rF,GACrE,GAAI6rF,EAAW/lF,IACb+lF,EAAW/lF,IAAIW,KAAKu3L,EAAUh+L,OACzB,CACL,IAAK6rF,EAAWvqD,SACd,MAAM,IAAIhY,UAAU,4CAGtBuiE,EAAW7rF,MAAQA,CACrB,CACF,CDNE,CAAwBg+L,EADP,GAA4BA,EAAUH,EAAY,OACrB79L,GACvCA,CACT,CEDO,MAAM8/K,GAAcI,GAAc,cCFlC,MAEL7sK,YAAYiO,GACX,CAEDtG,OAAOhb,GACL,IAAI0N,EAAS,GAEb,IAAK,IAAI7O,EAAI,EAAGA,EAAImB,EAAM/C,OAAQ4B,IAChC6O,GAAU/N,OAAOC,aAAaI,EAAMnB,IAGtC,OAAO6O,CACR,ICbGywL,GAAU,IAAIre,GAAY,SAgBzB,SAASse,GAAYp+L,GAC1B,OAAOA,EAAQm+L,GAAQnjL,OAAOhb,GAAS,EACxC,CCrBc,SAAS,GAAgBkN,EAAKpP,EAAKkC,GAYhD,OAXIlC,KAAOoP,EACTpN,OAAOqR,eAAejE,EAAKpP,EAAK,CAC9BkC,MAAOA,EACPyc,YAAY,EACZqwB,cAAc,EACdxL,UAAU,IAGZp0B,EAAIpP,GAAOkC,EAGNkN,CACT,CCVA,MAAMmxL,GAAiB,CACrB/4J,gBCAK,SAAyBnX,GAI9B,OAAO8xJ,GAAQ9gJ,OAAOmG,gBAAgBnX,EACvC,GDHKmwK,GAAe,CACnBn/J,OAAQk/J,uBAcH,MAAME,GAGXlrL,YAAYmrL,GAAQ,wDAMZ,KACN,MAAM,IAAIhiL,MAAM,QAAhB,IAPkB,mCAWM6zI,QACe3yJ,IAAhC,GAAAd,KAAA,IAAa6hM,UAAUpuC,KAZZ,4BAgBD,CAACquC,EAAKz1L,KACvB,MAAM,IAAIuT,MAAM,GAAA5f,KAAA,IAAa+hM,UAAUD,EAAKz1L,GAA5C,IAjBkB,uCAqBU,IACrB,GAAArM,KAAA,IAAagiM,UAAUN,MAtBZ,0CA0Ba,CAACI,EAAKz1L,KACrC,MAAM,IAAIuT,MAAJ,4BAA+B,GAAA5f,KAAA,IAAa+hM,UAAUD,EAAKz1L,IAAjE,IA3BkB,yCAgCY41L,GACvB,GAAAjiM,KAAA,IAAagiM,UAAUP,MAjCZ,kDAsCqBQ,GAChC,GAAAjiM,KAAA,IAAagiM,UAAUP,GAAe/4J,mBAvC3B,kDA4CqB,CAACw5J,EAAOJ,EAAKz1L,KACpDo1L,GAAe/4J,gBAAgB,GAAA1oC,KAAA,IAAamiM,OAAOL,EAAKz1L,GAAxD,IA7CkB,iDAkDoB,CAAC41L,EAAMG,EAAMj/D,KACnD,MAAM,IAAIvjH,MAAM,kCAAhB,IAnDkB,sCAuDS6zI,IAC3B,GAAAzzJ,KAAA,IAAaqiM,WAAW5uC,EAAxB,IAvDA,GAAAzzJ,KAAA,GAAe4hM,EAChB,4JEPH,MAAMU,GAAKnmL,WACLyV,GAAM2wK,YACNjG,GAAMxnG,YAEN0tG,GAAO,IAAIF,GAAG,CAAC,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,KAE7EG,GAAO,IAAIH,GAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAEzG,EAAG,EAEH,IAGMI,GAAO,IAAIJ,GAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAEnH,EAAG,IAEGK,GAAO,CAAChmG,EAAI3sE,KAChB,MAAM+C,EAAI,IAAInB,GAAI,IAElB,IAAK,IAAI3vB,EAAI,EAAGA,EAAI,KAAMA,EACxB8wB,EAAE9wB,GAAK+tB,GAAS,GAAK2sE,EAAG16F,EAAI,GAI9B,MAAMuuB,EAAI,IAAI8rK,GAAIvpK,EAAE,KAEpB,IAAK,IAAI9wB,EAAI,EAAGA,EAAI,KAAMA,EACxB,IAAK,IAAImG,EAAI2qB,EAAE9wB,GAAImG,EAAI2qB,EAAE9wB,EAAI,KAAMmG,EACjCooB,EAAEpoB,GAAKA,EAAI2qB,EAAE9wB,IAAM,EAAIA,EAI3B,MAAO,CAAC8wB,EAAGvC,EAAX,GAGK27D,GAAIy2G,IAASD,GAAKF,GAAM,GAE/Bt2G,GAAG,IAAM,IAAKy2G,GAAM,KAAO,GAC3B,MAAO97F,IAAM67F,GAAKD,GAAM,GAElBG,GAAM,IAAIjxK,GAAI,OAEpB,IAAK,IAAI3vB,GAAI,EAAGA,GAAI,QAASA,GAAG,CAE9B,IAAIqG,GAAS,MAAJrG,MAAgB,GAAS,MAAJA,KAAe,EAC7CqG,GAAS,MAAJA,KAAgB,GAAS,MAAJA,IAAe,EACzCA,GAAS,MAAJA,KAAgB,GAAS,KAAJA,IAAe,EACzCu6L,GAAI5gM,MAAW,MAAJqG,KAAgB,GAAS,IAAJA,IAAe,KAAO,CACvD,CAKD,MAAMw6L,GAAO,CAACp8F,EAAIrJ,EAAI7sE,KACpB,MAAMC,EAAIi2E,EAAGrmG,OAEb,IAAI4B,EAAI,EAER,MAAM8kC,EAAI,IAAInV,GAAIyrE,GAElB,KAAOp7F,EAAIwuB,IAAKxuB,IAAK8kC,EAAE2/D,EAAGzkG,GAAK,GAG/B,MAAMwsG,EAAK,IAAI78E,GAAIyrE,GAEnB,IAAKp7F,EAAI,EAAGA,EAAIo7F,IAAMp7F,EACpBwsG,EAAGxsG,GAAKwsG,EAAGxsG,EAAI,GAAK8kC,EAAE9kC,EAAI,IAAM,EAGlC,IAAI8gM,EAEJ,GAAIvyK,EAAG,CAELuyK,EAAK,IAAInxK,GAAI,GAAKyrE,GAElB,MAAM2lG,EAAM,GAAK3lG,EAEjB,IAAKp7F,EAAI,EAAGA,EAAIwuB,IAAKxuB,EAEnB,GAAIykG,EAAGzkG,GAAI,CAET,MAAMghM,EAAKhhM,GAAK,EAAIykG,EAAGzkG,GAEjBuuB,EAAI6sE,EAAKqJ,EAAGzkG,GAElB,IAAIwe,EAAIguF,EAAG/H,EAAGzkG,GAAK,MAAQuuB,EAE3B,IAAK,MAAMmD,EAAIlT,GAAK,GAAK+P,GAAK,EAAG/P,GAAKkT,IAAKlT,EAEzCsiL,EAAGF,GAAIpiL,KAAOuiL,GAAOC,CAExB,CAEJ,MAGC,IAFAF,EAAK,IAAInxK,GAAInB,GAERxuB,EAAI,EAAGA,EAAIwuB,IAAKxuB,EAAG8gM,EAAG9gM,GAAK4gM,GAAIp0F,EAAG/H,EAAGzkG,GAAK,QAAU,GAAKykG,EAAGzkG,GAGnE,OAAO8gM,CAAP,EAIIG,GAAM,IAAIZ,GAAG,KAEnB,IAAK,IAAIrgM,GAAI,EAAGA,GAAI,MAAOA,GAAGihM,GAAIjhM,IAAK,EAEvC,IAAK,IAAIA,GAAI,IAAKA,GAAI,MAAOA,GAAGihM,GAAIjhM,IAAK,EAEzC,IAAK,IAAIA,GAAI,IAAKA,GAAI,MAAOA,GAAGihM,GAAIjhM,IAAK,EAEzC,IAAK,IAAIA,GAAI,IAAKA,GAAI,MAAOA,GAAGihM,GAAIjhM,IAAK,EAGzC,MAAMkhM,GAAM,IAAIb,GAAG,IAEnB,IAAK,IAAIrgM,GAAI,EAAGA,GAAI,KAAMA,GAAGkhM,GAAIlhM,IAAK,EAGtC,MAAMmhM,GAAON,GAAKI,GAAK,EAAG,GAEpBG,GAAOP,GAAKK,GAAK,EAAG,GAEpB9nK,GAAO,CAAC2b,EAAGtV,EAAG/N,KAClB,MAAMqtB,EAAItf,IAAM,EAChB,OAAQsV,EAAEgK,GAAKhK,EAAEgK,EAAI,IAAM,MAAY,EAAJtf,GAAS/N,CAA5C,EAII2vK,GAAS,CAACtsJ,EAAGtV,KACjB,MAAMsf,EAAItf,IAAM,EAChB,OAAQsV,EAAEgK,GAAKhK,EAAEgK,EAAI,IAAM,EAAIhK,EAAEgK,EAAI,IAAM,OAAa,EAAJtf,EAApD,EAkBI8I,GAAM1X,IACV,IAAIa,EAAIb,EAAE,GAEV,IAAK,IAAI7wB,EAAI,EAAGA,EAAI6wB,EAAEzyB,SAAU4B,EAC1B6wB,EAAE7wB,GAAK0xB,IAAGA,EAAIb,EAAE7wB,IAGtB,OAAO0xB,CAAP,EAII4vK,GAAQ,CAACC,EAAK/nJ,EAAKziB,KACvB,MAAMyqK,GAAQzqK,GAAMA,EAAG/2B,EAClB+2B,IAAIA,EAAK,CAAC,GAEf,MAAMm2F,EAAKq0E,EAAInjM,OAETqjM,GAASjoJ,IAAQgoJ,EAElBhoJ,IAAKA,EAAM,IAAI6mJ,GAAQ,EAALnzE,IAEvB,MAAMw0E,EAAO58J,IACX,IAAI4kD,EAAKlwC,EAAIp7C,OAEb,GAAI0mC,EAAI4kD,EAAI,CAEV,MAAMi4G,EAAO,IAAItB,GAAGz/L,KAAK2nC,IAAImhD,GAAM,EAAG5kD,IACtC68J,EAAK16L,IAAIuyC,GACTA,EAAMmoJ,CACP,GAIH,IAAIC,EAAQ7qK,EAAG5U,GAAK,EAChBsN,EAAMsH,EAAG0I,GAAK,EACdoiK,EAAK9qK,EAAGjG,GAAK,EACbgxK,EAAK/qK,EAAG+N,EACRq4C,EAAKpmD,EAAGge,EACRgtJ,EAAMhrK,EAAGrF,EACTswK,EAAMjrK,EAAG9F,EACb,GAAI2wK,IAAUE,EAAI,OAAOtoJ,EAEzB,MAAMyoJ,EAAO/0E,GAAM,EAEnB,EAAG,CACD,IAAK40E,EAAI,CAEP/qK,EAAG5U,EAAIy/K,EAAQxoK,GAAKmoK,EAAK9xK,EAAK,GAE9B,MAAM5sB,EAAOu2B,GAAKmoK,EAAK9xK,EAAM,EAAG,GAGhC,GAFAA,GAAO,GAEF5sB,EAAM,CAET,MAAM2rB,IApEDiR,EAoEUhQ,KApEE,IAAU,EAAJgQ,GAAS,GAoEV,EAChBqF,EAAIy8J,EAAI/yK,EAAI,GAAK+yK,EAAI/yK,EAAI,IAAM,EAC/BkI,EAAIlI,EAAIsW,EAEd,GAAIpO,EAAIw2F,EAAI,CACV,GAAIs0E,EAAM,KAAM,iBAChB,KACD,CAGGC,GAAOC,EAAKG,EAAK/8J,GAErB0U,EAAIvyC,IAAIs6L,EAAIthB,SAASzxJ,EAAGkI,GAAImrK,GAE5B9qK,EAAGjG,EAAI+wK,GAAM/8J,EAAG/N,EAAG0I,EAAIhQ,EAAMiH,GAAK,EAClC,QACD,CAAM,GAAY,GAAR7zB,EAAWi/L,EAAKX,GAAMhkH,EAAKikH,GAAMW,EAAM,EAAGC,EAAM,MAAO,IAAY,GAARn/L,EAoD/D,KAAM,qBApDoE,CAE/E,MAAMq/L,EAAO9oK,GAAKmoK,EAAK9xK,EAAK,IAAM,IAC5B0yK,EAAQ/oK,GAAKmoK,EAAK9xK,EAAM,GAAI,IAAM,EAClC69F,EAAK40E,EAAO9oK,GAAKmoK,EAAK9xK,EAAM,EAAG,IAAM,EAC3CA,GAAO,GAEP,MAAM2yK,EAAM,IAAI/B,GAAG/yE,GAEb+0E,EAAM,IAAIhC,GAAG,IAEnB,IAAK,IAAIrgM,EAAI,EAAGA,EAAImiM,IAASniM,EAE3BqiM,EAAI9B,GAAKvgM,IAAMo5B,GAAKmoK,EAAK9xK,EAAU,EAAJzvB,EAAO,GAGxCyvB,GAAe,EAAR0yK,EAEP,MAAMG,EAAM/5J,GAAI85J,GACVE,GAAU,GAAKD,GAAO,EAC5B,IAAKd,GAAQ/xK,EAAM69F,GAAMg1E,EAAM,GAAKL,EAAM,MAE1C,MAAMO,EAAM3B,GAAKwB,EAAKC,EAAK,GAE3B,IAAK,IAAItiM,EAAI,EAAGA,EAAIstH,GAAK,CACvB,MAAM/+F,EAAIi0K,EAAIppK,GAAKmoK,EAAK9xK,EAAK8yK,IAE7B9yK,GAAW,GAAJlB,EAEP,MAAMC,EAAID,IAAM,EAEhB,GAAIC,EAAI,GACN4zK,EAAIpiM,KAAOwuB,MACN,CAEL,IAAIxY,EAAI,EACJib,EAAI,EAGR,IAFS,IAALzC,GAASyC,EAAI,EAAImI,GAAKmoK,EAAK9xK,EAAK,GAAIA,GAAO,EAAGzZ,EAAIosL,EAAIpiM,EAAI,IAAiB,IAALwuB,GAASyC,EAAI,EAAImI,GAAKmoK,EAAK9xK,EAAK,GAAIA,GAAO,GAAgB,IAALjB,IAASyC,EAAI,GAAKmI,GAAKmoK,EAAK9xK,EAAK,KAAMA,GAAO,GAEvKwB,KAAKmxK,EAAIpiM,KAAOgW,CACxB,CACF,CAGD,MAAM8I,EAAKsjL,EAAIniB,SAAS,EAAGiiB,GACrBO,EAAKL,EAAIniB,SAASiiB,GAExBH,EAAMx5J,GAAIzpB,GAEVkjL,EAAMz5J,GAAIk6J,GACVX,EAAKjB,GAAK/hL,EAAIijL,EAAK,GACnB5kH,EAAK0jH,GAAK4B,EAAIT,EAAK,EACpB,CAAM,CAEP,GAAIvyK,EAAMwyK,EAAM,KAAM,gBACvB,CAIGR,GAAOC,EAAKG,EAAK,QACrB,MAAMa,GAAO,GAAKX,GAAO,EACnBY,GAAO,GAAKX,GAAO,EACnBY,EAAMb,EAAMC,EAAM,GAExB,KAAOR,GAAQ/xK,EAAMmzK,EAAMX,GAAM,CAE/B,MAAMjsL,EAAI8rL,EAAGT,GAAOE,EAAK9xK,GAAOizK,GAC1BG,EAAM7sL,IAAM,EAElB,GADAyZ,GAAW,GAAJzZ,EACHyZ,EAAMwyK,EAAM,KAAM,iBACtB,IAAKjsL,EAAG,KAAM,yBACd,GAAI6sL,EAAM,IAAKrpJ,EAAIqoJ,KAAQgB,MAAS,IAAW,KAAPA,EAAY,CAClDf,OAAKjjM,EACL,KACD,CAAM,CACL,IAAIkgB,EAAM8jL,EAAM,IAEhB,GAAIA,EAAM,IAAK,CAEb,MAAM7iM,EAAI6iM,EAAM,IACV/xK,EAAI0vK,GAAKxgM,GACf+e,EAAMqa,GAAKmoK,EAAK9xK,GAAM,GAAKqB,GAAK,GAAKo5D,GAAGlqF,GACxCyvB,GAAOqB,CACR,CAGD,MAAMikB,EAAIooC,EAAGkkH,GAAOE,EAAK9xK,GAAOkzK,GAC1BG,EAAO/tJ,IAAM,EACnB,IAAKA,EAAG,KAAM,mBACdtlB,GAAW,GAAJslB,EACP,IAAI0tJ,EAAK59F,GAAGi+F,GAEZ,GAAIA,EAAO,EAAG,CACZ,MAAMhyK,EAAI2vK,GAAKqC,GACfL,GAAMpB,GAAOE,EAAK9xK,IAAQ,GAAKqB,GAAK,EAAGrB,GAAOqB,CAC/C,CAED,GAAIrB,EAAMwyK,EAAM,KAAM,iBAClBR,GAAOC,EAAKG,EAAK,QACrB,MAAM9/L,EAAM8/L,EAAK9iL,EAEjB,KAAO8iL,EAAK9/L,EAAK8/L,GAAM,EACrBroJ,EAAIqoJ,GAAMroJ,EAAIqoJ,EAAKY,GACnBjpJ,EAAIqoJ,EAAK,GAAKroJ,EAAIqoJ,EAAK,EAAIY,GAC3BjpJ,EAAIqoJ,EAAK,GAAKroJ,EAAIqoJ,EAAK,EAAIY,GAC3BjpJ,EAAIqoJ,EAAK,GAAKroJ,EAAIqoJ,EAAK,EAAIY,GAG7BZ,EAAK9/L,CACN,EACF,CAEDg1B,EAAG+N,EAAIg9J,EAAI/qK,EAAG0I,EAAIhQ,EAAKsH,EAAGjG,EAAI+wK,EAC1BC,IAAIF,EAAQ,EAAG7qK,EAAGrF,EAAIqwK,EAAKhrK,EAAGge,EAAIooC,EAAIpmD,EAAG9F,EAAI+wK,EAClD,QAASJ,GAtMCniK,MAwMX,OAAOoiK,GAAMroJ,EAAIp7C,OAASo7C,EApMhB,EAACh7B,EAAGgQ,EAAGluB,MACR,MAALkuB,GAAaA,EAAI,KAAGA,EAAI,IACnB,MAALluB,GAAaA,EAAIke,EAAEpgB,UAAQkC,EAAIke,EAAEpgB,QAErC,MAAM6yB,EAAI,IAAKzS,aAAamR,GAAMA,GAAMnR,aAAa67K,GAAMA,GAAMgG,IAAI//L,EAAIkuB,GAEzE,OADAyC,EAAEhqB,IAAIuX,EAAEyhK,SAASzxJ,EAAGluB,IACb2wB,CAAP,EA8LgC8xK,CAAIvpJ,EAAK,EAAGqoJ,EAA5C,EC/VF,MAAM/iB,GAAM,mEACNz3K,GAAM,IAAIM,MAAM,KAItB,IAAK,IAAI3H,GAAI,EAAGA,GAAI8+K,GAAI1gL,OAAQ4B,KAC9BqH,GAAIy3K,GAAIl9K,WAAW5B,KAAMA,oCCKpB,MAAMgjM,IFoWc7oL,GC1VpB,SAAsBA,EAAMg4D,GACjC,MAAM/nE,EAAM+nE,EAAI/zE,OAChB,IAAIssB,EAAO,EACP0O,EAAO,EACP3J,GAAO,EAEX,IAAK,IAAIzvB,EAAI,EAAGyvB,EAAMrlB,EAAKpK,IAEzB0qB,EAAOA,GAAQ,EAAIrjB,GAAI8S,EAAKvY,WAAW5B,KAElCo5B,GAAQ,IAAM,IACjB+4C,IAAM1iD,GAAO/E,KAAU0O,GAAQ,GAAK,KAIxC,OAAO+4C,CACR,CC1BmCrqB,CAAartC,GAAAA,MAAO,IAAIP,WAAW6jH,GAAAA,QFoWtC5rD,GEpW+C,IAAIj4D,WAAW8jH,GAAAA,QFqWtFsjE,IAbGvsJ,KACV,GAAmB,IAAP,GAAPA,EAAE,KAAiBA,EAAE,KAAO,EAAI,IAAMA,EAAE,IAAM,EAAIA,EAAE,IAAM,GAAI,KAAM,oBACzE,GAAW,GAAPA,EAAE,GAAS,KAAM,sDAAN,EAWDkuJ,CAAI9oL,IAAOA,GAAK8lK,SAAS,GAAI,IAAK9tG,KAD3C,IAAoBh4D,GAAMg4D,GGxW1B,MAAM+wH,GCAN,SAAsBvgM,EAAMqgM,EAAWG,GAC5C,OAAOC,UACL,MAAMv0L,EAAS,CACb0K,MAAO,KACP1W,KAAM,OACNwgM,KAAM,MAGR,IACE,IAAKL,IAAcA,EAAU5kM,OAC3B,MAAM,IAAIuf,MAAM,8CACX,GAA2B,kBAAhB2lL,aAA+D,oBAA5BA,YAAYC,YAC/D,MAAM,IAAI5lL,MAAM,oDAGlB,MAAM/N,QAAe0zL,YAAYC,YAAYP,EAAW,CACtDQ,QAEF30L,EAAOw0L,KAAOzzL,EAAOiiG,SAASlqE,QAC9B94B,EAAOhM,KAAO,MAUf,CATC,MAAO0W,GAEc,oBAAV4pL,GACTt0L,EAAOw0L,KAAOF,EAAMK,GACpB30L,EAAOhM,KAAO,QAEdgM,EAAO0K,MAAP,qDAA6D5W,EAA7D,cAAuE4W,EAAMK,SAC7ExB,QAAQmB,MAAM1K,EAAO0K,OAExB,CAED,OAAO1K,CAAP,CAEH,CDjCyB40L,CAAa,SAAUT,GAAW,MEA/CrD,GAAS,ICSf,MAYLnrL,YAAY0uL,GAAY,sYACtB,GAAAnlM,KAAA,GAAmBmlM,GACnB,GAAAnlM,KAAA,GAAsB,MACtB,GAAAA,KAAA,GAAsB,MACtB,GAAAA,KAAA,GAAa,IAAI4J,MAAM,IAAIgqB,UAAK9yB,GAAW6J,YAAO7J,EAAW,MAAM,GAAM,IACzE,GAAAd,KAAA,GAAiB,GAAAA,KAAA,IAAWK,QAC5B,GAAAL,KAAA,GAAa,QACb,GAAAA,KAAA,GAAa,MACb,GAAAA,KAAA,GAAkB,MAClB,GAAAA,KAAA,GAAoB,MACpB,GAAAA,KAAA,GAAY,IAAK,IAAI2hM,GAAI3hM,OAE1B,CAIGwb,YACF,OAAO,GAAAxb,KAAP,GACD,CAIG8E,WACF,OAAO,GAAA9E,KAAP,GACD,CAIGslM,WACF,OAAO,GAAAtlM,KAAP,GACD,CAIS,WAACmlM,GACJ,GAAAnlM,KAAD,MAAsBmlM,GACxB,GAAAnlM,KAAA,IAAqBmlM,GAAc,GAAAnlM,KAAJ,KAAX,GAAiCA,KAAjC,MAGtB,MAAM,MACJwb,EADI,KAEJ1W,EAFI,KAGJwgM,SACQ,GAAAtlM,KAAN,IAIJ,OAHA,GAAAA,KAAA,GAAa8E,GACb,GAAA9E,KAAA,GAAaslM,GACb,GAAAtlM,KAAA,GAAkBwb,GACX,GAAAxb,KAAP,GACD,CAOD6hM,UAAUpuC,GACR,OAAO,GAAAzzJ,KAAA,IAAWyzJ,EACnB,CAODkyC,WAAWlyC,GACLA,EAAM,KAIV,GAAAzzJ,KAAA,IAAWyzJ,GAAX,GAAkBzzJ,KAAlB,IACA,GAAAA,KAAA,GAAiByzJ,GAClB,CAOD4uC,WAAW5uC,GACT,MAAMj/H,EAAMx0B,KAAK6hM,UAAUpuC,GAE3B,OADAzzJ,KAAK2lM,WAAWlyC,GACTj/H,CACR,CAODwtK,UAAU1xL,GACJ,GAAAtQ,KAAA,MAAmB,GAAAA,KAAA,IAAWK,QAChC,GAAAL,KAAA,IAAWY,KAAK,GAAAZ,KAAA,IAAWK,OAAS,GAGtC,MAAMozJ,EAAM,GAAAzzJ,KAAH,IAGT,OAFA,GAAAA,KAAA,GAAiB,GAAAA,KAAA,IAAWyzJ,IAC5B,GAAAzzJ,KAAA,IAAWyzJ,GAAOnjJ,EACXmjJ,CACR,CAODmyC,WAKE,OAJ4B,OAAxB,GAAA5lM,KAAA,KAAgC,GAAAA,KAAA,IAAoB2oC,SAAW,GAAA3oC,KAAA,IAAWuV,OAAOozB,QACnF,GAAA3oC,KAAA,GAAsB,IAAI6lM,WAAW,GAAA7lM,KAAA,IAAWuV,OAAOozB,SAGlD,GAAA3oC,KAAP,GACD,CAOD8lM,WAKE,OAJ4B,OAAxB,GAAA9lM,KAAA,KAAgC,GAAAA,KAAA,IAAoB2oC,SAAW,GAAA3oC,KAAA,IAAWuV,OAAOozB,QACnF,GAAA3oC,KAAA,GAAsB,IAAImc,WAAW,GAAAnc,KAAA,IAAWuV,OAAOozB,SAGlD,GAAA3oC,KAAP,GACD,CAODmiM,OAAOL,EAAKz1L,GACV,OAAOrM,KAAK8lM,WAAW5jB,SAAS4f,EAAM,EAAGA,EAAM,EAAIz1L,EACpD,CAOD01L,UAAUD,EAAKz1L,GACb,OAAOm1L,GAAYxhM,KAAKmiM,OAAOL,EAAKz1L,GACrC,CAOD05L,SAAS16L,GACP,MAAMy2L,EAAM,GAAA9hM,KAAA,IAAWgmM,kBAA+B,EAAb36L,EAAIhL,QAG7C,OADAL,KAAK8lM,WAAW58L,IAAImC,EAAKy2L,EAAM,GACxB,CAACA,EAAKz2L,EAAIhL,OAClB,CAOD4lM,YAAY56L,GACV,OAAOrL,KAAK+lM,SAAS/hB,GAAY34K,GAClC,CAOD66L,YACE,MAAMC,EAAKnmM,KAAK4lM,WAAW,GACrBQ,EAAKpmM,KAAK4lM,WAAW,GACrBpxK,EAAMx0B,KAAKmiM,OAAOgE,EAAIC,GAAIniM,QAIhC,OAFA,GAAAjE,KAAA,IAAWqmM,gBAAgBF,EAAS,EAALC,GAExB5xK,CACR,CAOD8xK,eACE,OAAO9E,GAAYxhM,KAAKkmM,YACzB,GDhN8Bf,IEWjC,SAASoB,GAASp7L,GAChB,OAAO,WACL,IAAKy2L,GAAO0D,KACV,MAAM,IAAI1lL,MAAM,iPAFE,2BAAX9J,EAAW,yBAAXA,EAAW,gBAKpB,OAAO3K,EAAGy2L,GAAO0D,QAASxvL,EAC3B,CACF,CAE4BywL,IAAS,CAACjB,EAAM/qK,KAC3C+qK,EAAKkB,mBAAmB,EAAGjsK,GACpBqnK,GAAO0E,kBAEcC,IAAS,CAACjB,EAAMpoK,KAC5CooK,EAAKmB,qBAAqB,KAAM7E,GAAOqE,YAAY/oK,IAC5C0kK,GAAOsE,eAEiBK,IAAS,CAACjB,EAAMpoK,EAAQM,KACvD8nK,EAAKoB,yBAAyB,KAAM9E,GAAOqE,YAAY/oK,MAAY0kK,GAAOqE,YAAYzoK,IAC/EokK,GAAOsE,eAEWK,IAAS,CAACjB,EAAMpoK,EAAQM,KACjD8nK,EAAKqB,kBAAkB,KAAM/E,GAAOqE,YAAY/oK,MAAY0kK,GAAOqE,YAAYzoK,IACxEokK,GAAOsE,eAEaK,IAAS,CAACjB,EAAMpoK,IAE5B,IADHooK,EAAKsB,sBAAsBhF,GAAOqE,YAAY/oK,MAGtBqpK,IAAS,CAACjB,EAAMhoK,KACpDgoK,EAAKuB,iBAAiB,KAAMjF,GAAOmE,SAASzoK,IACrCskK,GAAOsE,eAEWK,IAAS,CAACjB,EAAMwB,EAAQC,EAAQlrL,KACzDypL,EAAK0B,YAAY,KAAMpF,GAAOmE,SAASe,MAAYlF,GAAOmE,SAASgB,MAAYnF,GAAOmE,SAASlqL,IACxF+lL,GAAOsE,eAEaK,IAAS,CAACjB,EAAMziL,EAAWhH,EAASirL,IAEhD,IADHxB,EAAK2B,iBAAiBrF,GAAOmE,SAASljL,MAAe++K,GAAOmE,SAASlqL,MAAa+lL,GAAOmE,SAASe,MAG/EP,IAAS,CAACjB,EAAMyB,KAC/CzB,EAAK4B,mBAAmB,KAAMtF,GAAOmE,SAASgB,IACvCnF,GAAOsE,eAEiBK,IAAS,CAACjB,EAAMwB,KAC/CxB,EAAK6B,sBAAsB,KAAMvF,GAAOmE,SAASe,IAC1ClF,GAAOsE,eAtCT,MAwCMkB,GAAkBb,IAAS,CAACjB,EAAMwB,KAC7CxB,EAAK+B,oBAAoB,KAAMzF,GAAOmE,SAASe,IACxClF,GAAOsE,eA8CHnF,IA5CmBwF,IAAS,CAACjB,EAAMgC,EAAStsL,EAAKusL,KAC5DjC,EAAKkC,iBAAiB,KAAM5F,GAAOmE,SAASuB,MAAa1F,GAAOmE,SAAS/qL,GAAMusL,GACxE3F,GAAOsE,eAEaK,IAAS,CAACjB,EAAMgC,EAASP,KACpDzB,EAAKmC,cAAc,KAAM7F,GAAOmE,SAASuB,MAAa1F,GAAOmE,SAASgB,IAC/DnF,GAAOsE,eAEwBK,IAAS,CAACjB,EAAM5lJ,EAAMuiD,KAC5DqjG,EAAKoC,2BAA2B,KAAM9F,GAAOmE,SAASrmJ,MAAUkiJ,GAAOmE,SAAS9jG,IACzE2/F,GAAOsE,eAEwBK,IAAS,CAACjB,EAAM5lJ,EAAMuiD,KAC5DqjG,EAAKqC,2BAA2B,KAAM/F,GAAOmE,SAASrmJ,MAAUkiJ,GAAOmE,SAAS9jG,IACzE2/F,GAAOsE,eAEuBK,IAAS,CAACjB,EAAMwB,EAAQ7kG,KAC7DqjG,EAAKsC,0BAA0B,KAAMhG,GAAOmE,SAASe,MAAYlF,GAAOmE,SAAS9jG,IAC1E2/F,GAAOsE,eAEsBK,IAAS,CAACjB,EAAMhoK,KACpDgoK,EAAKuC,iBAAiB,KAAMjG,GAAOmE,SAASzoK,IACrCskK,GAAOsE,eAEWK,IAAS,CAACjB,EAAMwB,EAAQgB,EAAQjsL,KACzDypL,EAAKyC,YAAY,KAAMnG,GAAOmE,SAASe,MAAYlF,GAAOmE,SAAS+B,MAAYlG,GAAOmE,SAASlqL,IACxF+lL,GAAOsE,eAEaK,IAAS,CAACjB,EAAMziL,EAAWhH,EAASirL,IAEhD,IADHxB,EAAK0C,iBAAiBpG,GAAOmE,SAASljL,MAAe++K,GAAOmE,SAASlqL,MAAa+lL,GAAOmE,SAASe,MAGpFP,IAAS,CAACjB,EAAMwB,EAAQgB,KAClDxC,EAAK2C,aAAa,KAAMrG,GAAOmE,SAASe,MAAYlF,GAAOmE,SAAS+B,IAC7DlG,GAAOsE,eAEOK,IAAS,CAACjB,EAAMwC,EAAQr8H,EAAS5vD,EAASqsL,KAC/D5C,EAAK6C,aAAa,KAAMvG,GAAOmE,SAAS+B,MAAYlG,GAAOmE,SAASt6H,MAAam2H,GAAOmE,SAASlqL,MAAa+lL,GAAOmE,SAASmC,IACvHtG,GAAOsE,eAESK,IAAS,CAACjB,EAAMwB,EAAQr7H,EAAS5vD,EAASqsL,EAAOE,IAEzD,IADH9C,EAAK+C,kBAAkBzG,GAAOmE,SAASe,MAAYlF,GAAOmE,SAASt6H,MAAam2H,GAAOmE,SAASlqL,MAAa+lL,GAAOmE,SAASmC,MAAWtG,GAAOmE,SAASqC,MAG/I7B,IAAS,CAACjB,EAAMlpL,EAAMlb,EAAKiH,KAChDm9L,EAAKgD,YAAY,KAAM1G,GAAOmE,SAAS3pL,MAAUwlL,GAAOmE,SAAS7kM,GAAMiH,GAChEy5L,GAAOsE,gBAUHpgL,IARaygL,IAAS,CAACjB,EAAMpkM,EAAKkb,KAC7CkpL,EAAKiD,gBAAgB,KAAM3G,GAAOmE,SAAS7kM,MAAS0gM,GAAOmE,SAAS3pL,IAC7DwlL,GAAOsE,eAEUK,IAAS,CAACjB,EAAMpkM,EAAKkb,KAC7CkpL,EAAKkD,gBAAgB,KAAM5G,GAAOmE,SAAS7kM,MAAS0gM,GAAOmE,SAAS3pL,IAC7DwlL,GAAOsE,eAESK,IAAS,CAACjB,EAAMlpL,KACvCkpL,EAAKmD,cAAc,KAAM7G,GAAOmE,SAAS3pL,IAClCwlL,GAAOsE,gBAEHwC,GAAYnC,IAAS,CAACjB,EAAMlpL,KACvCkpL,EAAKqD,cAAc,KAAM/G,GAAOmE,SAAS3pL,IAClCwlL,GAAOsE,eAkBH0C,IAhBSrC,IAAS,CAACjB,EAAMlpL,EAAMuP,EAAMgjD,KAChD22H,EAAKuD,WAAW,KAAMjH,GAAOmE,SAAS3pL,MAAUwlL,GAAOmE,SAASp6K,GAAOgjD,GAChEizH,GAAOsE,eAEMK,IAAS,CAACjB,EAAM9nK,EAAU7R,EAAMm9K,EAAOt4K,EAAGkR,KAC9D4jK,EAAKyD,WAAW,KAAMnH,GAAOmE,SAASvoK,MAAcokK,GAAOmE,SAASp6K,GAAOm9K,EAAOt4K,EAAGkR,GAC9EkgK,GAAOsE,eAEMK,IAAS,CAACjB,EAAMlpL,KACpCkpL,EAAK0D,WAAW,KAAMpH,GAAOmE,SAAS3pL,IAC/BwlL,GAAOsE,eAEMK,IAAS,CAACjB,EAAMlpL,KACpCkpL,EAAK2D,WAAW,KAAMrH,GAAOmE,SAAS3pL,IAC/BwlL,GAAOsE,eAEIK,IAAS,CAACjB,EAAMlpL,EAAMuyD,KACxC22H,EAAK4D,SAAS,KAAMtH,GAAOmE,SAAS3pL,GAAOuyD,GACpCizH,GAAOsE,gBAET,SAASiD,KACd,QAASvH,GAAO0D,IACjB,CACMD,eAAe+D,KACpB,IACE,MAAM9D,QFnJHD,eAA0BF,GAC/B,OAAOvD,GAAO/H,KAAKsL,EACpB,CEiJsBkE,GACnB,QAAS/D,CAGV,CAFC,MACA,OAAO,CACR,CACF,CCxKD,MAAMpnB,GAAK,IAAIt0K,MAAM,KACfu0K,GAAM,IAAIv0K,MAAM,OAEtB,IAAK,IAAIspB,GAAI,EAAGA,GAAI,IAAKA,KACvBgrJ,GAAGhrJ,IAAKA,GAAE5mB,SAAS,IAAI61K,SAAS,EAAG,KAGrC,IAAK,IAAIlgL,GAAI,EAAGA,GAAI,IAAKA,KAAK,CAC5B,MAAMwuB,EAAIxuB,IAAK,EAEf,IAAK,IAAImG,EAAI,EAAGA,EAAI,IAAKA,IACvB+1K,GAAI1tJ,EAAIroB,GAAK81K,GAAGj8K,IAAKi8K,GAAG91K,EAE3B,CAID,SAASklB,GAAIlqB,EAAO0N,GAClB,MAAMid,EAAM3qB,EAAM/C,OAAS,EAAI,EACzBA,EAAS+C,EAAM/C,OAAS0tB,EAAM,EAEpC,IAAK,IAAI9rB,EAAI,EAAGA,EAAI5B,EAAQ4B,GAAK,EAC/B6O,GAAUqtK,GAAI/6K,EAAMnB,IAAM,EAAImB,EAAMnB,EAAI,IAO1C,OAJI8rB,IACFjd,GAAUotK,GAAmB,EAAhB96K,EAAM/C,KAGdyQ,CACR,CAiBM,SAASw4L,GAASlmM,GAA0C,IAAnCqnC,EAAmC,wDAAtB,EAAG8+J,IAAmB,yDAEjE,MAAM1uD,EAAQ0uD,EAAa,KAAO,GAElC,IAAKnmM,IAAUA,EAAM/C,OACnB,OAAOw6I,EACF,GAAIpwG,EAAY,EAAG,CACxB,MAAMpqC,EAASwC,KAAK8a,KAAK8sB,EAAY,GAErC,GAAIrnC,EAAM/C,OAASA,EACjB,MAAO,GAAP,OAAUitB,GAAIlqB,EAAM8+K,SAAS,EAAG7hL,EAAS,GAAIw6I,GAA7C,iBAAuDvtH,GAAIlqB,EAAM8+K,SAAS9+K,EAAM/C,OAASA,EAAS,GAAI,IAEzG,CAED,OAAOitB,GAAIlqB,EAAOy3I,EACnB,CC1DM,SAAS2uD,GAAYr+L,GAC1B,OAAO,kBAAam+L,GAASn+L,KAAM,WAA5B,CACR,CAGM,SAASs+L,GAAgBh/J,EAAWt/B,GACzC,MAAO,CAACiR,EAAMstL,IAAWv+L,EAAGiR,EAAMquB,EAAWi/J,EAC9C,CCQM,SAASC,GAAYvtL,GAAoC,IAA9BquB,EAA8B,uDAAlB,IAAKvpC,EAAa,uCAARwoM,EAAQ,uCAC9D,MAAMv6J,EAAatsC,KAAK8a,KAAK8sB,EAAY,GACnCs5I,EAAME,GAAS7nK,GACrB,OAAQqnK,KAAcimB,GAAUP,KAAYpI,GAAQhd,EAAKE,GAAS/iL,GAAMiuC,GAAcy6J,GAAU7lB,EAAK,CACnG5iJ,MAAOgO,EACPjuC,IAAKA,QAAOJ,GAEf,CAMM,MAAM+oM,GAAcL,GAAYG,IC9BjCG,GAAc9lB,GAAY,WACzB,SAAS+lB,GAAO7oM,GACrB,OAAOyoM,GAAYlO,GAAUqO,GAAa5oM,GAAM,IACjD,CCJM,SAAS8oM,GAAqB9gK,GACnC,MAAM+gK,EAA0B,GAAb/gK,EAAQ,GAAkB,EAAI,EAC3CghK,EAA6B,IAAfD,EAAmB/gK,EAAQ,IAAmB,GAAbA,EAAQ,KAAoB,EAAIA,EAAQ,IAAM,GAAkB,GAAbA,EAAQ,KAAoB,EAE9HihK,EAAc,CAAC,GAAKF,EAAY,GAAKA,GAAY/uG,SAAShyD,EAAQ7oC,QAClEA,EAAS6oC,EAAQ7oC,QAAU8pM,EAAc,EAAI,GAE7CpjM,EAAOgjM,GAAO7gK,EAAQg5I,SAAS,EAAG7hL,IAExC,MAAO,CADuC,KAAhB,IAAb6oC,EAAQ,MAA2B,CAAC,GAAI,IAAIgyD,SAAShyD,EAAQ,MAAQihK,EAAcjhK,EAAQA,EAAQ7oC,OAAS,KAAO0G,EAAK,IAAMmiC,EAAQA,EAAQ7oC,OAAS,KAAO0G,EAAK,GAAKmiC,EAAQA,EAAQ7oC,OAAS,KAAO0G,EAAK,IAC7M1G,EAAQ4pM,EAAYC,EACtC,CCVM,MAAME,GAAW,CACtBC,sBAAuB,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,IAExCC,sBAAuB,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IACjDC,cAAeltB,GAAkB/zK,KAAI,QAAC,OACpCxC,GADmC,SAE/BA,CAF+B,IAGrCA,OAAQ,ICHH,SAAS0jM,GAAcC,EAASC,GAAiC,IAAjBC,EAAiB,wDAAH,EACnE,IAAKF,EACH,MAAM,IAAI7qL,MAAM,gCAGlB,GAAIkkK,GAAM2mB,IAAYt1B,GAAMs1B,GAC1B,OAAOxmB,GAASwmB,GAGlB,IACE,MAAMvhK,EAAU2yJ,GAAa4O,GAE7B,IAAKL,GAASE,sBAAsBpvG,SAAShyD,EAAQ7oC,QACnD,MAAM,IAAIuf,MAAM,kCAGlB,MAAO83K,EAASkT,EAAQX,EAAYC,GAAeF,GAAqB9gK,GAExE,IAAKwuJ,IAAYgT,EACf,MAAM,IAAI9qL,MAAM,oCACX,IAAoB,IAAhB+qL,GAAqBA,IAAeT,EAC7C,MAAM,IAAItqL,MAAJ,8BAAiC+qL,EAAjC,sBAAyDT,IAGjE,OAAOhhK,EAAQjlC,MAAMgmM,EAAYW,EAGlC,CAFC,MAAOpvL,GACP,MAAM,IAAIoE,MAAJ,mBAAsB6qL,EAAtB,aAAkCjvL,EAAMK,SAC/C,CACF,CC3BM,SAASgvL,GAAc3pM,GAAmC,IAA9BypM,EAA8B,uDAAjBP,GAAStjM,OAEvD,MAAMi9K,EAAMymB,GAActpM,GAE1B,GAAIypM,EAAa,GAAKA,EAAa,OAAS,CAAC,GAAI,IAAIzvG,SAASyvG,GAC5D,MAAM,IAAI/qL,MAAM,qCACX,IAAKwqL,GAASC,sBAAsBnvG,SAAS6oF,EAAI1jL,QACtD,MAAM,IAAIuf,MAAJ,uDAA0DwqL,GAASC,sBAAsBxjM,KAAK,QAGtG,MAAM0S,EAAQkiL,GAAUkP,EAAa,GAAK,CAACA,GAAc,EAAe,IAAbA,IAAoC,EAAI,GAAYA,GAAc,GAAkB,EAAbA,IAAoC,GAAI5mB,GAC1K,OAAO+X,GAAaL,GAAUliL,EAAOwwL,GAAOxwL,GAAO2oK,SAAS,EAAG,CAAC,GAAI,IAAIhnF,SAAS6oF,EAAI1jL,QAAU,EAAI,IACpG,CClBM,SAASyqM,GAAqBC,GACnC,OAAO,IAAInhL,SAAQE,IACW,aAAxBpoB,SAASspM,WACXlhL,EAAQihL,KAERziK,OAAOkzB,iBAAiB,QAAQ,IAAM1xC,EAAQihL,MAC/C,GAEJ,CCDD,MAAME,GAAM3iK,OAIZ,SAAS4iK,KACP,OAAgD,IAAzChoM,OAAOihB,KAAK8mL,GAAIE,cAAc9qM,MACtC,CAGD,SAASsW,GAAW8O,GAClB,MAAM,IAAI7F,MAAJ,UAAa6F,EAAb,8DAAyEA,GAChF,CAGD,SAAS2lL,GAAYv5L,EAAQk1J,EAAM4jC,GACjC,OAAO5jC,EAAKz9J,KAAI,QAAC,QACfoa,EADe,YAEfi6J,EAFe,KAGf1yK,EAHe,KAIfnG,GAJc,QAKT,CACL4e,QAA4B,KAAnBA,EAAQrjB,OAAgBqjB,EAAUmnL,GAAcL,GAAc9mL,GAAUinL,GACjF1rG,KAAM,CACJ0+E,cACA1yK,OACA4G,UAEF/M,OAZc,GAcjB,CA3BDmmM,GAAIE,aAAeF,GAAIE,cAAgB,CAAC,EA8BxC,IAAIE,GAAiBH,KAEjBI,GAAoB,KAGxB,SAASC,GAAoBC,GAC3B,OAAO5hL,QAAQC,IAAI3mB,OAAOq+D,QAAQ0pI,GAAIE,cAAc7hM,KAAI,QAAE2B,GAAM,OAC9DwgM,EAD8D,QAE9Dx2L,IAFsD,SAGjD2U,QAAQC,IAAI,CAACD,QAAQE,QAAQ,CAClC7e,OACAgK,YACEw2L,EAAOD,GAAY5jL,OAAMpM,IAC3BnB,QAAQmB,MAAR,6BAAoCvQ,EAApC,aAA6CuQ,EAAMK,SAAnD,KAPsD,IASzD,CA8GMwpL,eAAeqG,GAAe75L,GACnC,IAAKy5L,GACH,OAAO30L,GAAW,kBAGpB,MAAMg1L,QAAgBL,GAChBzyK,EAAQhnB,GAAU85L,EAAQl1K,MAAK,QAAC,KACpCxrB,GADmC,SAE/BA,IAAS4G,CAFsB,IAIrC,IAAKgnB,EACH,MAAM,IAAIjZ,MAAJ,qDAAwD/N,IAGhE,OAAOgnB,CACR,CAEMwsK,eAAeuG,GAAgBloL,GACpC,IAAK4nL,GACH,OAAO30L,GAAW,mBAGpB,MAAMk1L,QAlGDxG,iBAIC,IAJ2B,YACjCyG,EADiC,WAEjCC,EAFiC,WAGjCpB,GACM,uDAAJ,CAAC,EACH,IAAKW,GACH,OAAO30L,GAAW,gBAGpB,MAAMk1L,EAAW,GACXG,QAAiBV,GACjBW,QAAkBriL,QAAQC,IAAImiL,EAAS5oL,QAAO,QAClDnY,KAAM4G,GAD4C,SAE7Ck6L,GAAcA,EAAW7wG,SAASrpF,EAFW,IAEFvI,KAAI+7L,UAGhD,IAHuD,SAC3DwG,EACA5gM,KAAM4G,GACF,EACJ,IAEE,OAAOu5L,GAAYv5L,SADAg6L,EAAS5iM,OACIma,QAAO,QAAC,KACtCte,GADqC,SAEjCA,IAAQgnM,GAAcA,EAAY5wG,SAASp2F,EAFV,IAEyB6lM,EAIjE,CAHC,MAAOnvL,GAEP,MAAO,EACR,MAEHywL,EAAU1qM,SAAQuP,IAChB+6L,EAASjrM,QAAQkQ,EAAjB,IAEF,MAAMo7L,EAAYL,EAASviM,KAAI,QAAC,QAC9Boa,GAD6B,SAEzBA,CAFyB,IAI/B,OADArJ,QAAQC,IAAR,8BAAmCuxL,EAASxrM,OAA5C,mBAAiF,IAApBwrM,EAASxrM,OAAe,KAAO,GAA5F,aAAmG6rM,EAAUrlM,KAAK,QAC3GglM,CACR,CA+DwBM,GACvB,IAAItzK,EAEJ,GAAInV,EAAS,CACX,MAAM0oL,EAAa5B,GAAc9mL,GACjCmV,EAAQgzK,EAASp1K,MAAKoJ,GAAWs7J,GAAMqP,GAAc3qK,EAAQnc,SAAU0oL,IACxE,CAED,IAAKvzK,EACH,MAAM,IAAIjZ,MAAJ,mDAAsD8D,IAG9D,OAAOgoL,GAAe7yK,EAAMomE,KAAKptF,OAClC,+DC/KM,MA8BMw6L,GAAkBhH,UAC7B,MAAM0G,QDED,SAAoBP,GAA8B,IAAlBc,EAAkB,uDAAJ,GACnD,IAAKd,EACH,MAAM,IAAI5rL,MAAM,gEAGlB,MAAM2sL,EAAaD,EAAYjsM,OAASupB,QAAQC,IAAIyiL,EAAYhjM,KAAI2O,GAAKA,IAAI2P,OAAM,KAAM,OAAWgC,QAAQE,QAAQ,EAAC,IAuBrH,OAtBAwhL,GAAoBR,IAAqB,IAAMyB,EAAWxiL,MAAK,IAAMwhL,GAAoBC,GAAYzhL,MAAKnL,GAAUA,EAAOwE,QAAOhgB,KAAWA,EAAM,KAAIkG,KAAI,IAAiB,IAAfy6B,EAAMyoK,GAAS,EAU1K,OARKA,EAAIX,SAASvuD,YAChBkvD,EAAIX,SAASvuD,UAAY7gD,IACvB+vG,EAAIX,SAAS5iM,MAAM8gB,KAAK0yE,GAAI70E,MAAMvN,QAAQmB,OACnC,SAKJ,IAAKuoB,KACPyoK,EADL,MAGE5kL,OAAM,IAAM,KAAImC,MAAKnL,IACvB,MAAMonC,EAAQpnC,EAAOtV,KAAI,QAAC,KACxB2B,EADwB,QAExBgK,GAFuB,kBAGhBhK,EAHgB,YAGRgK,EAHQ,IAMzB,OAFAo2L,GAAiBH,KACjB7wL,QAAQC,IAAR,8BAAmCsE,EAAOve,OAA1C,qBAA+E,IAAlBue,EAAOve,OAAe,IAAM,GAAzF,aAAgG2lD,EAAMn/C,KAAK,QACpG+X,CAAP,QAEK0sL,EACR,CC/B0BmB,CAAW,yBAEpC,OAAOV,EAAWt1K,MAAM+1K,GAAqB,gBAAbA,EAAIvhM,MAApC,EAGWyhM,GAA6BrH,MACxC5oG,EACAkuG,ID8DKtF,eAAqC5oG,GAGpC,IAHwC,WAC9CsvG,EAD8C,WAE9CpB,GACM,uDAAJ,CAAC,EACH,IAAKW,GACH,OAAO30L,GAAW,yBAGpB,MAAMk1L,EAAW,CAAC,EAEZc,EAAgB,IAAMlwG,EAAGv5F,OAAOq+D,QAAQsqI,GAAUlsL,QAAO,CAAC7O,EAAD,KAA4B,IAAlBe,EAAQk1J,GAAU,EAEzF,OADAj2J,EAAOlQ,QAAQwqM,GAAYv5L,EAAQk1J,EAAM4jC,IAClC75L,CAAP,GACC,KAEG87L,SAAgBtB,IAAmBloL,QAAO,QAC9CnY,KAAM4G,GADwC,SAEzCk6L,GAAcA,EAAW7wG,SAASrpF,EAFO,IAEEvI,KAAI,QACpDuiM,UAAU,UACRvuD,GAEFryI,KAAM4G,GAJ8C,SAKhDyrI,GAAUxsI,IACd+6L,EAASh6L,GAAUf,EAEnB,IACE,IAAI+7L,EAEmC,QAAtCA,EAAiBF,WAAgD,IAAnBE,GAAqCA,EAAejlL,MAAMvN,QAAQmB,MAGlH,CAFC,MAAOA,GACPnB,QAAQmB,MAAMA,EACf,IAdmD,IAgBtD,MAAO,KACLoxL,EAAOrrM,SAAQurM,IACbA,GAAO,GADT,CAIH,CCnGIC,CAAsBtwG,EAAI,CAAEkuG,eChDpBqC,IAAmBzhM,EAAAA,EAAAA,eAA8B,MAqC9D,GA/B2DxG,IACzD,MAAM,SAAEC,EAAF,WAAY2lM,EAAZ,cAAwBsC,GAAkBloM,GACzCmoM,EAAmBC,IAAwB/pF,EAAAA,EAAAA,UAEhD,KAEFN,EAAAA,EAAAA,YAAU,KACR,IAAIgqF,EAAoB,OAQxB,OANAJ,IAA2BrH,UACzB8H,EAAqBtB,EAArB,GACClB,GAAY5gL,MAAMqjL,IACnBN,EAAQM,CAAR,IAGK,IAAMN,GAAb,GACC,CAACnC,IAEJ,MAAM0C,GAAiBpqF,EAAAA,EAAAA,UACrB,MACEiqF,oBACAD,mBAEF,CAACC,EAAmBD,IAGtB,OACE,SAACD,GAAiBrhM,SAAlB,CAA2BvI,MAAOiqM,EAAgBroM,SAAUA,GAD9D,ECjDK,IAAM6lL,GAAe,SAAIviL,GAA8B,OAAAA,GAAyB,kBAAbA,EAAEjI,QAAoC,oBAANiI,CAAgB,ECMpH,SAAUooL,GAAUttL,GACxB,OAAOs2H,GAAgB,OAALt2H,QAAK,IAALA,OAAK,EAALA,EAAO2mB,KAC1B,CCHK,SAAUujL,GAAoB/zL,GAClC,OAAOmgH,GAAWngH,EAAMwkI,IACzB,CCLK,SAAUwvD,GAAmBj9L,GACjC,OAAO0jE,OAAO2rD,eAAiBjG,GAAc,OAAHppH,QAAG,IAAHA,OAAG,EAAHA,EAAM0jE,OAAO2rD,eACxD,CCAK,SAAU6tE,GAAiCj0L,GAE/C,OAAO,IAAImT,UACT,iBACY,OAAVnT,GAAmC,kBAAVA,EAAqB,oBAAsB,IAAIA,EAAK,KAAG,2HAGrF,CCHM,IAAMkhF,GAPW,oBAAXzmB,QAA0BA,OAAOymB,SAIrCzmB,OAAOymB,SAHL,aCEL,SAAUgzG,GAAWl0L,GACzB,OAAOmgH,GAAgB,OAALngH,QAAK,IAALA,OAAK,EAALA,EAAQm0L,IAC3B,CCHK,SAAiBC,GAAsCC,iHACrDvvL,EAASuvL,EAAeC,qEAGF,mBAAMxvL,EAAOyW,uBAA/B4B,EAAkBwsD,EAAAA,OAAhB9/E,EAAK,QAAM,6BACfkoD,CAAAA,EAAAA,UACF,6CAEIloD,WAAN,iCAAA8/E,EAAAA,+CAGF7kE,EAAOyvL,0CAEV,CAEK,SAAUC,GAAwBz9L,GAGtC,OAAOopH,GAAc,OAAHppH,QAAG,IAAHA,OAAG,EAAHA,EAAKu9L,UACxB,CCPK,SAAUG,GAAaz0L,GAC3B,GAAIA,aAAiBikI,GACnB,OAAOjkI,EAET,GAAa,MAATA,EAAe,CACjB,GAAI+zL,GAAoB/zL,GACtB,OA0BmCjJ,EA1BNiJ,EA2B1B,IAAIikI,IAAW,SAACP,GACrB,IAAMgxD,EAAM39L,EAAIytI,MAChB,GAAIrkB,GAAWu0E,EAAI3wD,WACjB,OAAO2wD,EAAI3wD,UAAUL,GAGvB,MAAM,IAAIvwH,UAAU,iEACrB,IAhCC,GAAIm+J,GAAYtxK,GACd,OAyC2BlV,EAzCNkV,EA0ClB,IAAIikI,IAAW,SAACP,GAUrB,IAAK,IAAIh7I,EAAI,EAAGA,EAAIoC,EAAMhE,SAAW48I,EAAWjD,OAAQ/3I,IACtDg7I,EAAW73I,KAAKf,EAAMpC,IAExBg7I,EAAWf,UACZ,IAtDC,GAAIw0C,GAAUn3K,GACZ,OAwDyB+wC,EAxDN/wC,EAyDhB,IAAIikI,IAAW,SAACP,GACrB3yF,EACGvgC,MACC,SAAC3mB,GACM65I,EAAWjD,SACdiD,EAAW73I,KAAKhC,GAChB65I,EAAWf,WAEd,IACD,SAACpmH,GAAa,OAAAmnH,EAAWzhI,MAAMsa,EAAI,IAEpC/L,KAAK,KAAM0xH,GACf,IAnEC,GAAI8xD,GAAgBh0L,GAClB,OAAO20L,GAAkB30L,GAE3B,GAAIk0L,GAAWl0L,GACb,OAkE0B40L,EAlEN50L,EAmEjB,IAAIikI,IAAW,SAACP,eACrB,IAAoB,gBAAAkxD,GAAQC,EAAAA,EAAAA,QAAA,OAAAA,EAAAA,EAAAA,OAAE,CAAzB,IAAMhrM,EAAK,QAEd,GADA65I,EAAW73I,KAAKhC,GACZ65I,EAAWjD,OACb,MAEH,mGACDiD,EAAWf,UACZ,IAzEC,GAAI6xD,GAAqBx0L,GACvB,OAkFG20L,GAAkBP,GAlFSp0L,GAEjC,CA+EG,IAlB0B40L,EAhBD7jJ,EAlBEjmD,EAlBQiM,EAPvC,MAAMk9L,GAAiCj0L,EACxC,CAsEK,SAAU20L,GAAqBG,GACnC,OAAO,IAAI7wD,IAAW,SAACP,IASzB,SAA0BoxD,EAAiCpxD,uJAC/BqxD,GAAAA,EAAAA,GAAAA,IAAAA,+EAIxB,GAJelrM,EAAK,QACpB65I,EAAW73I,KAAKhC,GAGZ65I,EAAWjD,OACb,4SAGJiD,EAAWf,qBACZ,EAlBG15I,CAAQ6rM,EAAepxD,GAAYr1H,OAAM,SAACkO,GAAQ,OAAAmnH,EAAWzhI,MAAMsa,EAAI,GACxE,GACF,CCjGK,SAAUy4K,GACdC,EACAC,EACAC,EACAl2I,EACA+zC,QADA,IAAA/zC,IAAAA,EAAQ,QACR,IAAA+zC,IAAAA,GAAS,GAET,IAAMoiG,EAAuBF,EAAUG,UAAS,WAC9CF,IACIniG,EACFiiG,EAAmBxtL,IAAIhhB,KAAK4uM,SAAS,KAAMp2I,IAE3Cx4D,KAAKi7I,aAER,GAAEziF,GAIH,GAFAg2I,EAAmBxtL,IAAI2tL,IAElBpiG,EAKH,OAAOoiG,CAEV,CCeK,SAAUE,GAAaJ,EAA0Bj2I,GACrD,YADqD,IAAAA,IAAAA,EAAQ,GACtDohI,IAAQ,SAAC/nL,EAAQorI,GACtBprI,EAAOyrI,UACLy8C,GACE98C,GACA,SAAC75I,GAAU,OAAAmrM,GAAgBtxD,EAAYwxD,GAAW,WAAM,OAAAxxD,EAAW73I,KAAKhC,EAAM,GAAEo1D,EAAM,IACtF,WAAM,OAAA+1I,GAAgBtxD,EAAYwxD,GAAW,WAAM,OAAAxxD,EAAWf,UAAU,GAAE1jF,EAAM,IAChF,SAAC1iC,GAAQ,OAAAy4K,GAAgBtxD,EAAYwxD,GAAW,WAAM,OAAAxxD,EAAWzhI,MAAMsa,EAAI,GAAE0iC,EAAM,IAGxF,GACF,CCPK,SAAUs2I,GAAeL,EAA0Bj2I,GACvD,YADuD,IAAAA,IAAAA,EAAAA,GAChDohI,IAAQ,SAAC/nL,EAAQorI,GACtBA,EAAWj8H,IAAIytL,EAAUG,UAAS,WAAM,OAAA/8L,EAAOyrI,UAAUL,EAAW,GAAEzkF,GACvE,GACF,CC9DK,SAAUu2I,GAAyBx1L,EAAyBk1L,GAChE,IAAKl1L,EACH,MAAM,IAAIqG,MAAM,2BAElB,OAAO,IAAI49H,IAAc,SAACP,GACxBsxD,GAAgBtxD,EAAYwxD,GAAW,WACrC,IAAMh0G,EAAWlhF,EAAMy6D,OAAO2rD,iBAC9B4uE,GACEtxD,EACAwxD,GACA,WACEh0G,EAASr1F,OAAO2kB,MAAK,SAACjZ,GAChBA,EAAOw6C,KAGT2xF,EAAWf,WAEXe,EAAW73I,KAAK0L,EAAO1N,MAE1B,GACF,GACD,GACA,EAEH,GACF,GACF,CCHK,SAAU4rM,GAAaz1L,EAA2Bk1L,GACtD,GAAa,MAATl1L,EAAe,CACjB,GAAI+zL,GAAoB/zL,GACtB,OCzBA,SAAgCA,EAA6Bk1L,GACjE,OAAOT,GAAUz0L,GAAO01L,KAAKH,GAAYL,GAAYI,GAAUJ,GAChE,CDuBYS,CAAmB31L,EAAOk1L,GAEnC,GAAI5jB,GAAYtxK,GACd,OE9BA,SAA2BA,EAAqBk1L,GACpD,OAAO,IAAIjxD,IAAc,SAACP,GAExB,IAAIh7I,EAAI,EAER,OAAOwsM,EAAUG,UAAS,WACpB3sM,IAAMsX,EAAMlZ,OAGd48I,EAAWf,YAIXe,EAAW73I,KAAKmU,EAAMtX,MAIjBg7I,EAAWjD,QACdh6I,KAAK4uM,WAGV,GACF,GACF,CFOYO,CAAc51L,EAAOk1L,GAE9B,GAAI/d,GAAUn3K,GACZ,OG/BA,SAA6BA,EAAuBk1L,GACxD,OAAOT,GAAUz0L,GAAO01L,KAAKH,GAAYL,GAAYI,GAAUJ,GAChE,CH6BYW,CAAgB71L,EAAOk1L,GAEhC,GAAIlB,GAAgBh0L,GAClB,OAAOw1L,GAAsBx1L,EAAOk1L,GAEtC,GAAIhB,GAAWl0L,GACb,OI/BA,SAA8BA,EAAoBk1L,GACtD,OAAO,IAAIjxD,IAAc,SAACP,GACxB,IAAIxiD,EA4CJ,OAvCA8zG,GAAgBtxD,EAAYwxD,GAAW,WAErCh0G,EAAYlhF,EAAcm0L,MAE1Ba,GACEtxD,EACAwxD,GACA,iBACMrrM,EACAkoD,EACJ,IAEKloD,GAAFszB,EAAkB+jE,EAASr1F,QAApB,MAAEkmD,EAAI,MAKf,CAJC,MAAOx1B,GAGP,YADAmnH,EAAWzhI,MAAMsa,EAElB,CAEGw1B,EAKF2xF,EAAWf,WAGXe,EAAW73I,KAAKhC,EAEnB,GACD,GACA,EAEH,IAMM,WAAM,OAAAs2H,GAAmB,OAARj/B,QAAQ,IAARA,OAAQ,EAARA,EAAUx1F,SAAWw1F,EAASx1F,QAAQ,CAC/D,GACF,CJjBYoqM,CAAiB91L,EAAOk1L,GAEjC,GAAIV,GAAqBx0L,GACvB,OKxCA,SAAwCA,EAA8Bk1L,GAC1E,OAAOM,GAAsBpB,GAAmCp0L,GAAQk1L,EACzE,CLsCYa,CAA2B/1L,EAAOk1L,EAE5C,CACD,MAAMjB,GAAiCj0L,EACxC,CMoDK,SAAUzW,GAAQyW,EAA2Bk1L,GACjD,OAAOA,EAAYO,GAAUz1L,EAAOk1L,GAAaT,GAAUz0L,EAC5D,CClBK,SAAUg2L,GACdC,EACAC,GAEA,OAAO7V,IAAQ,SAAC/nL,EAAQorI,GACtB,IAAIyyD,EAAyD,KACzD9rM,EAAQ,EAER+rM,GAAa,EAIXC,EAAgB,WAAM,OAAAD,IAAeD,GAAmBzyD,EAAWf,UAAU,EAEnFrqI,EAAOyrI,UACLy8C,GACE98C,GACA,SAAC75I,GAEgB,OAAfssM,QAAe,IAAfA,GAAAA,EAAiBz0D,cACjB,IAAI40D,EAAa,EACXC,EAAalsM,IAEnBoqM,GAAUwB,EAAQpsM,EAAO0sM,IAAaxyD,UACnCoyD,EAAkB3V,GACjB98C,GAIA,SAAC8yD,GAAe,OAAA9yD,EAAW73I,KAAKqqM,EAAiBA,EAAersM,EAAO2sM,EAAYD,EAAYD,KAAgBE,EAAW,IAC1H,WAIEL,EAAkB,KAClBE,GACD,IAGN,IACD,WACED,GAAa,EACbC,GACD,IAGN,GACF,CC1BK,SAAUI,GACdplM,GAEA,OAAOgvL,IAAQ,SAAC/nL,EAAQorI,GACtB,IAEIgzD,EAFAC,EAAgC,KAChCC,GAAY,EAGhBD,EAAWr+L,EAAOyrI,UAChBy8C,GAAyB98C,OAAYn8I,OAAWA,GAAW,SAACg1B,GAC1Dm6K,EAAgBjC,GAAUpjM,EAASkrB,EAAKk6K,GAAWplM,EAAXolM,CAAqBn+L,KACzDq+L,GACFA,EAASj1D,cACTi1D,EAAW,KACXD,EAAc3yD,UAAUL,IAIxBkzD,GAAY,CAEf,KAGCA,IAMFD,EAASj1D,cACTi1D,EAAW,KACXD,EAAe3yD,UAAUL,GAE5B,GACF,CCpHM,IAAMmzD,GAA6B32D,IAAiB,SAACI,GAAW,kBACrEA,EAAO75I,MACPA,KAAKiL,KAAO,aACZjL,KAAK6b,QAAU,yBAChB,KC2BK,SAAUw0L,GAAqBx+L,EAAuB4/E,GAC1D,IAAM6+G,EAA8B,kBAAX7+G,EACzB,OAAO,IAAI7nE,SAAe,SAACE,EAASkW,GAClC,IAAMi9G,EAAa,IAAId,GAAkB,CACvC/2I,KAAM,SAAChC,GACL0mB,EAAQ1mB,GACR65I,EAAWhC,aACZ,EACDz/H,MAAOwkB,EACPk8G,SAAU,WACJo0D,EACFxmL,EAAQ2nE,EAAQxzE,cAEhB+hB,EAAO,IAAIowK,GAEd,IAEHv+L,EAAOyrI,UAAUL,EAClB,GACF,CC/DM,MCFCrxE,QAAF,GAAWG,aAAX,KAA4BxgE,EAAAA,GAAAA,eAAqB,CACrDrL,IAAK,SACLkc,KAAM,CAAC,IAGIm0L,GAAsB3kI,GACtB4kI,GAAoBzkI,GAEpB0kI,IAAgCzhD,EAAAA,GAAAA,uBAC3CpjF,GACA,UCRMA,QAAF,GAAWE,eAAX,KAA8BvgE,EAAAA,GAAAA,eAAqB,CACvDrL,IAAK,SACLkc,KAAM,CAAC,IAGIs0L,GAAqB9kI,GACrB+kI,GAAmB7kI,GAEnB8kI,IAAiB5hD,EAAAA,GAAAA,uBAC5B0hD,GACA,SCgBF,GAxByD3rM,IACvD,MAAM,SAAEC,EAAF,gBAAYutK,EAAZ,UAA6Bs+B,GAAc9rM,GAC1C3B,EAAOw2D,IAAYwpD,EAAAA,EAAAA,UAAgB,CACxCljH,IAAK,SACLkc,KAAM,CAAC,IAiBT,OAdA0mG,EAAAA,EAAAA,YAAU,KACHyvD,IAEL34G,EAAS,CAAE15D,IAAK,UAAWkc,KAAM,CAAC,IAClCy0L,EAAUt+B,GAAiBj1B,UAAU,CACnCl4I,KAAOgX,IACLw9C,EAAS,CAAE15D,IAAK,QAASkc,QAAzB,EAEFZ,MAAQA,IACNo+C,EAAS,CAAE15D,IAAK,QAASkc,KAAM,CAAEZ,UAAjC,IALJ,GAQC,CAAC+2J,EAAiBs+B,KAEd,SAACH,GAAmB/kM,SAApB,CAA6BvI,MAAOA,EAAO4B,SAAUA,GAA5D,ECjCK,SAAS8rM,GAAoBzkJ,GAClC,OAAOC,EAAAA,GAAAA,GAAqB,UAAWD,EACxC,EACmBE,EAAAA,GAAAA,GAAuB,UAAW,CAAC,OAAQ,aAAc,WAAY,mBAAoB,cAA7G,MCFMC,GAAY,CAAC,SAAU,WAAY,YAAa,YAAa,WAAY,WAAY,QAAS,QA2B9FukJ,IAAWrkJ,EAAAA,GAAAA,IAAO,MAAO,CAC7BzhD,KAAM,UACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAOnG,KAAMmG,EAAO6hD,EAAWy7F,aAAcz7F,EAAWunH,kBAAoBppK,EAAOopK,iBAAkBvnH,EAAWgd,WAAa7+D,EAAO6+D,UAA5I,GAPald,EASd,QAAC,WACFE,GADC,SAEGn7C,EAAAA,EAAAA,GAAS,CAAC,EAA8B,eAA3Bm7C,EAAWy7F,aAAgC,CAC5DpZ,YAAa,EACb8c,aAAc,GACbn/F,EAAWunH,kBAAoB,CAChCnnK,KAAM,EACNxI,SAAU,YAPT,IASGwsM,GAAoB9kM,EAAAA,YAAiB,SAAckjD,EAASrjD,GAChE,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,aAINgkD,OAAQgiJ,EADJ,SAEJjsM,EAFI,UAGJ8O,EACA81D,UAAWsnI,EACXhiJ,SAAUiiJ,EALN,SAMJ1mL,GAAW,EANP,MAOJ7mB,EAPI,KAQJmzB,GACEhyB,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,KAE7C,WACJqoH,EADI,UAEJC,EAFI,iBAGJX,EAHI,YAIJ9rB,EAJI,UAKJ0sB,GACE7oK,EAAAA,WAAiB6nK,IACrB,IAAK9kH,GAAS,EAAO2a,GAAY,EAAO1a,GAAW,GAAS,CAAC+hJ,EAAYC,EAAeC,GAEpFt8B,IAAejxK,EACjBqrD,OAAwBnuD,IAAfmwM,GAA2BA,GAC1Bl8B,GAAaF,EAAajxK,EACpCgmE,OAA8B9oE,IAAlBowM,GAA8BA,GAChCn8B,GAAaF,EAAajxK,IACpCsrD,OAA4BpuD,IAAjBqwM,GAA6BA,GAG1C,MAAM7+D,EAAepmI,EAAAA,SAAc,KAAM,CACvCtI,QACAmzB,OACAtM,WACA2nC,KAAMxuD,EAAQ,EACdqrD,SACA2a,YACA1a,cACE,CAACtrD,EAAOmzB,EAAMtM,EAAUwkC,EAAQ2a,EAAW1a,IAEzCtC,GAAan7C,EAAAA,EAAAA,GAAS,CAAC,EAAG1M,EAAO,CACrCkqD,SACAo5F,cACA8rB,mBACAvqG,YACA1a,WACAzkC,aAGIolC,EArFkBjD,KACxB,MAAM,QACJiD,EADI,YAEJw4F,EAFI,iBAGJ8rB,EAHI,UAIJvqG,GACEhd,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAQyjJ,EAAa8rB,GAAoB,mBAAoBvqG,GAAa,cAEnF,OAAO7Z,EAAAA,GAAAA,GAAeD,EAAOghJ,GAAqBjhJ,EAAlD,EA2EgBG,CAAkBpD,GAE5BwkJ,GAA2BnhJ,EAAAA,EAAAA,MAAM8gJ,IAAUt/L,EAAAA,EAAAA,GAAS,CACxDqC,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQjrD,KAAMkP,GAC9B/H,IAAKA,EACL6gD,WAAYA,GACXj/B,EAAO,CACR3oB,SAAU,CAAC8vK,GAAaX,GAA8B,IAAVvwK,EAAckxK,EAAY,KAAM9vK,MAG9E,OAAoBqrD,EAAAA,EAAAA,KAAK2jH,GAAAA,SAAsB,CAC7C5wK,MAAOkvI,EACPttI,SAAU8vK,IAAcX,GAA8B,IAAVvwK,GAA2BqsD,EAAAA,EAAAA,MAAM/jD,EAAAA,SAAgB,CAC3FlH,SAAU,CAAC8vK,EAAWs8B,KACnBA,GAER,IA+DD,MC1KA,IARkB1kJ,EAAAA,GAAAA,GAAO,MAAPA,CAAc,CAC9BsiF,WAAY,OACZC,YAAa,OACb8c,aAAc,OACdhoF,WAAY,oBACZpT,UAAW,SCAb,IAAexE,EAAAA,GAAAA,IAA4BkE,EAAAA,EAAAA,KAAK,OAAQ,CACtDrZ,EAAG,2FACD,eCFJ,IAAemV,EAAAA,GAAAA,IAA4BkE,EAAAA,EAAAA,KAAK,OAAQ,CACtDrZ,EAAG,uDACD,4CCRG,SAASq6J,GAAwBhlJ,GACtC,OAAOC,EAAAA,GAAAA,GAAqB,cAAeD,EAC5C,CACD,MACA,IADwBE,EAAAA,GAAAA,GAAuB,cAAe,CAAC,OAAQ,SAAU,YAAa,QAAS,SCDvG,IAAI+kJ,GAEJ,MAAM9kJ,GAAY,CAAC,SAAU,YAAa,YAAa,QAAS,QA4B1D+kJ,IAAe7kJ,EAAAA,GAAAA,IAAOyC,GAAAA,EAAS,CACnClkD,KAAM,cACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,IAAWA,EAAOnG,MAH1B8nD,EAIlB,QAAC,MACF14C,GADC,QAEI,CACLm6C,QAAS,QACTC,WAAYp6C,EAAMq6C,YAAYjjD,OAAO,QAAS,CAC5Cu9C,SAAU30C,EAAMq6C,YAAY1F,SAASgP,WAEvC9K,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQ59B,KAAKg+B,SAC1C,CAAC,KAAD,OAAMsiJ,GAAAA,YAA8B,CAClC3kJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQsC,QAAQrC,MAE/C,CAAC,KAAD,OAAMyiJ,GAAAA,SAA2B,CAC/B3kJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQsC,QAAQrC,MAE/C,CAAC,KAAD,OAAMyiJ,GAAAA,QAA0B,CAC9B3kJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQtzC,MAAMuzC,MAf5C,IAkBG0iJ,IAAe/kJ,EAAAA,GAAAA,IAAO,OAAQ,CAClCzhD,KAAM,cACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,IAAWA,EAAOmmB,MAH1Bw7B,EAIlB,QAAC,MACF14C,GADC,QAEI,CACL4f,MAAO5f,EAAM66C,MAAQ76C,GAAO86C,QAAQsC,QAAQ+C,aAC5CpH,SAAU/4C,EAAMy6C,WAAWwH,QAAQlJ,SACnC4H,WAAY3gD,EAAMy6C,WAAWkG,WAL5B,IAOG+8I,GAAwBxlM,EAAAA,YAAiB,SAAkBkjD,EAASrjD,GACxE,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,iBAGF,OACJgkD,GAAS,EACTn7C,UAAW69L,EAFP,UAGJ/nI,GAAY,EAHR,MAIJpuD,GAAQ,EAJJ,KAKJ42C,GACErtD,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,IAE7CI,GAAan7C,EAAAA,EAAAA,GAAS,CAAC,EAAG1M,EAAO,CACrCkqD,SACA2a,YACApuD,UAGIq0C,EApEkBjD,KACxB,MAAM,QACJiD,EADI,OAEJZ,EAFI,UAGJ2a,EAHI,MAIJpuD,GACEoxC,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAQqqD,GAAU,SAAU2a,GAAa,YAAapuD,GAAS,SACtE0V,KAAM,CAAC,SAET,OAAO6+B,EAAAA,GAAAA,GAAeD,EAAOuhJ,GAAyBxhJ,EAAtD,EAyDgBG,CAAkBpD,GAElC,GAAoB,kBAATwF,GAAqC,kBAATA,EAAmB,CACxD,MAAMt+C,GAAYo8C,EAAAA,GAAAA,GAAKyhJ,EAAe9hJ,EAAQjrD,MAE9C,OAAI4W,GACkB60C,EAAAA,EAAAA,KAAKkhJ,IAAc9/L,EAAAA,EAAAA,GAAS,CAC9CoC,GAAI+9L,GACJ99L,UAAWA,EACX/H,IAAKA,EACL6gD,WAAYA,GACXj/B,IAGDi8C,GACkBvZ,EAAAA,EAAAA,KAAKkhJ,IAAc9/L,EAAAA,EAAAA,GAAS,CAC9CoC,GAAIg+L,GACJ/9L,UAAWA,EACX/H,IAAKA,EACL6gD,WAAYA,GACXj/B,KAGesiC,EAAAA,EAAAA,MAAMshJ,IAAc9/L,EAAAA,EAAAA,GAAS,CAC/CqC,UAAWA,EACX/H,IAAKA,EACL6gD,WAAYA,GACXj/B,EAAO,CACR3oB,SAAU,CAACssM,KAAYA,IAAuBjhJ,EAAAA,EAAAA,KAAK,SAAU,CAC3DigG,GAAI,KACJC,GAAI,KACJ//H,EAAG,SACa6/B,EAAAA,EAAAA,KAAKohJ,GAAc,CACnC39L,UAAW+7C,EAAQ3+B,KACnB5oB,EAAG,KACHC,EAAG,KACHupM,WAAY,SACZC,iBAAkB,UAClBnlJ,WAAYA,EACZ5nD,SAAUotD,OAGf,CAED,OAAOA,CACR,IA+CD,MClLO,SAAS4/I,GAAyB3lJ,GACvC,OAAOC,EAAAA,GAAAA,GAAqB,eAAgBD,EAC7C,CACD,MACA,IADyBE,EAAAA,GAAAA,GAAuB,eAAgB,CAAC,OAAQ,aAAc,WAAY,QAAS,SAAU,YAAa,QAAS,WAAY,gBAAiB,mBAAoB,mBCFvLC,GAAY,CAAC,WAAY,YAAa,kBAAmB,QAAS,OAAQ,WAAY,oBAAqB,iBAiC3GylJ,IAAgBvlJ,EAAAA,GAAAA,IAAO,OAAQ,CACnCzhD,KAAM,eACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAOnG,KAAMmG,EAAO6hD,EAAWy7F,aAAvC,GAPkB37F,EASnB,QAAC,WACFE,GADC,SAEGn7C,EAAAA,EAAAA,GAAS,CACb08C,QAAS,OACTygF,WAAY,SACZ,CAAC,KAAD,OAAMsjE,GAAAA,mBAAsC,CAC1CzkD,cAAe,UAEjB,CAAC,KAAD,OAAMykD,GAAAA,WAA8B,CAClCniM,OAAQ,YAEkB,aAA3B68C,EAAWy7F,aAA8B,CAC1ChjF,UAAW,OACXjuC,QAAS,SAbR,IAeG+6K,IAAiBzlJ,EAAAA,GAAAA,IAAO,OAAQ,CACpCzhD,KAAM,eACNohD,KAAM,QACNM,kBAAmB,CAAC5nD,EAAOgG,IAAWA,EAAOyI,OAHxBk5C,EAIpB,QAAC,MACF14C,GADC,SAEGvC,EAAAA,EAAAA,GAAS,CAAC,EAAGuC,EAAMy6C,WAAWsH,MAAO,CACzC5H,QAAS,QACTC,WAAYp6C,EAAMq6C,YAAYjjD,OAAO,QAAS,CAC5Cu9C,SAAU30C,EAAMq6C,YAAY1F,SAASgP,WAEvC,CAAC,KAAD,OAAMu6I,GAAAA,SAA4B,CAChCrlJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQ59B,KAAKkgC,QAC1CljD,WAAY,KAEd,CAAC,KAAD,OAAMgkM,GAAAA,YAA+B,CACnCrlJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQ59B,KAAKkgC,QAC1CljD,WAAY,KAEd,CAAC,KAAD,OAAMgkM,GAAAA,mBAAsC,CAC1C7sI,UAAW,SACXukF,UAAW,IAEb,CAAC,KAAD,OAAMsoD,GAAAA,QAA2B,CAC/BrlJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQtzC,MAAMuzC,OApB5C,IAuBGqjJ,IAAyB1lJ,EAAAA,GAAAA,IAAO,OAAQ,CAC5CzhD,KAAM,eACNohD,KAAM,gBACNM,kBAAmB,CAAC5nD,EAAOgG,IAAWA,EAAOsnM,eAHhB3lJ,EAI5B,KAAM,CACPv/C,WAAY,EAEZghD,QAAS,OACT49F,aAAc,EACd,CAAC,KAAD,OAAMmmD,GAAAA,mBAAsC,CAC1CnmD,aAAc,OAGZumD,IAA0B5lJ,EAAAA,GAAAA,IAAO,OAAQ,CAC7CzhD,KAAM,eACNohD,KAAM,iBACNM,kBAAmB,CAAC5nD,EAAOgG,IAAWA,EAAOwnM,gBAHf7lJ,EAI7B,QAAC,MACF14C,GADC,QAEI,CACL6jB,MAAO,OACPg1B,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQ59B,KAAKmgC,UAJzC,IAMGmhJ,GAAyBtmM,EAAAA,YAAiB,SAAmBkjD,EAASrjD,GAC1E,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,kBAGF,SACJjG,EADI,UAEJ8O,EAFI,gBAGJylJ,EAAkB,CAAC,EAHf,MAIJ/9I,GAAQ,EACR42C,KAAMqgJ,EALF,SAMJC,EACAC,kBAAmBC,EAPf,cAQJC,GACE9tM,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,KAE7C,iBACJ2nH,EADI,YAEJ9rB,GACEn8I,EAAAA,WAAiB6nK,KACf,OACJ9kH,EADI,SAEJC,EAFI,UAGJ0a,EACAxX,KAAM0gJ,GACJ5mM,EAAAA,WAAiB8nK,IACf5hH,EAAOqgJ,GAAYK,EACzB,IAAIH,EAAoBC,EAEpBxgJ,IAASugJ,IACXA,EAAoBjB,IAGtB,MAAM9kJ,GAAan7C,EAAAA,EAAAA,GAAS,CAAC,EAAG1M,EAAO,CACrCkqD,SACAklH,mBACAvqG,YACA1a,WACA1zC,QACA6sI,gBAGIx4F,EAzIkBjD,KACxB,MAAM,QACJiD,EADI,YAEJw4F,EAFI,OAGJp5F,EAHI,UAIJ2a,EAJI,MAKJpuD,EALI,SAMJ0zC,EANI,iBAOJilH,GACEvnH,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAQyjJ,EAAa7sI,GAAS,QAAS0zC,GAAY,WAAYilH,GAAoB,oBAC1F3gK,MAAO,CAAC,QAASy7C,GAAU,SAAU2a,GAAa,YAAapuD,GAAS,QAAS0zC,GAAY,WAAYilH,GAAoB,oBAC7Hk+B,cAAe,CAAC,gBAAiBpjJ,GAAU,SAAU2a,GAAa,YAAapuD,GAAS,QAAS0zC,GAAY,WAAYilH,GAAoB,oBAC7Io+B,eAAgB,CAAC,mBAEnB,OAAOxiJ,EAAAA,GAAAA,GAAeD,EAAOkiJ,GAA0BniJ,EAAvD,EAyHgBG,CAAkBpD,GAClC,OAAoBqD,EAAAA,EAAAA,MAAMgiJ,IAAexgM,EAAAA,EAAAA,GAAS,CAChDqC,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQjrD,KAAMkP,GAC9B/H,IAAKA,EACL6gD,WAAYA,GACXj/B,EAAO,CACR3oB,SAAU,CAACotD,GAAQugJ,GAAiCtiJ,EAAAA,EAAAA,KAAK+hJ,GAAwB,CAC/Et+L,UAAW+7C,EAAQwiJ,cACnBzlJ,WAAYA,EACZ5nD,UAAuBqrD,EAAAA,EAAAA,KAAKsiJ,GAAmBlhM,EAAAA,EAAAA,GAAS,CACtDm4D,UAAWA,EACX3a,OAAQA,EACRzzC,MAAOA,EACP42C,KAAMA,GACLygJ,MACA,MAAmB5iJ,EAAAA,EAAAA,MAAMqiJ,GAAyB,CACrDx+L,UAAW+7C,EAAQ0iJ,eACnB3lJ,WAAYA,EACZ5nD,SAAU,CAACA,GAAwBqrD,EAAAA,EAAAA,KAAK8hJ,IAAgB1gM,EAAAA,EAAAA,GAAS,CAC/DqC,UAAW+7C,EAAQr8C,MACnBo5C,WAAYA,GACX2sG,EAAgB/lJ,MAAO,CACxBxO,SAAUA,KACN,KAAM0tM,QAGjB,IA+DDF,GAAUliJ,QAAU,YACpB,YClPO,SAASyiJ,GAA2B1mJ,GACzC,OAAOC,EAAAA,GAAAA,GAAqB,iBAAkBD,EAC/C,EAC0BE,EAAAA,GAAAA,GAAuB,iBAAkB,CAAC,OAAQ,OAAQ,eAArF,MCFMC,GAAY,CAAC,WAAY,YAAa,sBAAuB,qBAAsB,mBAyBnFwmJ,IAAkBtmJ,EAAAA,GAAAA,IAAO,MAAO,CACpCzhD,KAAM,iBACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAOnG,KAAMgoD,EAAW71B,MAAQhsB,EAAOgsB,KAA/C,GAPoB21B,EASrB,QAAC,WACFE,EADE,MAEF54C,GAFC,SAGGvC,EAAAA,EAAAA,GAAS,CACbu9H,WAAY,GAEZC,YAAa,GAEb8c,aAAc,EACdhoF,WAAY/vD,EAAM66C,KAAN,oBAA0B76C,EAAM66C,KAAKC,QAAQmkJ,YAAYvvI,QAAzD,oBAAwG,UAAvB1vD,EAAM86C,QAAQjH,KAAmB7zC,EAAM86C,QAAQwF,KAAK,KAAOtgD,EAAM86C,QAAQwF,KAAK,OAC1K1H,EAAW71B,MAAQ,CACpBgtC,WAAY,QAXX,IAaGmvI,IAAwBxmJ,EAAAA,GAAAA,IAAOk8F,GAAU,CAC7C39I,KAAM,iBACNohD,KAAM,aACNM,kBAAmB,CAAC5nD,EAAOgG,IAAWA,EAAOqjD,YAHjB1B,CAI3B,CAAC,GACEumJ,GAA2B/mM,EAAAA,YAAiB,SAAqBkjD,EAASrjD,GAC9E,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,oBAGF,SACJjG,EADI,UAEJ8O,EAFI,oBAGJ62H,EAAsBie,GACtB7f,mBAAoB0gC,EAAyB,OAJzC,gBAKJt5B,GACEprI,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,KAE7C,YACJ67F,GACEn8I,EAAAA,WAAiB6nK,KACf,OACJ9kH,EADI,KAEJl4B,EAFI,SAGJtM,GACEve,EAAAA,WAAiB8nK,IAEfpnH,GAAan7C,EAAAA,EAAAA,GAAS,CAAC,EAAG1M,EAAO,CACrCgyB,SAGI84B,EAnEkBjD,KACxB,MAAM,QACJiD,EADI,KAEJ94B,GACE61B,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAQmyB,GAAQ,QACvBq3B,WAAY,CAAC,eAEf,OAAO2B,EAAAA,GAAAA,GAAeD,EAAOijJ,GAA4BljJ,EAAzD,EA0DgBG,CAAkBpD,GAQlC,IAAIm8E,EAAqB0gC,EAMzB,MAJ+B,SAA3BA,GAAsC9+B,EAAoBgD,iBAC5D5E,OAAqBjoI,IAGHuvD,EAAAA,EAAAA,KAAK2iJ,IAAiBvhM,EAAAA,EAAAA,GAAS,CACjDqC,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQjrD,KAAMkP,GAC9B/H,IAAKA,EACL6gD,WAAYA,GACXj/B,EAAO,CACR3oB,UAAuBqrD,EAAAA,EAAAA,KAAK6iJ,IAAuBzhM,EAAAA,EAAAA,GAAS,CAC1DoC,GAAI82H,EACJ7E,GAAI72E,GAAUxkC,EACd3W,UAAW+7C,EAAQzB,WACnBxB,WAAYA,EACZrD,QAASw/E,EACThD,eAAe,GACdoK,EAAiB,CAClBnrI,SAAUA,OAGf,IAuDD,MCjKO,SAASmuM,GAAQ55L,GACtB,OAAOxW,OAAOwW,GAAO9P,MAAM,oBAAoB,IAAM,EACtD,CAEM,SAAS2pM,GAAW/yM,GACzB,OAAOulD,WAAWvlD,EACnB,CCXM,SAASgzM,GAAwBhnJ,GACtC,OAAOC,EAAAA,GAAAA,GAAqB,cAAeD,EAC5C,EACuBE,EAAAA,GAAAA,GAAuB,cAAe,CAAC,OAAQ,OAAQ,cAAe,UAAW,WAAY,QAAS,OAAQ,eAAgB,aAAc,+BCFpK,MAAMC,GAAY,CAAC,YAAa,YAAa,YAAa,SAAU,QAAS,UAAW,SAExF,IACIknF,GACAC,GACAC,GACAC,GAaJ,MAeMy/D,GAAgBlwE,EAAUsQ,KAAOA,GAAE,yHAanC6/D,GAAenwE,EAAUuQ,KAAQA,GAAG,uNAcpC6/D,IAAe9mJ,EAAAA,GAAAA,IAAO,OAAQ,CAClCzhD,KAAM,cACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAOnG,KAAMmG,EAAO6hD,EAAWqS,UAAmC,IAAzBrS,EAAWomD,WAAuBjoG,EAAO6hD,EAAWomD,WAAYpmD,EAAW6mJ,aAAe1oM,EAAO2oM,aAAc9mJ,EAAW6mJ,cAAgB7mJ,EAAW/0B,OAAS9sB,EAAO4oM,WAAY/mJ,EAAW6mJ,cAAgB7mJ,EAAWsB,QAAUnjD,EAAO6oM,WAAzR,GAPiBlnJ,EASlB,IAGG,IAHF,MACF14C,EADE,WAEF44C,GACI,EACJ,MAAMinJ,EAAaV,GAAQn/L,EAAMmvD,MAAMR,eAAiB,KAClDmxI,EAAcV,GAAWp/L,EAAMmvD,MAAMR,cAC3C,OAAOlxD,EAAAA,EAAAA,GAAS,CACd08C,QAAS,QAET61E,gBAAiBhwH,EAAM66C,KAAO76C,EAAM66C,KAAKC,QAAQilJ,SAASr8F,IAAKtgE,EAAAA,GAAAA,IAAMpjC,EAAM86C,QAAQ59B,KAAKkgC,QAAgC,UAAvBp9C,EAAM86C,QAAQjH,KAAmB,IAAO,KACzIqG,OAAQ,SACgB,SAAvBtB,EAAWqS,SAAsB,CAClC2qF,UAAW,EACXC,aAAc,EACd37F,OAAQ,OACRi3G,gBAAiB,QACjBpiG,UAAW,iBACXJ,aAAc,GAAF,OAAKmxI,GAAL,OAAmBD,EAAnB,YAAiChxM,KAAK0iD,MAAMuuJ,EAAc,GAAM,IAAM,IAAtE,OAA2ED,GACvF,iBAAkB,CAChBlqD,QAAS,aAEa,aAAvB/8F,EAAWqS,SAA0B,CACtC0D,aAAc,OACU,YAAvB/V,EAAWqS,SAAyB,CACrC0D,cAAe3uD,EAAM66C,MAAQ76C,GAAOmvD,MAAMR,cACzC/V,EAAW6mJ,aAAe,CAC3B,QAAS,CACP9nE,WAAY,WAEb/+E,EAAW6mJ,cAAgB7mJ,EAAW/0B,OAAS,CAChDgtC,SAAU,eACTjY,EAAW6mJ,cAAgB7mJ,EAAWsB,QAAU,CACjDA,OAAQ,QA1BV,IA4BC,QAAC,WACFtB,GADC,QAE4B,UAAzBA,EAAWomD,WAAyB7qC,EAAIyrE,KAAQA,GAAG,+EAEjD0/D,GAJL,IAIqB,QAAC,WACvB1mJ,EADuB,MAEvB54C,GAFsB,QAGO,SAAzB44C,EAAWomD,WAAwB7qC,EAAI0rE,KAAQA,GAAG,ooBAuBhD0/D,IAAev/L,EAAM66C,MAAQ76C,GAAO86C,QAAQE,OAAO0C,MA1BnC,IA2BlBqiJ,GAAwB7nM,EAAAA,YAAiB,SAAkBkjD,EAASrjD,GACxE,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,iBAGF,UACJ+nG,EAAY,QADR,UAEJl/F,EAFI,UAGJkO,EAAY,OAHR,OAIJksC,EAJI,MAKJgP,EALI,QAMJ+B,EAAU,OANN,MAOJpnC,GACE9yB,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,IAE7CI,GAAan7C,EAAAA,EAAAA,GAAS,CAAC,EAAG1M,EAAO,CACrCiuG,YACAhxF,YACAi9C,UACAw0I,YAAa16E,QAAQprG,EAAM3oB,YAGvB6qD,EA5IkBjD,KACxB,MAAM,QACJiD,EADI,QAEJoP,EAFI,UAGJ+zC,EAHI,YAIJygG,EAJI,MAKJ57K,EALI,OAMJq2B,GACEtB,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAQq6D,EAAS+zC,EAAWygG,GAAe,eAAgBA,IAAgB57K,GAAS,aAAc47K,IAAgBvlJ,GAAU,eAErI,OAAO6B,EAAAA,GAAAA,GAAeD,EAAOujJ,GAAyBxjJ,EAAtD,EAgIgBG,CAAkBpD,GAClC,OAAoByD,EAAAA,EAAAA,KAAKmjJ,IAAc/hM,EAAAA,EAAAA,GAAS,CAC9CoC,GAAImO,EACJjW,IAAKA,EACL+H,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQjrD,KAAMkP,GAC9B84C,WAAYA,GACXj/B,EAAO,CACRuvC,OAAOzrD,EAAAA,EAAAA,GAAS,CACdomB,QACAq2B,UACCgP,KAEN,IAmED,MC/NO,SAAS82I,GAAU5wM,GACxB,MAAwB,mBAAVA,CACf,CChBD,MAAM6wM,GAAe,IAAI19L,OAAO,gCAAiC,KAM1D,SAAS29L,GAAc9wM,GAG5B,MAAMgrB,EAAahrB,EAAM,GAAGm/I,WAAW,KACjC4xD,EAAU/lL,EAAahrB,EAAMgW,UAAU,GAAG3P,MAAMwqM,IAAgB7wM,EAAMqG,MAAMwqM,IAClF,OAAOE,EAAU,GAAH,OAAM/lL,EAAa,IAAM,IAAzB,OAA8B+lL,EAAQttM,KAAK,MAASzD,CACnE,CCXM,MAGMgxM,GAAK,CAAC,CACjB1kK,OAAQ,GACRxe,KAAM,QACN9tB,MAAO,KACN,CACDssC,OAAQ,GACRxe,KAAM,QACN9tB,MAAO,KACN,CACDssC,OAAQ,GACRxe,KAAM,OACN9tB,MAAO,KACN,CACDssC,OAAQ,GACRxe,KAAM,QACN9tB,MAAO,KACN,CACDssC,OAAQ,GACRxe,KAAM,OACN9tB,MAAO,KACN,CACDssC,OAAQ,EACRxe,KAAM,OACN9tB,MAAO,KACN,CACDssC,OAAQ,EACRxe,KAAM,QACN9tB,MAAO,QACN,CACDssC,OAAQ,EACRxe,KAAM,QACN9tB,MAAO,KACN,CACDssC,MAAO,EACPxe,KAAM,OACN9tB,MAAO,KAET,CACEssC,MAAO,EACPxe,KAAM,OACN9tB,MAAO,KACN,CACDssC,MAAO,EACPxe,KAAM,OACN9tB,MAAO,KAET,CACEssC,MAAO,EACPxe,KAAM,OACN9tB,MAAO,KAET,CACEssC,MAAO,GACPxe,KAAM,OACN9tB,MAAO,KAET,CACEssC,MAAO,GACPxe,KAAM,OACN9tB,MAAO,KACN,CACDssC,MAAO,GACPxe,KAAM,MACN9tB,MAAO,KACN,CACDssC,MAAO,GACPxe,KAAM,OACN9tB,MAAO,KACN,CACDssC,MAAO,GACPxe,KAAM,QACN9tB,MAAO,MAKF,SAASixM,GAAOvvM,GAErB,IAAK,IAAI7C,EAAI,EAAGA,EAAImyM,GAAG/zM,OAAQ4B,IAC7B,GAAImyM,GAAGnyM,GAAGmB,QAAU0B,EAClB,OAAOsvM,GAAGnyM,GAId,OAAOmyM,GAvFa,EAwFrB,CAGM,SAASE,GAAOpjL,EAAM6yB,EAAUwwJ,GACrC,GAAIA,EACF,OAAOF,GAAOE,GAGhB,MAAMC,EAAaC,EAAa5xM,KAAK8a,MAAMuT,EAAK7wB,OAAS0jD,GAAY,GACrE,OAAOqwJ,GAAGI,IAAeJ,GAAGI,EAAa,EAAI,EAAIJ,GAAG/zM,OAAS,EAC9D,CChGD,MACMq0M,GAAeN,GDHC,GCGUljL,KAChC,IAAIyjL,GAFqB,EAGrBC,GAAcF,GAElB,SAASG,GAASnzF,EAAIozF,EAAQC,EAAYC,GACxC,MAAMjzI,EAAOiyI,GAAUgB,GAAYZ,GDRf,GCQ0BljL,KAAO8jL,EACrD,OAAOF,GAAUC,EAA0B,MAAbrzF,EAAGt+G,MAAgB4xM,EAAW,IAAH,OAAOjzI,GAAS,GAA3C,WAAoDgzI,EAAa,GAAH,OAAMrzF,EAAGxwF,MAAT,OAAgB8jL,EAAW,IAAM,IAAOtzF,EAAGt+G,OAAzG,OAAiH4xM,EAAWjzI,EAAO,IAAO,EACzK,CAED,SAASkzI,GAAW/jL,EAAM6yB,EAAUwwJ,GAIlC,MAAM7yF,EAAK4yF,GAAOpjL,EAAM6yB,EAAUwwJ,GAC5B1hL,EAAM3B,EAAK7wB,QAAU0jD,EAAW29D,EAAGhyE,OAIzC,MAAO,CAACgyE,EAHOxwF,EAAK9X,UAAU,EAAGyZ,IAGX,IADN,UAAG,UAAG,IAAIjpB,OADVipB,EAAM,EAAI,EAAIA,EAAM,GACM,GAAGhsB,KAAK,MAA/B,OAAsCqqB,GAAO9X,UAAUyZ,EAAM,EAAI,EAAIA,GAAxE,QAAmFzZ,UAAU,EAAG,GAEjH,CA8BM,MAAM87L,GA3Bb,SAAwB37L,GAMhB,IANuB,SAC7BwqC,EAAW4wJ,GADkB,UAE7BJ,EAF6B,OAG7BO,GAAS,EAHoB,WAI7BC,GAAa,EAJgB,SAK7BC,GAAW,GACL,uDAAJ,CAAC,EACC9jL,EAAO6kJ,GAAOx8J,GAAOjN,WAEzB,GAAoB,IAAhB4kB,EAAK7wB,QAAyB,MAAT6wB,EACvB,MAAO,IAKT,IAAIgqB,EAAO,GAEPhqB,EAAK,GAAGqxH,WAAW,OACrBrnG,EAAO,IACPhqB,EAAOA,EAAK9X,UAAU,IAGxB,MAAOsoG,EAAI56G,EAAQquM,GAAWF,GAAW/jL,EAAM6yB,EAAUwwJ,GACnDa,EAAQP,GAASnzF,EAAIozF,EAAQC,EAAYC,GAC/C,MAAO,GAAP,OAAU95J,GAAV,OAAiBg5J,GAAcptM,GAA/B,YAA0CquM,GAA1C,OAAoDC,EACrD,EAIDF,GAAcZ,OAAS,SAACpjL,GAAD,IAAO6yB,EAAP,uDAAkB4wJ,GAAlB,OAAsCL,GAAOpjL,EAAM6yB,EAAnD,EAGvBmxJ,GAAcb,OAASA,GAEvBa,GAAcG,YAAc,KACnB,CACLtxJ,SAAU4wJ,GACV5yI,KAAM6yI,KAMVM,GAAcI,WAAa,WAAgC,IAA/BvxJ,EAA+B,uDAApB4wJ,GACrC,OAAOP,GAAGhxL,QAAO,QAAC,MAChBssB,GADe,UAEXA,EAAQ,IAAIqU,EAAWrU,GAAS,CAFrB,GAGlB,EAIDwlK,GAAcK,YAAc,IAGtB,IAHuB,SAC3BxxJ,EAD2B,KAE3Bge,GACI,EACJ4yI,QAA+B7zM,IAAbijD,EAAyB4wJ,GAAkB/qM,MAAM4G,QAAQuzC,GAAYA,EAAS,GAAKA,EACrG6wJ,QAAuB9zM,IAATihE,EAAqB6yI,GAAchrM,MAAM4G,QAAQuxD,GAAQA,EAAK,GAAKA,EACjFqyI,GDlFoB,GCkFTljL,KAAO0jL,EAAlB,EClFK,MAAMY,GAAS,CACpBC,EACA1xJ,EACAixJ,KAEA,MAAMU,EAAaR,GAAcO,EAAS,CACxC1xJ,WACAixJ,WACAF,QAAQ,EACRP,UAAW,SAGb,OAAOmB,EAAWt8L,UAAU,EAAGs8L,EAAWhyM,QAAQsxM,GAAlD,EAGWW,GAAa,CAAC7yM,EAAcknB,KACvC,MAAM4rL,EAAW,IAAI/yK,KAAK//B,GACpB+yM,EAAS,IAAIhzK,KAAK7Y,GAExB,IAAIqwC,EAAOy7I,EAAKC,EAAMC,EAAQC,EAE9BA,EAASJ,EAAOxyK,gBAAkBuyK,EAASvyK,gBAC3C2yK,EAASH,EAAOzyK,gBAAkBwyK,EAASxyK,gBAC3C2yK,EAAOF,EAAO1yK,cAAgByyK,EAASzyK,cACvC2yK,EAAMD,EAAO3yK,aAAe0yK,EAAS1yK,aACrCm3B,EACEw7I,EAAO5yK,cACP2yK,EAAS3yK,cACT,IAAM4yK,EAAO9yK,iBAAmB6yK,EAAS7yK,kBAE3C,MAAMnkB,EAAiC,CACrCy7C,QACAy7I,MACAC,OACAC,SACAC,UASF,OAAO/yM,OAAOihB,KAAKvF,GAChBe,QAAO,CAACxa,EAAMjE,KACb,MAAMg1M,EARQh1M,KAChB,MAAMkC,EAAQwb,EAAO1d,GAErB,OAAOkC,EAAQ,EAAR,UAAeA,EAAf,YAAwBlC,GAAxB,OAAwC,IAAVkC,EAAc,GAAK,KAAQ,EAAhE,EAKiBkJ,CAASpL,GAExB,MAAY,WAARA,GAAqBiE,EAAKhC,OAIvBgC,EAAKwF,OAAOurM,EAAS,KAHnB,WAGT,GACC,IACF/yM,MAVH,ECnCIgzM,GAA8B,KAClC,SAAC,GAAD,CAAUnjG,UAAU,OAAO9kD,OAAQ,MAG/BkoJ,GAA8C,QAAC,MAAE56L,GAAH,SAClD,SAAC,GAAD,WACE,SAAC,GAAD,CAAYqxC,MAAM,QAAlB,SAA2BrxC,EAAMK,WAFe,EAM9Cw6L,GAA4B,KAChC,MAAM,IAAEC,GAAQrkC,KACVG,EAAYw+B,MACZ,OAAEhyL,EAAF,cAAU42K,GAAkBjE,KAE5BglB,GAAqBtzF,EAAAA,EAAAA,UAAQ,KACjC,MAAMl/D,EAAWuyJ,EAAIE,aAAaC,SAASC,cAAc,GACnDnxM,EAAQ+wM,EAAIE,aAAaC,SAASE,YAAY,GAE9CC,EACJxkC,EAAUhvK,MAAMyzM,SAAWzkC,EAAUhvK,MAAMyzM,QAAQx2M,OAC/Cy2M,EAAiBrB,GAAkBD,GAAOC,EAAS1xJ,EAAUx+C,GAC7DwxM,EAAwBD,EAAc1kC,EAAUhvK,MAAMqyM,SAASprM,MACnE,KAGIwsM,EAAUD,EACZxkC,EAAUhvK,MAAMyzM,QACb9sK,UACAlV,MAAK,CAAC/B,EAAGC,IACa,IAArBD,EAAEkkL,MAAMx8L,WAAqBsY,EAAE+jL,QAAQr8L,WAClB,IAArBuY,EAAEikL,MAAMx8L,WAAqBuY,EAAE8jL,QAAQr8L,WACnC,GACC,IAENlR,KAAKutM,IACJ,MAAMI,EAA+BH,EACnCD,EAAQpB,SACRprM,MAAM,KACF6sM,EAAoBvB,GAAW,EAAGkB,EAAQA,QAAQr8L,YAClD28L,EAAkBxB,GAAW,EAAGkB,EAAQG,MAAMx8L,YAEpD,OACE,UAAC,GAAD,CAEEtM,WAAY,IACZw+I,MAAM,OACN3/F,SAAS,UAJX,UAMGkqJ,EAA6B,IAC9B,UAAC,GAAD,CAAYj1L,UAAU,OAAO+qC,SAAS,OAAtC,cACIkqJ,EAA6B,OAEjC,UAAC,GAAD,CAAYj1L,UAAU,OAAO6qC,MAAM,UAAnC,UACGtnD,EADH,aACoB,QAEpB,UAAC,GAAD,CAAYyc,UAAU,OAAtB,yBACek1L,EAAmB,OAEjCL,EAAQG,MAAMx8L,YACb,iCACE,UAAC,GAAD,CAAYwH,UAAU,OAAO6qC,MAAM,UAAnC,iBACO,QAEP,UAAC,GAAD,CAAY7qC,UAAU,OAAtB,UACGm1L,EADH,eAIA,OAxBCN,EAAQvqM,WAFjB,IA8BJ,GAEJ,OACE,UAAC,GAAD,YACE,SAAC,GAAD,CAAYogJ,MAAM,SAAS3/F,SAAS,UAAUF,MAAM,UAApD,yDAGA,UAAC,GAAD,CAAY3+C,WAAY,IAAKw+I,MAAM,SAAS3/F,SAAS,UAArD,UACGgqJ,EAAsB,IACvB,UAAC,GAAD,CAAYlqJ,MAAM,UAAU7qC,UAAU,OAAO+qC,SAAS,SAAtD,cACIgqJ,EAAsB,OAE1B,SAAC,GAAD,CAAY7oM,WAAY,IAAK8T,UAAU,OAAvC,SACGzc,OAGG,OAAPsxM,QAAO,IAAPA,GAAAA,EAASx2M,QACR,UAAC,GAAD,CAAO0nE,GAAI,CAAEknD,GAAI,GAAjB,WACE,SAAC,GAAD,CAAYy9B,MAAM,OAAO3/F,SAAS,UAAUF,MAAM,UAAlD,wBAGCgqJ,KAED,KACI,OAAPA,QAAO,IAAPA,GAAAA,EAASx2M,QACR,SAAC,GAAD,CAAO0nE,GAAI,CAAEknD,GAAI,GAAK0hC,SAAS,UAA/B,+HAIE,OA3BR,GA8BC,CACD2lD,EAAIE,aAAaC,SAASC,cAC1BJ,EAAIE,aAAaC,SAASE,YAC1BvkC,IASF,OANAtvD,EAAAA,EAAAA,YAAU,KACJsvD,EAAUhvK,MAAM27D,UAAYngD,EAAOw4L,gBACrC5hB,EAAc,iBAAkBpjB,EAAUhvK,MAAM27D,QACjD,GACA,CAACy2H,EAAe52K,EAAOw4L,eAAgBhlC,EAAUhvK,MAAM27D,WAGxD,SAAC,GAAD,WACE,SAAC,GAAD,UACGqzG,EAAUhvK,MAAM27D,SACf,SAAC,GAAD,+BAEAw3I,KANR,EAsBF,GAT8B,KAC5B,SAAC5F,GAAD,CACE0G,OAAQlB,GACR/vH,QAAS+vH,GACTmB,MAAOjB,GACP76L,MAAO46L,KCtBLmB,GAAsB,CAC1BxoJ,KA3EqB,KAAO,IAAD,EAC3B,MAAM,OAAEnwC,EAAF,WAAU83K,EAAV,cAAsBlB,EAAtB,cAAqCD,GACzChE,MACI,cAAE0b,IAAkBjhM,EAAAA,EAAAA,YAAWghM,KAC9BwK,EAAoBC,IAAyBr0F,EAAAA,EAAAA,UAClD,CAAEljH,IAAK,WAGHw3M,GAAsB70F,EAAAA,EAAAA,cAAY,KACtC,IAAIriG,GAAS,EACbi3L,EAAsB,CAAEv3M,IAAK,YAC7B+sM,IAAgB3vD,UAAU,CACxBl4I,KAAOqe,IACL+xK,EAAc,iBAAkB/xK,GAE5BjD,IAEJA,GAAS,EACTk2K,IAAY,EAEdl7K,MAAQA,GAAUi8L,EAAsB,CAAEv3M,IAAK,QAASsb,UACxD0gI,SAAU,KACRq5C,EAAc,sBAAuB,QACrCkiB,EAAsB,CAAEv3M,IAAK,WAC7Bw2L,GAAY,GAbhB,GAgBC,CAACnB,EAAeC,EAAekB,EAAYuW,IAE9C,OACE,SAAC,GAAD,WACE,UAAC,GAAD,CAAOvoI,IAAK,EAAGmvG,GAAI,EAAnB,WACE,SAAC,GAAD,CACErgK,MACEkgK,GAAAA,KAAAA,MArEO,GAqE4BhB,YAAYC,iBAEjDvvK,MAAK,UAAEwb,EAAO+4L,UAAU93K,eAAnB,aAAE,EAA0Bnc,WAEnC,SAAC,GAAD,CACElQ,MACEkgK,GAAAA,KAAAA,MA3EO,GA2E4BhB,YAAYE,oBAEjDxvK,MAAOwb,EAAO+4L,UAAUrqL,OAE1B,SAAC,GAAD,CACE9Z,MAAOkgK,GAAAA,KAAAA,MAhFE,GAgFiChB,YAAYH,gBACtDnvK,MAAOwb,EAAOg5L,SAASl0L,WAEzB,SAAC,GAAD,CACElQ,MAAOkgK,GAAAA,KAAAA,MApFE,GAoFiChB,YAAY7vJ,UACtDzf,MAAOwb,EAAOiE,aAEhB,SAAC,GAAD,KACA,UAAC,GAAD,YACE,SAAC,GAAD,CACEe,GAAG,eACH3Y,KAAK,eACLg0D,QAAQ,YACR/P,SAAqC,YAA3BsoJ,EAAmBt3M,IAC7B8nH,QAAS0vF,EALX,SAOGhkC,GAAAA,KAAAA,MAhGM,GAgG6Bb,aAEV,UAA3B2kC,EAAmBt3M,MAClB,SAAC,GAAD,CAAgBsb,OAAK,EAArB,SACGg8L,EAAmBh8L,MAAMK,iBApCtC,EA+CA+tD,UAAW,IAAM,KACjBp2D,MA/FsB,KACtB,MAAM,OAAEoL,GAAW2yK,KAEnB,OACE,SAAC,GAAD,CACEshB,cAAe,CACb31I,MAAO,CACLrQ,MAxBS,IAyBPjuC,EAAOi5L,WAAWhjC,WAA4B,UAAY,SAGhE9sG,GAAI,CAAE0rG,GAAI,EAAGz1E,GAAI,GAPnB,SASG01E,GAAAA,KAAAA,MA9BY,GA8BuBjB,kBAVxC,GA+FF,MCvGMqlC,GAAiD/yM,IACrD,MAAM,iBAAEgzM,EAAF,SAAoBh0J,EAApB,MAA8Bx+C,GAAUR,EAExCgyM,GAAwB9zF,EAAAA,EAAAA,UAC5B,IAAMuyF,GAAOuC,EAAiBtC,QAAS1xJ,EAAUx+C,GAAO8E,MAAM,MAC9D,CAAC05C,EAAUx+C,EAAOwyM,EAAiBtC,UAG/BoB,GAAU5zF,EAAAA,EAAAA,UAAQ,IAGf80F,EAAiBlB,QACpBkB,EAAiBlB,QACd9sK,UACAlV,MAAK,CAAC/B,EAAGC,IACa,IAArBD,EAAEkkL,MAAMx8L,WAAqBsY,EAAE+jL,QAAQr8L,WAClB,IAArBuY,EAAEikL,MAAMx8L,WAAqBuY,EAAE8jL,QAAQr8L,WACnC,GACC,IAENlR,KAAKutM,IACJ,MAAMI,GAZSxB,EAaboB,EAAQpB,QAbuBD,GAAOC,EAAS1xJ,EAAUx+C,IAczD8E,MAAM,KAdOorM,MAef,MAAMyB,EAAoBvB,GAAW,EAAGkB,EAAQA,QAAQr8L,YAClD28L,EAAkBxB,GAAW,EAAGkB,EAAQG,MAAMx8L,YAEpD,OACE,UAAC,GAAD,CACEtM,WAAY,IACZw+I,MAAM,OACN3/F,SAAS,UAHX,UAMGkqJ,EAA6B,IAC9B,UAAC,GAAD,CAAYj1L,UAAU,OAAO+qC,SAAS,OAAtC,cACIkqJ,EAA6B,OAEjC,UAAC,GAAD,CAAYj1L,UAAU,OAAO6qC,MAAM,UAAnC,UACGtnD,EADH,aACoB,QAEpB,UAAC,GAAD,CAAYyc,UAAU,OAAtB,yBACek1L,EAAmB,OAEjCL,EAAQG,MAAMx8L,YACb,iCACE,UAAC,GAAD,CAAYwH,UAAU,OAAO6qC,MAAM,UAAnC,iBACO,QAEP,UAAC,GAAD,CAAY7qC,UAAU,OAAtB,UACGm1L,EADH,eAIA,OArBCN,EAAQvqM,WALjB,IA8BJ,IACH,CAACy3C,EAAUx+C,EAAOwyM,EAAiBlB,UAEtC,OACE,SAAC,GAAD,WACE,UAAC,GAAD,CAAOnyI,IAAK,EAAZ,WACE,UAAC,GAAD,CAAYx2D,WAAY,IAAKw+I,MAAM,SAAS3/F,SAAS,UAArD,UACGgqJ,EAAsB,IACvB,UAAC,GAAD,CAAYlqJ,MAAM,UAAU7qC,UAAU,OAAO+qC,SAAS,SAAtD,cACIgqJ,EAAsB,OAE1B,SAAC,GAAD,CAAY/0L,UAAU,OAAO9T,WAAY,IAAzC,SACG3I,QAGL,SAAC,GAAD,CAAYsnD,MAAM,UAAU6/F,MAAM,SAAlC,uCAGA,UAAC,GAAD,CAAOhoF,IAAK,EAAGuqD,GAAI,EAAGjxB,GAAI,EAA1B,WACE,UAAC,GAAD,YACE,SAAC,GAAD,CAAYnxC,MAAM,UAAlB,gEAGA,SAAC,GAAD,UACGkrJ,EAAiBxlC,gBAAgBjmK,iBAGtC,UAAC,GAAD,YACE,SAAC,GAAD,CAAYugD,MAAM,UAAlB,mCACA,SAAC,GAAD,UAAakrJ,EAAiBC,IAAI1rM,gBAE5B,OAAPuqM,QAAO,IAAPA,GAAAA,EAASx2M,QACR,UAAC,GAAD,YACE,SAAC,GAAD,CAAYqsJ,MAAM,OAAO7/F,MAAM,UAA/B,wBAGCgqJ,KAED,YAnCZ,EA6CIoB,GAA2ClzM,IAC/C,MAAM,cAAEmzM,GAAkBnzM,EAEpBqW,GAAS6nG,EAAAA,EAAAA,UACb,IACEi1F,EAAcC,KAAK7uM,KAAKgyD,IACtB,SAAC,GAAD,CAAiBq1F,SAAS,QAA1B,SACGr1F,GADSA,MAIhB,CAAC48I,EAAcC,OAGjB,OACE,UAAC,GAAD,YACE,SAAC,GAAD,iCACC/8L,IAHL,EAQIg9L,GAA+B,KACnC,UAAC,GAAD,YACE,SAAC,GAAD,kDACA,SAAC,GAAD,wCACA,2BACE,SAAC,GAAD,CAAYp2L,UAAU,KAAtB,0EAGA,SAAC,GAAD,CAAYA,UAAU,KAAtB,sFAkFAq2L,GAAyB,CAC7BtpJ,KA1DqB,KACrB,MAAM,IAAEunJ,GAAQrkC,MAEdrzJ,QAAQ,eAAE05L,GADN,cAEJ9iB,GACEjE,MAEGhiG,EAAS/7E,IAASyvG,EAAAA,EAAAA,UACvB,IACEq1F,EAAe34L,QACb,CAACoS,EAAKwmL,KACJ,GAAe,yBAAXxmL,EAAI,GAA+B,OAAOA,EAI9C,OAFU,UAAMwmL,EAAY79I,MAAMt+C,KAAKo8L,QAA7B,YAAwCD,EAAY79I,MAAMt+C,KAAKqJ,SAGvE,IAAK,4BACH,MAAO,EACL,SAACqyL,GAAD,CACEC,iBACEQ,EAAY79I,MACTt+C,KAEL2nC,SAAUuyJ,EAAIG,SAASC,cAAc,GACrCnxM,MAAO+wM,EAAIG,SAASE,YAAY,KAElC,WAEJ,IAAK,yBACH,MAAM5oL,EACJwqL,EAAY79I,MAAMt+C,KAClBq8L,cAAcC,SACVR,EAAgB5B,EAAIG,SAASkC,cAAc5qL,GACjD,MAAO,EAAC,SAACkqL,GAAD,CAAaC,cAAeA,IAAmB,WACzD,QACE,OAAOnmL,EApBX,GAuBF,EAAC,SAACqmL,GAAD,IAAwB,0BAE7B,CAAC9B,EAAIG,SAAU6B,IAUjB,OAPAx1F,EAAAA,EAAAA,YAAU,KACR0yE,EAAc,0BAAD,OAlNE,EAkNF,sBAEXhiL,EAFF,GAIC,CAACA,EAAOgiL,KAGT,SAAC,GAAD,WACE,SAAC,GAAD,CAAKx3F,GAAG,OAAR,SAAgBzO,KAFpB,EASA3lB,UAAW,IAAM,KACjBp2D,MA9EsB,KACtB,MAAM,OAAEoL,GAAW2yK,KAEnB,OACE,SAAC,GAAD,CACEshB,cAAe,CACb31I,MAAO,CACLrQ,MA3JS,IA4JPjuC,EAAOi5L,WAAWhjC,WAA4B,UAAY,SAGhE9sG,GAAI,CAAE0rG,GAAI,EAAGz1E,GAAI,GAPnB,SASG01E,GAAAA,KAAAA,MAjKY,GAiKuBjB,kBAVxC,GA8EF,MCzPA,IAAImmC,GAqBG,SAASC,KACd,GAAID,GACF,OAAOA,GAGT,MAAME,EAAQp3M,SAASC,cAAc,OAC/BlB,EAAYiB,SAASC,cAAc,OAyBzC,OAxBAlB,EAAUy8D,MAAMrlC,MAAQ,OACxBp3B,EAAUy8D,MAAMhP,OAAS,MACzB4qJ,EAAMj3M,YAAYpB,GAClBq4M,EAAMxyI,IAAM,MACZwyI,EAAM57I,MAAMnQ,SAAW,OACvB+rJ,EAAM57I,MAAMrlC,MAAQ,MACpBihL,EAAM57I,MAAMhP,OAAS,MACrB4qJ,EAAM57I,MAAM14D,SAAW,WACvBs0M,EAAM57I,MAAM60C,IAAM,UAClB+mG,EAAM57I,MAAMu8C,SAAW,SACvB/3G,SAASimD,KAAK9lD,YAAYi3M,GAC1BF,GAAa,UAETE,EAAMhnG,WAAa,EACrB8mG,GAAa,WAEbE,EAAMhnG,WAAa,EAEM,IAArBgnG,EAAMhnG,aACR8mG,GAAa,aAIjBl3M,SAASimD,KAAKhlD,YAAYm2M,GACnBF,EACR,CAEM,SAASG,GAAwBnyM,EAAS2rD,GAC/C,MAAMu/C,EAAalrG,EAAQkrG,WAE3B,GAAkB,QAAdv/C,EACF,OAAOu/C,EAKT,OAFa+mG,MAGX,IAAK,WACH,OAAOjyM,EAAQoyM,YAAcpyM,EAAQ2lI,YAAcz6B,EAErD,IAAK,UACH,OAAOlrG,EAAQoyM,YAAcpyM,EAAQ2lI,YAAcz6B,EAErD,QACE,OAAOA,EAEZ,CC3ED,SAASmnG,GAAa1+I,GACpB,OAAQ,EAAI13D,KAAK05E,IAAI15E,KAAKw5E,GAAK9hB,EAAO13D,KAAKw5E,GAAK,IAAM,CACvD,CAEc,SAAS68H,GAAQzxM,EAAUb,EAASojB,GAAiC,IAA7BlqB,EAA6B,uDAAnB,CAAC,EAAG28F,EAAe,uDAAV,OACxE,MAAM,KACJ08G,EAAOF,GADH,SAEJtwJ,EAAW,KAET7oD,EACJ,IAAIkwB,EAAQ,KACZ,MAAMltB,EAAO8D,EAAQa,GACrB,IAAI2xM,GAAY,EAEhB,MAAM7uJ,EAAS,KACb6uJ,GAAY,CAAZ,EAGIzrK,EAAO7K,IACX,GAAIs2K,EAEF,YADA38G,EAAG,IAAI78E,MAAM,wBAID,OAAVoQ,IACFA,EAAQ8S,GAGV,MAAMy3B,EAAO13D,KAAKg7D,IAAI,GAAI/6B,EAAY9S,GAAS24B,GAC/C/hD,EAAQa,GAAY0xM,EAAK5+I,IAASvwC,EAAKlnB,GAAQA,EAE3Cy3D,GAAQ,EACV8+I,uBAAsB,KACpB58G,EAAG,KAAH,IAKJ48G,sBAAsB1rK,EAAtB,EAGF,OAAI7qC,IAASknB,GACXyyE,EAAG,IAAI78E,MAAM,uCACN2qC,IAGT8uJ,sBAAsB1rK,GACf4c,EACR,CC9CD,MAAMiC,GAAY,CAAC,YAMbzhD,GAAS,CACb8sB,MAAO,GACPq2B,OAAQ,GACR1pD,SAAU,WACVutG,KAAM,KACN0H,SAAU,UCNZ,UAAettD,EAAAA,GAAAA,IAA4BkE,EAAAA,EAAAA,KAAK,OAAQ,CACtDrZ,EAAG,uDACD,qBCFJ,IAAemV,EAAAA,GAAAA,IAA4BkE,EAAAA,EAAAA,KAAK,OAAQ,CACtDrZ,EAAG,qDACD,sBCRG,SAASsiK,GAA+BjtJ,GAC7C,OAAOC,EAAAA,GAAAA,GAAqB,qBAAsBD,EACnD,CACD,MACA,IAD+BE,EAAAA,GAAAA,GAAuB,qBAAsB,CAAC,OAAQ,WAAY,aAAc,aCD/G,IAAIgtJ,GAAoBC,GAExB,MAAMhtJ,GAAY,CAAC,YAAa,YAAa,cAAe,YA4BtDitJ,IAAsB/sJ,EAAAA,GAAAA,IAAOopF,GAAY,CAC7C7qI,KAAM,qBACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAOnG,KAAMgoD,EAAWy7F,aAAet9I,EAAO6hD,EAAWy7F,aAAjE,GAPwB37F,EASzB,QAAC,WACFE,GADC,SAEGn7C,EAAAA,EAAAA,GAAS,CACbomB,MAAO,GACP1qB,WAAY,EACZiB,QAAS,GACT,CAAC,KAAD,OAAMsrM,GAAAA,WAAoC,CACxCtrM,QAAS,IAEiB,aAA3Bw+C,EAAWy7F,aAA8B,CAC1CxwH,MAAO,OACPq2B,OAAQ,GACR,QAAS,CACP6U,UAAW,UAAF,OAAYnW,EAAWu+G,OAAS,GAAK,GAArC,UAbV,IAgBGwuC,GAA+BztM,EAAAA,YAAiB,SAAyBkjD,EAASrjD,GACtF,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,wBAGF,UACJ6I,EADI,UAEJy+C,GACExtD,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,IAG7C2+G,EAA4B,QADpBvvG,KACMrJ,UAEd3F,GAAan7C,EAAAA,EAAAA,GAAS,CAC1B05J,SACCpmK,GAEG8qD,EAxDkBjD,KACxB,MAAM,QACJiD,EADI,YAEJw4F,EAFI,SAGJn5F,GACEtC,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAQyjJ,EAAan5F,GAAY,aAE1C,OAAOa,EAAAA,GAAAA,GAAeD,EAAOwpJ,GAAgCzpJ,EAA7D,EA+CgBG,CAAkBpD,GAClC,OAAoByD,EAAAA,EAAAA,KAAKopJ,IAAqBhoM,EAAAA,EAAAA,GAAS,CACrDuQ,UAAW,MACXlO,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQjrD,KAAMkP,GAC9B/H,IAAKA,EACLqkD,KAAM,KACNxD,WAAYA,EACZkqF,SAAU,MACTnpH,EAAO,CACR3oB,SAAwB,SAAdutD,EAAuBgnJ,KAAuBA,IAAkClpJ,EAAAA,EAAAA,KAAKupJ,GAAmB,CAChH7sJ,SAAU,WACNysJ,KAAwBA,IAAmCnpJ,EAAAA,EAAAA,KAAKwpJ,GAAoB,CACxF9sJ,SAAU,aAGf,IA4CD,MCvIO,SAAS+sJ,GAAoBztJ,GAClC,OAAOC,EAAAA,GAAAA,GAAqB,UAAWD,EACxC,CACD,MACA,IADoBE,EAAAA,GAAAA,GAAuB,UAAW,CAAC,OAAQ,WAAY,gBAAiB,wBAAyB,WAAY,WAAY,QAAS,cAAe,cAAe,gBAAiB,gBAAiB,0BAA2B,cCF3OC,GAAY,CAAC,aAAc,kBAAmB,SAAU,WAAY,WAAY,YAAa,YAAa,2BAA4B,iBAAkB,WAAY,cAAe,wBAAyB,gBAAiB,wBAAyB,oBAAqB,uBAAwB,YAAa,QAAS,UAAW,oBAsBpUs6G,GAAW,CAACC,EAAMh3I,IAClBg3I,IAASh3I,EACJg3I,EAAKrmK,WAGVqvB,GAAQA,EAAKmzG,mBACRnzG,EAAKmzG,mBAGP6jC,EAAKrmK,WAGRumK,GAAe,CAACF,EAAMh3I,IACtBg3I,IAASh3I,EACJg3I,EAAKlpE,UAGV9tE,GAAQA,EAAKm3I,uBACRn3I,EAAKm3I,uBAGPH,EAAKlpE,UAGR2pE,GAAY,CAACT,EAAMU,EAAcE,KACrC,IAAIC,GAAc,EACdR,EAAYO,EAAkBZ,EAAMU,GAExC,KAAOL,GAAW,CAEhB,GAAIA,IAAcL,EAAKrmK,WAAY,CACjC,GAAIknK,EACF,OAGFA,GAAc,CACf,CAGD,MAAMC,EAAoBT,EAAUl4G,UAAwD,SAA5Ck4G,EAAUt9J,aAAa,iBAEvE,GAAKs9J,EAAUpR,aAAa,cAAe6R,EAKzC,YADAT,EAAUp1G,QAFVo1G,EAAYO,EAAkBZ,EAAMK,EAKvC,GA0BG2yC,IAAWrtJ,EAAAA,GAAAA,IAAO,MAAO,CAC7BzhD,KAAM,UACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAAC,CACN,CAAC,MAAD,OAAOi1M,GAAAA,gBAA8BjvM,EAAOkvM,eAC3C,CACD,CAAC,MAAD,OAAOD,GAAAA,gBAA8BptJ,EAAWstJ,yBAA2BnvM,EAAOmvM,yBACjFnvM,EAAOnG,KAAMgoD,EAAW0iF,UAAYvkI,EAAOukI,SAJ9C,GAPa5iF,EAad,QAAC,WACFE,EADE,MAEF54C,GAFC,SAGGvC,EAAAA,EAAAA,GAAS,CACbgoG,SAAU,SACV9oD,UAAW,GAEXorG,wBAAyB,QACzB5tG,QAAS,QACRvB,EAAW0iF,UAAY,CACxBme,cAAe,UACd7gG,EAAWstJ,yBAA2B,CACvC,CAAC,MAAD,OAAOF,GAAAA,gBAA8B,CACnC,CAAChmM,EAAMw8C,YAAY6R,KAAK,OAAQ,CAC9BlU,QAAS,UAdZ,IAkBGgsJ,IAAeztJ,EAAAA,GAAAA,IAAO,MAAO,CACjCzhD,KAAM,UACNohD,KAAM,WACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAOqvM,SAAUxtJ,EAAW6+F,OAAS1gJ,EAAO0gJ,MAAO7+F,EAAWytJ,eAAiBtvM,EAAOsvM,cAAeztJ,EAAW0tJ,aAAevvM,EAAOuvM,YAAa1tJ,EAAW2tJ,aAAexvM,EAAOwvM,YAA5L,GAPiB7tJ,EASlB,QAAC,WACFE,GADC,SAEGn7C,EAAAA,EAAAA,GAAS,CACbjN,SAAU,WACV2pD,QAAS,eACTnhD,KAAM,WACN+/I,WAAY,UACXngG,EAAW6+F,OAAS,CACrB2I,UAAW,SACXv8H,MAAO,QACN+0B,EAAWytJ,eAAiB,CAE7BG,eAAgB,OAEhB,uBAAwB,CACtBrsJ,QAAS,SAGVvB,EAAW0tJ,aAAe,CAC3BlmD,UAAW,OACXD,UAAW,UACVvnG,EAAW2tJ,aAAe,CAC3BpmD,UAAW,OACXC,UAAW,UAvBV,IAyBGqmD,IAAgB/tJ,EAAAA,GAAAA,IAAO,MAAO,CAClCzhD,KAAM,UACNohD,KAAM,gBACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAO2vM,cAAe9tJ,EAAW0iF,UAAYvkI,EAAO4vM,sBAAuB/tJ,EAAWguJ,UAAY7vM,EAAO6vM,SAAjH,GAPkBluJ,EASnB,QAAC,WACFE,GADC,SAEGn7C,EAAAA,EAAAA,GAAS,CACb08C,QAAS,QACRvB,EAAW0iF,UAAY,CACxBme,cAAe,UACd7gG,EAAWguJ,UAAY,CACxBprE,eAAgB,UAPf,IASGqrE,IAAgBnuJ,EAAAA,GAAAA,IAAO,OAAQ,CACnCzhD,KAAM,UACNohD,KAAM,YACNM,kBAAmB,CAAC5nD,EAAOgG,IAAWA,EAAO+vM,WAHzBpuJ,EAInB,QAAC,WACFE,EADE,MAEF54C,GAFC,SAGGvC,EAAAA,EAAAA,GAAS,CACbjN,SAAU,WACV0pD,OAAQ,EACRg8E,OAAQ,EACRryG,MAAO,OACPu2B,WAAYp6C,EAAMq6C,YAAYjjD,UACC,YAA9BwhD,EAAWmuJ,gBAAgC,CAC5C/2E,iBAAkBhwH,EAAM66C,MAAQ76C,GAAO86C,QAAQsC,QAAQrC,MACxB,cAA9BnC,EAAWmuJ,gBAAkC,CAC9C/2E,iBAAkBhwH,EAAM66C,MAAQ76C,GAAO86C,QAAQuC,UAAUtC,MACxDnC,EAAW0iF,UAAY,CACxBphF,OAAQ,OACRr2B,MAAO,EACPs7C,MAAO,GAhBN,IAkBG6nI,IAAoBtuJ,EAAAA,GAAAA,KNtLX,SAAuB3nD,GACpC,MAAM,SACJulJ,GACEvlJ,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,IAE7CyuJ,EAAkB/uM,EAAAA,SAClBw6H,EAAUx6H,EAAAA,OAAa,MAEvBgvM,EAAkB,KACtBD,EAAgBjmM,QAAU0xH,EAAQ1xH,QAAQm1J,aAAezjC,EAAQ1xH,QAAQw3H,YAAzE,EAuBF,OApBAtgI,EAAAA,WAAgB,KACd,MAAMw/H,GAAexiE,EAAAA,GAAAA,IAAS,KAC5B,MAAMiyI,EAAaF,EAAgBjmM,QACnCkmM,IAEIC,IAAeF,EAAgBjmM,SACjCs1I,EAAS2wD,EAAgBjmM,QAC1B,IAEGy0H,GAAkBv/D,EAAAA,GAAAA,GAAYw8D,EAAQ1xH,SAE5C,OADAy0H,EAAgBjuE,iBAAiB,SAAUkwE,GACpC,KACLA,EAAapiE,QACbmgE,EAAgB9oC,oBAAoB,SAAU+qC,EAA9C,CAFF,GAIC,CAAC4e,IACJp+I,EAAAA,WAAgB,KACdgvM,IACA5wD,EAAS2wD,EAAgBjmM,QAAzB,GACC,CAACs1I,KACgBj6F,EAAAA,EAAAA,KAAK,OAAO5+C,EAAAA,EAAAA,GAAS,CACvCyrD,MAAOnyD,GACPgB,IAAK26H,GACJ/4G,GACJ,GMiJ+C,CAC9C1iB,KAAM,UACNohD,KAAM,iBAFkBK,CAGvB,CACD0nG,UAAW,OACXD,UAAW,SAEXqmD,eAAgB,OAEhB,uBAAwB,CACtBrsJ,QAAS,UAIPitJ,GAAwB,CAAC,EAE/B,MAAMC,GAAoBnvM,EAAAA,YAAiB,SAAckjD,EAASrjD,GAChE,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,YAEF+I,EAAQ4nD,KACRuvG,EAA4B,QAApBn3J,EAAMu+C,WAGlB,aAAcg6G,EACd,kBAAmB+uC,EAFf,OAGJtsJ,EAHI,SAIJ4rJ,GAAW,EACX51M,SAAUmlJ,EALN,UAMJr2I,EANI,UAOJkO,EAAY,MAPR,yBAQJu5L,GAA2B,EARvB,eASJR,EAAiB,UATb,SAUJzwD,EAVI,YAWJjC,EAAc,aAXV,sBAYJmzD,EAAwB7B,GAZpB,cAaJM,EAAgB,OAbZ,sBAcJwB,EAdI,kBAeJC,EAAoB,CAAC,EAfjB,qBAgBJC,EAAuB,CAAC,EAhBpB,UAiBJC,EAAY,UAjBR,MAkBJx4M,EAlBI,QAmBJ67D,EAAU,WAnBN,iBAoBJ48I,GAAmB,GACjB92M,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,IAE7CsvJ,EAAyB,eAAZ78I,EACbqwE,EAA2B,aAAhB+Y,EACX0zD,EAAczsE,EAAW,YAAc,aACvCt/G,EAAQs/G,EAAW,MAAQ,OAC3BtrI,EAAMsrI,EAAW,SAAW,QAC5B0sE,EAAa1sE,EAAW,eAAiB,cACzCnnI,EAAOmnI,EAAW,SAAW,QAE7B1iF,GAAan7C,EAAAA,EAAAA,GAAS,CAAC,EAAG1M,EAAO,CACrCid,YACAu5L,2BACAR,iBACA1yD,cACA/Y,WACA2qE,gBACA2B,YACA38I,UACA48I,mBACApwD,OAAQqwD,EACRzB,cAAeyB,IAAeD,EAC9BvB,YAAawB,IAAexsE,EAC5BirE,YAAauB,GAAcxsE,EAC3BsrE,SAAUA,IAAakB,EACvB5B,yBAA0BqB,IAGtB1rJ,EA1MkBjD,KACxB,MAAM,SACJ0iF,EADI,MAEJmc,EAFI,cAGJ4uD,EAHI,YAIJC,EAJI,YAKJC,EALI,SAMJK,EANI,wBAOJV,EAPI,QAQJrqJ,GACEjD,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAQ0qI,GAAY,YAC3B8qE,SAAU,CAAC,WAAY3uD,GAAS,QAAS4uD,GAAiB,gBAAiBC,GAAe,cAAeC,GAAe,eACxHG,cAAe,CAAC,gBAAiBprE,GAAY,wBAAyBsrE,GAAY,YAClFE,UAAW,CAAC,aACZb,cAAe,CAAC,gBAAiBC,GAA2B,2BAC5DI,YAAa,CAACA,GAAe,eAC7BD,cAAe,CAACA,GAAiB,kBAEnC,OAAOtqJ,EAAAA,GAAAA,GAAeD,EAAOgqJ,GAAqBjqJ,EAAlD,EAsLgBG,CAAkBpD,GAQlC,MAAO4lF,EAASypE,GAAc/vM,EAAAA,UAAe,IACtCgwM,EAAgBC,GAAqBjwM,EAAAA,SAAekvM,KACpDgB,EAAeC,GAAoBnwM,EAAAA,SAAe,CACvD8jB,OAAO,EACPhsB,KAAK,KAEAs4M,EAAeC,GAAoBrwM,EAAAA,SAAe,CACvDutG,SAAU,SACV+gG,eAAgB,IAEZgC,EAAe,IAAIv3G,IACnBw3G,EAAUvwM,EAAAA,OAAa,MACvBwwM,EAAaxwM,EAAAA,OAAa,MAE1BywM,EAAc,KAClB,MAAMC,EAAWH,EAAQznM,QACzB,IAAI6nM,EAkBAC,EAhBJ,GAAIF,EAAU,CACZ,MAAMtzE,EAAOszE,EAASrzE,wBAEtBszE,EAAW,CACTtwE,YAAaqwE,EAASrwE,YACtBz6B,WAAY8qG,EAAS9qG,WACrBE,UAAW4qG,EAAS5qG,UACpB+qG,qBAAsBhE,GAAwB6D,EAAU5oM,EAAMu+C,WAC9DymJ,YAAa4D,EAAS5D,YACtBjnG,IAAKu3B,EAAKv3B,IACVm4B,OAAQZ,EAAKY,OACbh3D,KAAMo2D,EAAKp2D,KACXC,MAAOm2D,EAAKn2D,MAEf,CAID,GAAIypI,IAAsB,IAAVx5M,EAAiB,CAC/B,MAAM4B,EAAW03M,EAAW1nM,QAAQhQ,SAEpC,GAAIA,EAAS3E,OAAS,EAAG,CACvB,MAAM28M,EAAMh4M,EAASw3M,EAAavzM,IAAI7F,IAElCZ,EAMJs6M,EAAUE,EAAMA,EAAIzzE,wBAA0B,IAS/C,CACF,CAED,MAAO,CACLszE,WACAC,UAFF,EAMIG,GAAuB5yI,EAAAA,GAAAA,IAAiB,KAC5C,MAAM,SACJwyI,EADI,QAEJC,GACEH,IACJ,IACIO,EADAC,EAAa,EAGjB,GAAI7tE,EACF4tE,EAAiB,MAEbJ,GAAWD,IACbM,EAAaL,EAAQ/qG,IAAM8qG,EAAS9qG,IAAM8qG,EAAS7qG,gBAKrD,GAFAkrG,EAAiB/xC,EAAQ,QAAU,OAE/B2xC,GAAWD,EAAU,CACvB,MAAMO,EAAajyC,EAAQ0xC,EAASE,qBAAuBF,EAAStwE,YAAcswE,EAAS7D,YAAc6D,EAAS/qG,WAClHqrG,GAAchyC,GAAS,EAAI,IAAM2xC,EAAQI,GAAkBL,EAASK,GAAkBE,EACvF,CAGH,MAAMC,EAAoB,CACxB,CAACH,GAAiBC,EAElB,CAACh1M,GAAO20M,EAAUA,EAAQ30M,GAAQ,GAIpC,GAAIgxF,MAAM+iH,EAAegB,KAAoB/jH,MAAM+iH,EAAe/zM,IAChEg0M,EAAkBkB,OACb,CACL,MAAMC,EAASz6M,KAAKD,IAAIs5M,EAAegB,GAAkBG,EAAkBH,IACrEK,EAAQ16M,KAAKD,IAAIs5M,EAAe/zM,GAAQk1M,EAAkBl1M,KAE5Dm1M,GAAU,GAAKC,GAAS,IAC1BpB,EAAkBkB,EAErB,KAGGG,EAAS,SAACC,GAEL,IAFkB,UAC3BzqG,GAAY,GACH,uDAAP,CAAC,EACCA,EACFkmG,GAAQ6C,EAAaU,EAAQznM,QAASyoM,EAAa,CACjD90J,SAAU30C,EAAMq6C,YAAY1F,SAASiP,WAGvC6kJ,EAAQznM,QAAQ+mM,GAAe0B,CAElC,EAEKC,EAAiBxmK,IACrB,IAAIumK,EAAchB,EAAQznM,QAAQ+mM,GAE9BzsE,EACFmuE,GAAevmK,GAEfumK,GAAevmK,GAASi0H,GAAS,EAAI,GAErCsyC,GAAetyC,GAAgC,YAAvB0tC,MAAoC,EAAI,GAGlE2E,EAAOC,EAAP,EAGIE,GAAgB,KACpB,MAAMC,EAAgBnB,EAAQznM,QAAQgnM,GACtC,IAAI6B,EAAY,EAChB,MAAM74M,EAAW4E,MAAM9G,KAAK45M,EAAW1nM,QAAQhQ,UAE/C,IAAK,IAAI/C,EAAI,EAAGA,EAAI+C,EAAS3E,OAAQ4B,GAAK,EAAG,CAC3C,MAAM+6M,EAAMh4M,EAAS/C,GAErB,GAAI47M,EAAYb,EAAIhB,GAAc4B,EAAe,CAGrC,IAAN37M,IACF47M,EAAYD,GAGd,KACD,CAEDC,GAAab,EAAIhB,EAClB,CAED,OAAO6B,CAAP,EAGIC,GAAyB,KAC7BJ,GAAgB,EAAIC,KAApB,EAGII,GAAuB,KAC3BL,EAAeC,KAAf,EAKIK,GAA4B9xM,EAAAA,aAAkBsuM,IAClD+B,EAAiB,CACf9iG,SAAU,KACV+gG,kBAFF,GAIC,IA6BGyD,IAAyB5zI,EAAAA,GAAAA,IAAiB2oC,IAC9C,MAAM,SACJ6pG,EADI,QAEJC,GACEH,IAEJ,GAAKG,GAAYD,EAIjB,GAAIC,EAAQ9sL,GAAS6sL,EAAS7sL,GAAQ,CAEpC,MAAMkuL,EAAkBrB,EAASd,IAAgBe,EAAQ9sL,GAAS6sL,EAAS7sL,IAC3EwtL,EAAOU,EAAiB,CACtBlrG,aAEH,MAAM,GAAI8pG,EAAQ94M,GAAO64M,EAAS74M,GAAM,CAEvC,MAAMk6M,EAAkBrB,EAASd,IAAgBe,EAAQ94M,GAAO64M,EAAS74M,IACzEw5M,EAAOU,EAAiB,CACtBlrG,aAEH,KAEGmrG,IAA0B9zI,EAAAA,GAAAA,IAAiB,KAC/C,GAAIyxI,IAAgC,IAAlB7B,EAAyB,CACzC,MAAM,UACJjoG,EADI,aAEJ6hD,EAFI,aAGJrnB,EAHI,YAIJwsE,EAJI,YAKJzsE,GACEkwE,EAAQznM,QACZ,IAAIopM,EACAC,EAEJ,GAAI/uE,EACF8uE,EAAkBpsG,EAAY,EAC9BqsG,EAAgBrsG,EAAY6hD,EAAernB,EAAe,MACrD,CACL,MAAM16B,EAAainG,GAAwB0D,EAAQznM,QAAShB,EAAMu+C,WAElE6rJ,EAAkBjzC,EAAQr5D,EAAaknG,EAAczsE,EAAc,EAAIz6B,EAAa,EACpFusG,EAAiBlzC,EAAqDr5D,EAAa,EAA1DA,EAAaknG,EAAczsE,EAAc,CACnE,CAEG6xE,IAAoBhC,EAAcpsL,OAASquL,IAAkBjC,EAAcp4M,KAC7Eq4M,EAAiB,CACfrsL,MAAOouL,EACPp6M,IAAKq6M,GAGV,KAEHnyM,EAAAA,WAAgB,KACd,MAAMw/H,GAAexiE,EAAAA,GAAAA,IAAS,KAOxBuzI,EAAQznM,UACVioM,IACAkB,KACD,IAEGlT,GAAM/gI,EAAAA,GAAAA,GAAYuyI,EAAQznM,SAEhC,IAAI2oJ,EASJ,OAVAstC,EAAIzvI,iBAAiB,SAAUkwE,GAGD,qBAAnBkyB,iBACTD,EAAiB,IAAIC,eAAelyB,GACpC9hI,MAAM9G,KAAK45M,EAAW1nM,QAAQhQ,UAAUzD,SAAQ4W,IAC9CwlJ,EAAeE,QAAQ1lJ,EAAvB,KAIG,KACLuzH,EAAapiE,QACb2hI,EAAItqG,oBAAoB,SAAU+qC,GAE9BiyB,GACFA,EAAeG,YAChB,CANH,GAQC,CAACm/C,EAAsBkB,KAC1B,MAAMG,GAAmBpyM,EAAAA,SAAc,KAAMg9D,EAAAA,GAAAA,IAAS,KACpDi1I,IAAyB,KACvB,CAACA,KACLjyM,EAAAA,WAAgB,IACP,KACLoyM,GAAiBh1I,OAAjB,GAED,CAACg1I,KACJpyM,EAAAA,WAAgB,KACd+vM,GAAW,EAAX,GACC,IACH/vM,EAAAA,WAAgB,KACd+wM,IACAkB,IAAyB,IAE3BjyM,EAAAA,WAAgB,KAEd+xM,GAAuB7C,KAA0Bc,EAAjD,GACC,CAAC+B,GAAwB/B,IAC5BhwM,EAAAA,oBAA0B8iD,GAAQ,KAAM,CACtCuvJ,gBAAiBtB,EACjBuB,oBAAqBL,MACnB,CAAClB,EAAsBkB,KAE3B,MAAMrD,IAAyBzqJ,EAAAA,EAAAA,KAAKwqJ,IAAeppM,EAAAA,EAAAA,GAAS,CAAC,EAAGiqM,EAAmB,CACjF5nM,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQirJ,UAAWY,EAAkB5nM,WACrD84C,WAAYA,EACZsQ,OAAOzrD,EAAAA,EAAAA,GAAS,CAAC,EAAGyqM,EAAgBR,EAAkBx+I,UAGxD,IAAIuhJ,GAAa,EACjB,MAAMz5M,GAAWkH,EAAAA,SAAAA,IAAmBi+I,GAAchyI,IAChD,IAAmBjM,EAAAA,eAAqBiM,GACtC,OAAO,KAST,MAAMumM,OAAmC59M,IAAtBqX,EAAMpT,MAAM3B,MAAsBq7M,GAAatmM,EAAMpT,MAAM3B,MAC9Eo5M,EAAatzM,IAAIw1M,EAAYD,IAC7B,MAAM7sJ,EAAW8sJ,IAAet7M,EAEhC,OADAq7M,IAAc,EACMvyM,EAAAA,aAAmBiM,GAAO1G,EAAAA,EAAAA,GAAS,CACrDwtJ,UAAuB,cAAZhgG,EACX67I,UAAWlpJ,IAAa4gF,GAAWsoE,GACnClpJ,WACA6pJ,wBACAnxD,WACAsxD,YACAx4M,MAAOs7M,GACS,IAAfD,KAA8B,IAAVr7M,GAAoB+U,EAAMpT,MAAM+xI,SAEnD,CAAC,EAF6D,CAChEA,SAAU,IATZ,IA4DI6nE,GA5NyB,MAC7B,MAAMA,EAAsB,CAAC,EAC7BA,EAAoBC,sBAAwB9C,GAA0BzrJ,EAAAA,EAAAA,KAAK2qJ,GAAmB,CAC5F1wD,SAAU0zD,GACVlqM,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQyqJ,YAAazqJ,EAAQwqJ,iBAC1C,KACL,MAAMwE,EAAsBzC,EAAcpsL,OAASosL,EAAcp4M,IAC3D86M,EAAoBhD,IAAiC,SAAlB7B,GAA4B4E,IAAyC,IAAlB5E,GAiB5F,OAhBA0E,EAAoBI,kBAAoBD,GAAiCzuJ,EAAAA,EAAAA,KAAKmrJ,GAAuB/pM,EAAAA,EAAAA,GAAS,CAC5G42I,YAAaA,EACb91F,UAAW44G,EAAQ,QAAU,OAC7BnjD,QAAS81F,GACT5uJ,UAAWktJ,EAAcpsL,OACxB2rL,EAAsB,CACvB7nM,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQoqJ,cAAe0B,EAAqB7nM,cACxD,KACN6qM,EAAoBK,gBAAkBF,GAAiCzuJ,EAAAA,EAAAA,KAAKmrJ,GAAuB/pM,EAAAA,EAAAA,GAAS,CAC1G42I,YAAaA,EACb91F,UAAW44G,EAAQ,OAAS,QAC5BnjD,QAAS+1F,GACT7uJ,UAAWktJ,EAAcp4M,KACxB23M,EAAsB,CACvB7nM,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQoqJ,cAAe0B,EAAqB7nM,cACxD,KACC6qM,CAAP,EAoM0BM,GAC5B,OAAoBhvJ,EAAAA,EAAAA,MAAM8pJ,IAAUtoM,EAAAA,EAAAA,GAAS,CAC3CqC,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQjrD,KAAMkP,GAC9B84C,WAAYA,EACZ7gD,IAAKA,EACL8H,GAAImO,GACH2L,EAAO,CACR3oB,SAAU,CAAC25M,GAAoBI,kBAAmBJ,GAAoBC,uBAAoC3uJ,EAAAA,EAAAA,MAAMkqJ,GAAc,CAC5HrmM,UAAW+7C,EAAQuqJ,SACnBxtJ,WAAYA,EACZsQ,MAAO,CACLu8C,SAAU6iG,EAAc7iG,SACxB,CAAC61B,EAAW,SAAH,OAAY67B,EAAQ,OAAS,SAAY,gBAAiB0wC,OAAmB/6M,GAAaw7M,EAAc9B,gBAEnHzuM,IAAK0wM,EACLyC,SAAUZ,GACVt5M,SAAU,EAAcqrD,EAAAA,EAAAA,KAAKoqJ,GAAe,CAC1C,aAAcluC,EACd,kBAAmB+uC,EACnB,mBAAoC,aAAhBjzD,EAA6B,WAAa,KAC9Dv0I,UAAW+7C,EAAQ6qJ,cACnB9tJ,WAAYA,EACZ2pF,UArEgB77E,IACpB,MAAMqsG,EAAO21C,EAAW1nM,QAClByyJ,GAAelsG,EAAAA,GAAAA,GAAcwrG,GAAM9qE,cAMzC,GAAa,QAFAwrE,EAAa39J,aAAa,QAGrC,OAGF,IAAIq1M,EAAkC,eAAhB92D,EAA+B,YAAc,UAC/D+2D,EAA8B,eAAhB/2D,EAA+B,aAAe,YAQhE,OANoB,eAAhBA,GAAgC8iB,IAElCg0C,EAAkB,aAClBC,EAAc,aAGR1kJ,EAAMx5D,KACZ,KAAKi+M,EACHzkJ,EAAM0tC,iBACNo/D,GAAUT,EAAMU,EAAcR,IAC9B,MAEF,KAAKm4C,EACH1kJ,EAAM0tC,iBACNo/D,GAAUT,EAAMU,EAAcX,IAC9B,MAEF,IAAK,OACHpsG,EAAM0tC,iBACNo/D,GAAUT,EAAM,KAAMD,IACtB,MAEF,IAAK,MACHpsG,EAAM0tC,iBACNo/D,GAAUT,EAAM,KAAME,IAlB1B,EAiDIl7J,IAAK2wM,EACLtsJ,KAAM,UACNprD,SAAUA,KACRwtI,GAAWsoE,MACb6D,GAAoBK,mBAE3B,IAiKD,MCr2BO,SAASK,GAAmBhzJ,GACjC,OAAOC,EAAAA,GAAAA,GAAqB,SAAUD,EACvC,CACD,MACA,IADmBE,EAAAA,GAAAA,GAAuB,SAAU,CAAC,OAAQ,YAAa,mBAAoB,mBAAoB,qBAAsB,WAAY,WAAY,YAAa,UAAW,gBCFlLC,GAAY,CAAC,YAAa,WAAY,qBAAsB,YAAa,OAAQ,eAAgB,YAAa,QAAS,WAAY,UAAW,UAAW,WAAY,wBAAyB,YAAa,QAAS,WA+BpN8yJ,IAAU5yJ,EAAAA,GAAAA,IAAOopF,GAAY,CACjC7qI,KAAM,SACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAOnG,KAAMgoD,EAAWp5C,OAASo5C,EAAWwF,MAAQrnD,EAAOw0M,UAAWx0M,EAAO,YAAD,QAAa+hD,EAAAA,GAAAA,GAAWF,EAAWgvJ,aAAehvJ,EAAWqyG,WAAal0J,EAAOk0J,UAAWryG,EAAW4yJ,SAAWz0M,EAAOy0M,QAA7M,GAPY9yJ,EASb,QAAC,MACF14C,EADE,WAEF44C,GAFC,SAGGn7C,EAAAA,EAAAA,GAAS,CAAC,EAAGuC,EAAMy6C,WAAWuH,OAAQ,CAC1C6O,SAAU,IACVK,SAAU,GACV1gE,SAAU,WACVmsD,UAAW,GACXxjD,WAAY,EACZiqB,QAAS,YACTqiF,SAAU,SACVszC,WAAY,SACZ1nF,UAAW,UACVzY,EAAWp5C,OAAS,CACrBi6I,cAA2C,QAA5B7gG,EAAW6yJ,cAAsD,WAA5B7yJ,EAAW6yJ,aAA4B,SAAW,OACrG,CACDtxM,WAAY,MACXy+C,EAAWwF,MAAQxF,EAAWp5C,OAAS,CACxCm9C,UAAW,GACXivG,WAAY,EACZsD,cAAe,EACf,CAAC,QAAD,OAASw8C,GAAAA,eAA2BjuM,EAAAA,EAAAA,GAAS,CAAC,EAA+B,QAA5Bm7C,EAAW6yJ,cAA0B,CACpF51D,aAAc,GACe,WAA5Bj9F,EAAW6yJ,cAA6B,CACzC71D,UAAW,GACkB,UAA5Bh9F,EAAW6yJ,cAA4B,CACxCvwE,YAAal7H,EAAMivD,QAAQ,IACE,QAA5BrW,EAAW6yJ,cAA0B,CACtCzwE,WAAYh7H,EAAMivD,QAAQ,MAEF,YAAzBrW,EAAWgvJ,WAA2B,CACvC/uJ,MAAO,UACPz+C,QAAS,GAET,CAAC,KAAD,OAAMsxM,GAAAA,WAAwB,CAC5BtxM,QAAS,GAEX,CAAC,KAAD,OAAMsxM,GAAAA,WAAwB,CAC5BtxM,SAAU4F,EAAM66C,MAAQ76C,GAAO86C,QAAQE,OAAO+C,kBAEtB,YAAzBnF,EAAWgvJ,WAA2B,CACvC/uJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQ59B,KAAKmgC,UAC1C,CAAC,KAAD,OAAMquJ,GAAAA,WAAwB,CAC5B7yJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQsC,QAAQrC,MAE/C,CAAC,KAAD,OAAM2wJ,GAAAA,WAAwB,CAC5B7yJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQ59B,KAAKg+B,WAElB,cAAzBtC,EAAWgvJ,WAA6B,CACzC/uJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQ59B,KAAKmgC,UAC1C,CAAC,KAAD,OAAMquJ,GAAAA,WAAwB,CAC5B7yJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQuC,UAAUtC,MAEjD,CAAC,KAAD,OAAM2wJ,GAAAA,WAAwB,CAC5B7yJ,OAAQ74C,EAAM66C,MAAQ76C,GAAO86C,QAAQ59B,KAAKg+B,WAE3CtC,EAAWqyG,WAAa,CACzB9xJ,WAAY,EACZF,SAAU,EACV0yM,UAAW,EACX96I,SAAU,QACTjY,EAAW4yJ,SAAW,CACvBzyJ,SAAU/4C,EAAMy6C,WAAWC,QAAQ,KA9DlC,IAgEGkxJ,GAAmB1zM,EAAAA,YAAiB,SAAakjD,EAASrjD,GAC9D,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,YAGF,UACJ6I,EADI,SAEJo7C,GAAW,EAFP,mBAGJsqF,GAAqB,EAHjB,UAKJylB,EACA7sG,KAAMqgJ,EANF,aAOJgN,EAAe,MAPX,UASJ3E,EATI,MAUJtnM,EAVI,SAWJ82I,EAXI,QAYJtiC,EAZI,QAaJtsD,EAbI,SAeJ9J,EAfI,sBAiBJ6pJ,EAjBI,UAmBJG,EAAY,UAnBR,MAoBJx4M,EApBI,QAqBJo8M,GAAU,GACRz6M,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,IAE7CI,GAAan7C,EAAAA,EAAAA,GAAS,CAAC,EAAG1M,EAAO,CACrCmqD,WACAsqF,qBACA5nF,WACAQ,OAAQqgJ,EACRgN,eACAjsM,QAASA,EACTyrJ,YACA28C,YACA4D,YAGI3vJ,EAtIkBjD,KACxB,MAAM,QACJiD,EADI,UAEJ+rJ,EAFI,UAGJ38C,EAHI,QAIJugD,EAJI,KAKJptJ,EALI,MAMJ5+C,EANI,SAOJo+C,EAPI,SAQJ1C,GACEtC,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAQwtD,GAAQ5+C,GAAS,YAA1B,oBAAmDs5C,EAAAA,GAAAA,GAAW8uJ,IAAc38C,GAAa,YAAaugD,GAAW,UAAW5tJ,GAAY,WAAY1C,GAAY,YACtK2wJ,YAAa,CAAC,gBAEhB,OAAO9vJ,EAAAA,GAAAA,GAAeD,EAAOuvJ,GAAoBxvJ,EAAjD,EAuHgBG,CAAkBpD,GAC5BwF,EAAOqgJ,GAAYj/L,GAAsBtH,EAAAA,eAAqBumM,GAAyBvmM,EAAAA,aAAmBumM,EAAU,CACxH3+L,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQgwJ,YAAapN,EAAS1tM,MAAM+O,aACjD2+L,EAsBL,OAAoBxiJ,EAAAA,EAAAA,MAAMqvJ,IAAS7tM,EAAAA,EAAAA,GAAS,CAC1CykI,aAAcsD,EACd1lI,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQjrD,KAAMkP,GAC9B/H,IAAKA,EACLqkD,KAAM,MACN,gBAAiBwB,EACjB1C,SAAUA,EACV84D,QA3BkBttD,KACb9I,GAAY04F,GACfA,EAAS5vF,EAAOt3D,GAGd4kH,GACFA,EAAQttD,EACT,EAqBDgB,QAlBkBhB,IACd+gJ,IAA0B7pJ,GAAY04F,GACxCA,EAAS5vF,EAAOt3D,GAGds4D,GACFA,EAAQhB,EACT,EAYD9N,WAAYA,EACZkqF,SAAUllF,EAAW,GAAK,GACzBjkC,EAAO,CACR3oB,SAAU,CAAkB,QAAjBy6M,GAA2C,UAAjBA,GAAwCxvJ,EAAAA,EAAAA,MAAM/jD,EAAAA,SAAgB,CACjGlH,SAAU,CAACotD,EAAM5+C,MACDy8C,EAAAA,EAAAA,MAAM/jD,EAAAA,SAAgB,CACtClH,SAAU,CAACwO,EAAO4+C,KAChB0oJ,KAEP,IA8FD,MC7PA,GA5B8BhyL,IAC5B,MAAOypJ,EAAiButC,IAAsB18F,EAAAA,EAAAA,YACxC28F,GAAc98F,EAAAA,EAAAA,UAClB,IAAMn6F,EAASA,UACf,CAACA,EAASA,WAqBZ,OAlBAg6F,EAAAA,EAAAA,YAAU,KACR,MAAMk9F,EAAmB9T,GACvB4T,EAAmB5T,EAAU,IAW/B,OATApjL,EACGm3L,KAAK,sBAAuB,IAC5Bl2L,KAAKi2L,GACLp4L,OAAOpM,IACNnB,QAAQmB,MAAMA,EAAd,IAGJukM,EAAY33L,GAAG,kBAAmB43L,GAE3B,KACLD,EAAY13L,eAAe,kBAAmB23L,EAA9C,CADF,GAGC,CAACl3L,EAAUi3L,IAEPxtC,CAAP,EC1BK,IAAK2tC,IAAZ,SAAYA,GAAAA,EAAAA,EAAAA,SAAAA,GAAAA,WAAAA,EAAAA,EAAAA,MAAAA,GAAAA,OAAAA,CAAZ,CAAYA,KAAAA,GAAAA,CAAAA,IAKZ,MAiCA,GAjC2B,CACzBp3L,EACAulI,KAEA,MAAO8xD,EAAiBC,IAAsBh9F,EAAAA,EAAAA,UAC5C88F,GAAQG,OAEJN,GAAc98F,EAAAA,EAAAA,UAClB,IAAMn6F,EAASA,UACf,CAACA,EAASA,WAqBZ,OAlBAg6F,EAAAA,EAAAA,YAAU,KACR,MAAMw9F,EAAoBC,IACxB,MAAMhjC,EACJzmK,SAASu3I,EAA0B5kI,WAAa+0C,OAAO+hJ,GACnDL,GAAQM,SACRN,GAAQG,MAEdD,EAAmB7iC,EAAnB,EAMF,OAHAwiC,EAAY33L,GAAG,eAAgBk4L,GAC/Bx3L,EAASm3L,KAAK,cAAe,IAAIl2L,KAAKu2L,GAE/B,KACLP,EAAY13L,eAAe,eAAgBi4L,EAA3C,CADF,GAGC,CAACjyD,EAA2BvlI,EAAUi3L,IAElCI,CAAP,+DCvCK,MAAMlrM,GAAU,kXCAhB,MCIDC,GAAS,IAAIC,GAAAA,ODJI,kBCuBvB,SAASsrM,GAAmBljC,GACxB,MAAM1xK,EAAO,SAAS60M,EAAgB5gN,GACnB,MAAXA,IAAmBA,EAAU,CAAC,GAClC,MAAM6gN,EAA2B,GAEjC,GAAID,EAAUE,gBAAqC,MAAnB9gN,EAAQ+gN,OACpC,IACIF,EAAa//M,KAAK,IAAI8/M,EAAUE,eAAerjC,EAASz9K,EAAQ+gN,QAClD,CAAhB,MAAMrlM,GAAU,CAGtB,GAAIklM,EAAUI,mBAA2C,MAAtBhhN,EAAQihN,UACvC,IACIJ,EAAa//M,KAAK,IAAI8/M,EAAUI,kBAAkBvjC,EAASz9K,EAAQihN,WACrD,CAAhB,MAAMvlM,GAAU,CAGtB,GAAIklM,EAAUM,iBAAuC,MAApBlhN,EAAQmhN,QACrC,IACIN,EAAa//M,KAAK,IAAI8/M,EAAUM,gBAAgBzjC,EAASz9K,EAAQmhN,SACnD,CAAhB,MAAMzlM,GAAU,CAGtB,GAAIklM,EAAUQ,gBAAqC,MAAnBphN,EAAQqhN,OAAgB,CAKpD,MAAMnvL,EAAO,CAAE,SAAU,UAAW,UAAW,WAC/C,IACI,MAAMlJ,EAAW,IAAI43L,EAAUQ,eAAe3jC,EAASz9K,EAAQqhN,QAC3Dr4L,EAASy0J,UAAoD,IAAzCvrJ,EAAKtuB,QAAQolB,EAASy0J,QAAQtyK,OAClD01M,EAAa//M,KAAKkoB,EAER,CAAhB,MAAMtN,GAAU,CACrB,CAED,GAAIklM,EAAUU,oBAA6C,MAAvBthN,EAAQuhN,WACxC,IACIV,EAAa//M,KAAK,IAAI8/M,EAAUU,mBAAmB7jC,GACrC,CAAhB,MAAM/hK,GAAU,CAGtB,GAAIklM,EAAUY,cAAiC,MAAjBxhN,EAAQyhN,KAClC,IACI,MAAMvvL,EAAO,CAAE,WACTlJ,EAAW,IAAI43L,EAAUY,aAAa/jC,EAASz9K,EAAQyhN,MACzDz4L,EAASy0J,UAAoD,IAAzCvrJ,EAAKtuB,QAAQolB,EAASy0J,QAAQtyK,OAClD01M,EAAa//M,KAAKkoB,EAER,CAAhB,MAAMtN,GAAU,CAGtB,GAA4B,IAAxBmlM,EAAatgN,OAAgB,OAAO,KAExC,GAAIqgN,EAAUc,iBAAkB,CAC5B,IAAIC,EAAS,EAMb,OALsB,MAAlB3hN,EAAQ2hN,OACRA,EAAS3hN,EAAQ2hN,OACE,cAAZlkC,IACPkkC,EAAS,GAEN,IAAIf,EAAUc,iBAAiBb,EAAcc,EACvD,CAED,OAAOd,EAAa,EACvB,EAMD,OAJA90M,EAAK61M,UAAY,SAASnkC,GACtB,OAAOkjC,GAAmBljC,EAC7B,EAEM1xK,CACV,CAED,SAAS81M,GAAmBt8K,EAAak4I,GACrC,MAAM1xK,EAAO,SAAS60M,EAAgB5gN,GAClC,OAAI4gN,EAAUkB,gBACH,IAAIlB,EAAUkB,gBAAgBv8K,EAAKk4I,GAGvC,IACV,EAMD,OAJA1xK,EAAK61M,UAAY,SAASnkC,GACtB,OAAOokC,GAAmBt8K,EAAKk4I,EAClC,EAEM1xK,CACV,CAED,MAAMg2M,GAAqB,CACvBp4L,QAAS,EACTq4L,WAAY,6CACZ72M,KAAM,YACN82M,iBAAkBtB,GAAmB,cAGnCuB,GAAmB,CACrBv4L,QAAS,EACTq4L,WAAY,6CACZ72M,KAAM,UACN82M,iBAAkBtB,GAAmB,YAGnCwB,GAAyB,CAC3Bx4L,QAAS,GACTxe,KAAM,gBACN82M,iBAAkBJ,GAAmB,sCAAuC,kBAI1EO,GAAwC,CAC1CC,YAAa,CAAE14L,QAAS,EAAGxe,KAAM,eAEjC42M,UAAWA,GACXO,QAASP,GAETQ,OAAQ,CAAE54L,QAAS,EAAGxe,KAAM,UAE5B+2M,QAASA,GACTM,QAASN,GAETO,QAAS,CACL94L,QAAS,EACTq4L,WAAY,6CACZ72M,KAAM,UACN82M,iBAAkBtB,GAAmB,YAGzC+B,MAAO,CACH/4L,QAAS,GACTxe,KAAM,QACN82M,iBAAkBtB,GAAmB,UAGzCgC,OAAQ,CACJh5L,QAAS,EACTq4L,WAAY,6CACZ72M,KAAM,SACN82M,iBAAkBtB,GAAmB,WAGzCiC,SAAU,CAAEj5L,QAAS,QAASxe,KAAM,YAEpC03M,QAAS,CACLl5L,QAAS,SACTxe,KAAM,UACN82M,iBAAkBtB,GAAmB,YAKzCmC,QAAS,CACLn5L,QAAS,GACTxe,KAAM,UACN82M,iBAAkBJ,GAAmB,mCAAqC,YAG9EkB,cAAe,CAAEp5L,QAAS,GAAIxe,KAAM,iBAEpCg3M,cAAeA,GACfa,eAAgBb,GAEhBc,aAAc,CACVt5L,QAAS,EACTxe,KAAM,eACN82M,iBAAkBJ,GAAmB,qCAAuC,iBAGhFqB,KAAM,CAAEv5L,QAAS,IAAKxe,KAAM,QAE5Bg4M,MAAO,CACHx5L,QAAS,IACTxe,KAAM,QACN82M,iBAAkBtB,GAAmB,UAEzCyC,SAAU,CAAEz5L,QAAS,MAAOxe,KAAM,YAElCk4M,SAAU,CACN15L,QAAS,GACTxe,KAAM,WACN82M,iBAAkBtB,GAAmB,aAEzC,iBAAkB,CAAEh3L,QAAS,GAAIxe,KAAM,kBACvC,kBAAmB,CAAEwe,QAAS,IAAKxe,KAAM,mBAEzCm4M,SAAU,CAAE35L,QAAS,MAAOxe,KAAM,YAClC,mBAAoB,CAAEwe,QAAS,OAAQxe,KAAM,oBAC7C,kBAAmB,CAAEwe,QAAS,OAAQxe,KAAM,mBAE5Co4M,IAAK,CAAE55L,QAAS,GAAIxe,KAAM,OAC1Bq4M,KAAM,CAAE75L,QAAS,GAAIxe,KAAM,iICvNxB,MCYDiK,GAAS,IAAIC,GAAAA,OAAOF,IAiBpB,MAAOsuM,GAGT9sM,cACIzW,KAAKwjN,QAAUxjN,KAAKyjN,mBACvB,CAEDA,oBACI,MAAMD,EAA6B,CAAC,EAE9B9/L,EAAU1jB,KAAK0jB,QAAQhS,KAAK1R,MAC5B0jN,EAAY1jN,KAAK0jN,UAAUhyM,KAAK1R,MAChC4oB,EAAW5oB,KAAK4oB,SAASlX,KAAK1R,MAC9Boc,EAAOpc,KAAKoc,KAAK1K,KAAK1R,MACtB+G,EAAO/G,KAAK+G,KAAK2K,KAAK1R,MACtBstB,EAAMttB,KAAKstB,IAAI5b,KAAK1R,MACpB6nC,EAAS7nC,KAAK6nC,OAAOn2B,KAAK1R,MAC1B8E,EAAO9E,KAAK8E,KAAK4M,KAAK1R,MAmI5B,OA/HAwjN,EAAQv6L,YAAc,CAClBliB,KAAMA,EAENjC,KAAMA,EACNm+C,WAAYsgK,GAAUI,UAAU3jN,KAAKijD,WAAWvxC,KAAK1R,MAAO,MAE5D4jN,UAAWL,GAAUI,UAAU58M,EAAM,MACrC+3K,YAAaykC,GAAUI,UAAU97K,EAAQ,MACzCg8K,iBAAkBN,GAAUI,UAAU97K,EAAQ,MAE9Ci8K,cAAeP,GAAUI,UAAU97K,EAAQ,MAE3C/kC,KAAM4gB,EAIN8D,SAAU+7L,GAAUI,UAAUD,GAC9B37L,qBAAsBw7L,GAAUI,UAAUD,GAC1C57L,aAAcy7L,GAAUI,UAAUD,GAElCt5L,SAAUs5L,EACV15L,GAAIu5L,GAAUI,UAAUjgM,EAAS,MACjCtgB,MAAOsgN,EACPziN,MAAO4mC,EACPzrB,KAAMA,EAENoU,EAAG+yL,GAAUI,UAAU3jN,KAAK+jN,SAC5BtzL,EAAG8yL,GAAUI,UAAU3jN,KAAK+jN,SAC5BtjM,EAAG8iM,GAAUI,UAAU97K,GAEvBm8K,QAAST,GAAUI,UAAUjgM,EAAS,MAEtCrS,IAAKkyM,GAAUI,UAAUvnM,IAG7BonM,EAAQS,mBAAqB,CACzBnhN,KAAMygN,GAAUI,UAAUjgM,GAC1BziB,MAAOsiN,GAAUI,UAAU97K,GAC3Bzd,SAAUm5L,GAAUI,UAAUD,GAC9Bl8L,SAAU+7L,GAAUI,UAAUD,GAC9B37L,qBAAsBw7L,GAAUI,UAAUD,GAC1C57L,aAAcy7L,GAAUI,UAAUD,GAClC15L,GAAIu5L,GAAUI,UAAUjgM,GACxBtgB,MAAOmgN,GAAUI,UAAUD,GAC3BtnM,KAAMmnM,GAAUI,WA9CAljM,GAAoBzgB,KAAKoc,KAAKqE,GAAG,KA+CjD3b,KAAMy+M,GAAUI,UAAU97K,GAC1Bob,WAAYsgK,GAAUI,UAAU3jN,KAAKijD,WAAWvxC,KAAK1R,MAAO,OAGhEwjN,EAAQU,WAAa,CACjBL,iBAAkBh8K,EAClBi3I,YAAaj3I,EACbs8K,gBAAiBp9M,EACjB2c,QAASA,EACTkC,OAAQ29L,GAAUa,QAAQr9M,GAC1BqV,KAAMA,EACNioM,SAAUx8K,EACV+7K,UAAW78M,GAGfy8M,EAAQc,QAAU,CACdt6L,GAAIu5L,GAAUI,UAAU3jN,KAAK0jB,QAAS,MACtC5gB,KAAMygN,GAAUI,UAAU3jN,KAAK0jB,QAAS,MACxC6gM,gBAAiBhB,GAAUI,UAAUjgM,EAAS,MAC9CmgM,iBAAkBh8K,EAElBjjC,KAAM2+M,GAAUI,UAAUr2L,GAC1Bk3L,QAASd,EACTe,UAAWlB,GAAUI,UAAUvnM,GAC/BwnM,UAAW78M,EACXo9M,gBAAiBp9M,EACjB29M,KAAMnB,GAAUa,QAAQpkN,KAAKkkN,WAAWxyM,KAAK1R,OAC7C8+K,YAAaj3I,EACbi8K,cAAeP,GAAUI,UAAU97K,EAAQ,MAC3C88K,kBAAmBjB,EACnBkB,kBAAmBrB,GAAUI,UAAUD,GACvCn7J,OAAQg7J,GAAUI,UAAU97K,GAC5B/iC,KAAMA,GAGV0+M,EAAQj8L,MAAQ,CACZxgB,KAAMw8M,GAAUI,UAAU58M,GAC1B89M,WAAY99M,EACZ8gC,OAAQA,EAER/E,UAAW+E,EACX5mC,MAAOsiN,GAAUI,UAAUr2L,GAC3Bw3L,WAAY9kN,KAAK8kN,WAAWpzM,KAAK1R,MAEjCoqB,SAAUs5L,EACVc,QAASd,EAETqB,MAAOxB,GAAUI,UAAUjgM,GAC3BshM,UAAW5oM,EAEX6oM,aAAc1B,GAAUI,UAAUJ,GAAUa,QAAQr9M,IAEpDihB,cAAeu7L,GAAUI,UAAUD,IAGvCF,EAAQ0B,uBAAwBv7L,EAAAA,GAAAA,aAAY65L,EAAQj8L,OACpDi8L,EAAQ0B,sBAAsBD,aAAe1B,GAAUI,UAAUJ,GAAUa,QAAQpkN,KAAKmlN,oBAAoBzzM,KAAK1R,QAEjHwjN,EAAQpgM,OAAS,CACbgiM,UAAW7B,GAAUI,UAAU/6L,OAAU9nB,GACzCukN,QAAS9B,GAAUI,UAAU/6L,OAAU9nB,GACvC8iN,UAAWL,GAAUI,UAAU58M,OAAMjG,GACrC4iB,QAAS6/L,GAAUI,UAAUjgM,OAAS5iB,GACtC8kB,OAAQ29L,GAAUI,UAAU3jN,KAAK4lB,OAAOlU,KAAK1R,WAAOc,IAGxD0iN,EAAQ8B,UAAY,CAChBxmC,YAAaykC,GAAUI,UAAU97K,GACjC+7K,UAAWL,GAAUI,UAAU58M,GAC/B88M,iBAAkBh8K,EAElB09K,QAAShC,GAAUI,UAAU3jN,KAAK4nC,QAAQl2B,KAAK1R,OAE/C0jB,QAASA,EACTtH,KAAMmnM,GAAUiC,aAAappM,EAAM,MAEnCwJ,OAAQ29L,GAAUa,QAAQr9M,GAE1Bo9M,gBAAiBp9M,EACjBs9M,SAAUx8K,GAGP27K,CACV,CAEDvgK,WAAWA,GACP,OAAOJ,EAAAA,GAAAA,eAAcI,GAAc,GACtC,CAIDpb,OAAOA,GACH,MAAe,OAAXA,EAA0B,EACvB7tB,GAAAA,GAAAA,KAAe6tB,GAAQrtB,UACjC,CAED1V,KAAK+iC,GACD,MAAe,OAAXA,GAA6B,MAAVA,EAAyB,EACzC7tB,GAAAA,GAAAA,KAAe6tB,GAAQrtB,UACjC,CAGDkpM,UAAUtgN,GACN,OAAO4W,GAAAA,GAAAA,KAAe5W,EACzB,CAGDwkC,QAAQxkC,GACJ,GAAsB,mBAAXA,EAAwB,OAAOA,EAC1C,GAAsB,kBAAXA,EAAqB,CAE5B,GAAc,UADdA,EAAQA,EAAMuM,eACU,OAAO,EAC/B,GAAc,UAAVvM,EAAqB,OAAO,CACnC,CACD,MAAM,IAAIwc,MAAM,qBAAuBxc,EAC1C,CAEDkqB,IAAIlqB,EAAYqiN,GACZ,MAAsB,kBAAXriN,IACFqiN,GAAoC,OAA1BriN,EAAMgW,UAAU,EAAG,KAAehW,EAAQ,KAAOA,IAC5D4gB,EAAAA,GAAAA,aAAY5gB,IACNA,EAAMuM,cAGbuF,GAAOS,mBAAmB,eAAgB,QAASvS,EAC7D,CAEDgZ,KAAKhZ,EAAYqiN,GACb,MAAM30M,EAAS9Q,KAAKstB,IAAIlqB,EAAOqiN,GAC/B,GAAK30M,EAAOzQ,OAAS,IAAO,EACxB,MAAM,IAAIuf,MAAM,8BAAgCxc,GAEpD,OAAO0N,CACV,CAID4S,QAAQtgB,GACJ,OAAO+a,EAAAA,GAAAA,YAAW/a,EACrB,CAEDsiN,YAAYtiN,GACR,KAAK4gB,EAAAA,GAAAA,aAAY5gB,EAAO,IAAO,OAAO,KACtC,MAAMsgB,GAAUvF,EAAAA,GAAAA,aAAWwF,EAAAA,GAAAA,cAAavgB,EAAO,KAC/C,MD/OmB,+CC+OXsgB,EAA2B,KAAMA,CAC5C,CAED6gM,gBAAgBnhN,GACZ,OAAOooB,EAAAA,GAAAA,oBAAmBpoB,EAC7B,CAGDwlB,SAASA,GACL,GAAgB,MAAZA,EAAoB,MAAO,SAE/B,GAAiB,aAAbA,EAA2B,MAAO,MAEtC,OAAQA,GACJ,IAAK,WAAY,MAAO,MACxB,IAAK,SAAU,IAAK,UAAW,IAAK,OAAQ,IAAK,YAC7C,OAAOA,EAGf,GAAyB,kBAAdA,IAA0B5E,EAAAA,GAAAA,aAAY4E,GAC7C,OAAOwH,EAAAA,GAAAA,UAA0BxH,GAGrC,MAAM,IAAIhJ,MAAM,mBACnB,CAGD7Y,KAAK3D,EAAYqiN,GACb,MAAM30M,EAAS9Q,KAAKstB,IAAIlqB,EAAOqiN,GAC/B,OAA8B,MAA1B55L,EAAAA,GAAAA,eAAc/a,GACPoE,GAAOS,mBAAmB,eAAgB,QAASvS,GAEvD0N,CACV,CAGDg0M,WAAW1hN,GACP,GAAa,MAATA,EAAiB,OAAO,KAE5B,MAAMqd,EAAIzG,GAAAA,GAAAA,KAAe5W,GAEzB,IACI,OAAOqd,EAAEjG,UACM,CAAjB,MAAOgB,GAAU,CAEpB,OAAO,IACT,CAEDuoM,QAAQ3gN,GACJ,KAAK4gB,EAAAA,GAAAA,aAAY5gB,GACb,MAAM,IAAIwc,MAAM,mBAEpB,OAAOtB,EAAAA,GAAAA,YAAWlb,EAAO,GAC5B,CAEDuiN,OAAOviN,EAAYgU,GACK,MAAhBhU,EAAMwiN,QAAiC,MAAfxiN,EAAM2hN,QAC9B3hN,EAAM2hN,MAAQ3hN,EAAMwiN,QAGxB,MAAMd,EAAmC,MAArB1hN,EAAMyiN,YAAuBziN,EAAMyiN,YAAaziN,EAAM0hN,WACpEh0M,EAASyyM,GAAUnuL,MAAMhe,EAAQhU,GAEvC,OADA0N,EAAO+0M,YAA8B,MAAdf,EAAsB,KAAM9qM,GAAAA,GAAAA,KAAe8qM,GAC3Dh0M,CACV,CAEDyW,MAAMnkB,GACF,OAAOpD,KAAK2lN,OAAOviN,EAAOpD,KAAKwjN,QAAQj8L,MAC1C,CAED29L,sBAAsB9hN,GAClB,OAAOpD,KAAK2lN,OAAOviN,EAAOpD,KAAKwjN,QAAQ0B,sBAC1C,CAGDjB,mBAAmB7gN,GACf,OAAOmgN,GAAUnuL,MAAMp1B,KAAKwjN,QAAQS,mBAAoB7gN,EAC3D,CAED+hN,oBAAoBl8L,GAGO,MAAnBA,EAAYnP,KAAuC,MAAxBmP,EAAYmB,WACvCnB,EAAYmB,SAAWnB,EAAYnP,KAKnCmP,EAAYe,IAAMhQ,GAAAA,GAAAA,KAAeiP,EAAYe,IAAI9J,WACjD+I,EAAYe,GAAK,8CAII,MAArBf,EAAY1P,OAAqC,MAApB0P,EAAY7M,OACzC6M,EAAY7M,KAAO6M,EAAY1P,OAIb,MAAlB0P,EAAYe,IAAqC,MAAvBf,EAAY+6L,UACtC/6L,EAAY+6L,QAAUhkN,KAAKukN,gBAAgBt7L,IAGrB,IAArBA,EAAYnkB,MAAmC,IAArBmkB,EAAYnkB,MAAwC,MAA1BmkB,EAAYg6B,aACjEh6B,EAAYg6B,WAAa,IAG7B,MAAMnyC,EAA8ByyM,GAAUnuL,MAAMp1B,KAAKwjN,QAAQv6L,YAAaA,GAE9E,GAA2B,MAAvBA,EAAYQ,QAAiB,CAC7B,IAAIA,EAAUR,EAAYQ,SAEtBzF,EAAAA,GAAAA,aAAYyF,KACZA,EAAUzP,GAAAA,GAAAA,KAAeyP,GAASjP,YAGtC1J,EAAO2Y,QAAUA,CAEpB,KAAM,CACH,IAAIA,EAAUR,EAAY68L,UAGX,MAAXr8L,GAA+B,MAAZ3Y,EAAO2P,IAC1BgJ,EAAUR,EAAYQ,UAGtBzF,EAAAA,GAAAA,aAAYyF,KACZA,EAAUzP,GAAAA,GAAAA,KAAeyP,GAASjP,YAGd,kBAAbiP,GAAqC,MAAZ3Y,EAAO2P,IACvCgJ,GAAW3Y,EAAO2P,EAAI,IAAM,EACxBgJ,EAAU,IAAKA,EAAU,GAC7BA,EAAU3S,SAAS2S,IAGC,kBAAbA,IAAyBA,EAAU,GAE9C3Y,EAAO2Y,QAAUA,CACpB,CAOD,OAJI3Y,EAAO8yM,WAAoD,MAAvC9yM,EAAO8yM,UAAUvgN,QAAQ,KAAM,MACnDyN,EAAO8yM,UAAY,MAGhB9yM,CACV,CAEDmY,YAAY7lB,GACR,OAAOujB,EAAAA,GAAAA,OAAiBvjB,EAC3B,CAED8gN,WAAW9gN,GACP,OAAOmgN,GAAUnuL,MAAMp1B,KAAKwjN,QAAQU,WAAY9gN,EACnD,CAEDkhN,QAAQlhN,GACJ,MAAM0N,EAA6ByyM,GAAUnuL,MAAMp1B,KAAKwjN,QAAQc,QAASlhN,GAGzE,GAAmB,MAAf0N,EAAOlM,KACP,GAAIkM,EAAOlM,KAAKvE,QAAU,EAAG,CAEzB,MAAM+C,EAAQ4W,GAAAA,GAAAA,KAAelJ,EAAOlM,MAAM4V,WAC5B,IAAVpX,GAAyB,IAAVA,GAEM,MAAjB0N,EAAOy3C,QAAmBz3C,EAAOy3C,SAAWnlD,GAC5C8R,GAAOS,mBAAmB,kCAAmC,QAAS,CAAE/Q,KAAMkM,EAAOlM,KAAM2jD,OAAQz3C,EAAOy3C,SAE9Gz3C,EAAOy3C,OAASnlD,SACT0N,EAAOlM,MAEdsQ,GAAOS,mBAAmB,0BAA2B,aAAc7E,EAAOlM,KAEjF,MAAiC,KAAvBkM,EAAOlM,KAAKvE,QAEnB6U,GAAOS,mBAAmB,oBAAqB,aAAc7E,EAAOlM,MAQ5E,OAJqB,MAAjBkM,EAAOy3C,SACPz3C,EAAOi1M,WAAY,GAGhBj1M,CACV,CAED8U,OAAOxiB,GACH,OAAIwG,MAAM4G,QAAQpN,GACPA,EAAMkG,KAAKmX,GAAMzgB,KAAK4lB,OAAOnF,KAEpB,MAATrd,EACApD,KAAK+G,KAAK3D,GAAO,GAGrB,IACV,CAEDggB,OAAOhgB,GACH,OAAOmgN,GAAUnuL,MAAMp1B,KAAKwjN,QAAQpgM,OAAQhgB,EAC/C,CAEDkiN,UAAUliN,GACN,OAAOmgN,GAAUnuL,MAAMp1B,KAAKwjN,QAAQ8B,UAAWliN,EAClD,CAEW,aAACgU,EAA0CvB,GACnD,MAAM/E,EAAc,CAAC,EACrB,IAAK,MAAM5P,KAAOkW,EACd,IACI,MAAMhU,EAAQgU,EAAOlW,GAAK2U,EAAO3U,SACnBJ,IAAVsC,IAAuB0N,EAAO5P,GAAOkC,EAK5C,CAJC,MAAOoY,GAGL,MAFAA,EAAMwqM,SAAW9kN,EACjBsa,EAAMyqM,WAAapwM,EAAO3U,GACpBsa,CACT,CAEL,OAAO1K,CACV,CAGe,iBAACsG,EAAoB8uM,GACjC,OAAQ,SAAS9iN,GACb,OAAa,MAATA,EAAwB8iN,EACrB9uM,EAAOhU,EACjB,CACJ,CAGkB,oBAACgU,EAAoB+uM,GACpC,OAAQ,SAAS/iN,GACb,OAAKA,EACEgU,EAAOhU,GADO+iN,CAExB,CACJ,CAGa,eAAC/uM,GACX,OAAQ,SAAS/S,GACb,IAAKuF,MAAM4G,QAAQnM,GAAU,MAAM,IAAIub,MAAM,gBAE7C,MAAM9O,EAAc,GAMpB,OAJAzM,EAAM9C,SAAQ,SAAS6B,GACnB0N,EAAOlQ,KAAKwW,EAAOhU,GACtB,IAEM0N,CACV,CACJ,6SCldL,MAAMoE,GAAS,IAAIC,GAAAA,OAAOF,IAS1B,SAASmxM,GAAWt/L,GACf,OAAa,MAATA,EAAwB,QACC,MAAzB+E,EAAAA,GAAAA,eAAc/E,IACd5R,GAAOS,mBAAmB,gBAAiB,QAASmR,GAEjDA,EAAMnX,cACjB,CAED,SAAS02M,GAAgBzgM,GAGrB,IADAA,EAASA,EAAO3hB,QACT2hB,EAAOvlB,OAAS,GAAkC,MAA7BulB,EAAOA,EAAOvlB,OAAS,IAAculB,EAAOG,MAExE,OAAOH,EAAOtc,KAAKwd,IACf,GAAIld,MAAM4G,QAAQsW,GAAQ,CAGtB,MAAMhI,EAAyC,CAAC,EAChDgI,EAAMvlB,SAASulB,IACXhI,EAAOsnM,GAAWt/L,KAAU,CAA5B,IAIJ,MAAM8N,EAAS1xB,OAAOihB,KAAKrF,GAG3B,OAFA8V,EAAOC,OAEAD,EAAO/tB,KAAK,IAEtB,CACG,OAAOu/M,GAAWt/L,EACrB,IACFjgB,KAAK,IACX,CAgBD,SAASy/M,GAAYp+L,GACjB,GAA0B,kBAAfA,EAAyB,CAGhC,GAFAA,EAAYA,EAAUvY,cAEW,MAA7Bkc,EAAAA,GAAAA,eAAc3D,GACd,MAAO,MAAQA,EAGnB,IAAgC,IAA5BA,EAAUxkB,QAAQ,KAClB,OAAOwkB,CAGd,KAAM,IAAIte,MAAM4G,QAAQ0X,GACrB,MAAO,YAAcm+L,GAAgBn+L,GAElC,GAAIf,GAAAA,GAAAA,YAAsBe,GAE7B,MADAhT,GAAO0E,KAAK,mBACN,IAAIgG,MAAM,mBAEb,GAAIsI,GAAmC,kBAAfA,EAC3B,MAAO,WAAaA,EAAUxE,SAAW,KAAO,IAAM2iM,GAAgBn+L,EAAUtC,QAAU,GAC7F,CAED,MAAM,IAAIhG,MAAM,mBAAqBsI,EACxC,CAKD,SAASuqG,KACL,OAAQ,IAAI5vF,MAAQ4vF,SACvB,CAED,SAAS5nE,GAAMlC,GACX,OAAO,IAAI/+B,SAASE,IAChB8+B,WAAW9+B,EAAS6+B,EAApB,GAEP,CAmBD,MAAM49J,GAAiB,CAAE,QAAS,UAAW,UAAW,QAElD,MAAOC,GAQT/vM,YAAYvW,EAAaioB,EAAoBsjC,IACzC11C,EAAAA,GAAAA,gBAAe/V,KAAM,MAAOE,IAC5B6V,EAAAA,GAAAA,gBAAe/V,KAAM,WAAYmoB,IACjCpS,EAAAA,GAAAA,gBAAe/V,KAAM,OAAQyrD,GAE7BzrD,KAAKymN,kBAAoB,EACzBzmN,KAAK0mN,WAAY,CACpB,CAEGhsJ,YACA,OAAQ16D,KAAK8E,MACT,IAAK,KACF,OAAO9E,KAAK+G,KACf,IAAK,SACF,OAAO/G,KAAKojB,OAEnB,OAAOpjB,KAAKE,GACf,CAEG4E,WACA,OAAO9E,KAAKE,IAAImK,MAAM,KAAK,EAC9B,CAEGtD,WACA,MAAMgT,EAAQ/Z,KAAKE,IAAImK,MAAM,KAC7B,MAAiB,OAAb0P,EAAM,GAAsB,KACzBA,EAAM,EAChB,CAEGqJ,aACA,MAAMrJ,EAAQ/Z,KAAKE,IAAImK,MAAM,KAC7B,GAAiB,WAAb0P,EAAM,GAAmB,OAAO,KACpC,MAAM2J,EAAU3J,EAAM,GAEhB6L,EAlHd,SAA2BxJ,GACvB,MAAa,KAATA,EAAsB,GAEnBA,EAAK/R,MAAM,MAAMf,KAAKwd,IACzB,GAAc,KAAVA,EAAgB,MAAO,GAE3B,MAAM/M,EAAQ+M,EAAMzc,MAAM,KAAKf,KAAKwd,GACb,SAAVA,EAAoB,KAAMA,IAGvC,OAA0B,IAAjB/M,EAAM1Z,OAAgB0Z,EAAM,GAAIA,CAAzC,GAEP,CAsGsB4sM,CAAkB5sM,EAAM,IACjCqJ,EAAiB,CAAC,EAKxB,OAHIwC,EAAOvlB,OAAS,IAAK+iB,EAAOwC,OAASA,GACrClC,GAAuB,MAAZA,IAAmBN,EAAOM,QAAUA,GAE5CN,CACV,CAEDwjM,WACI,OAAQ5mN,KAAKE,IAAIwD,QAAQ,MAAQ,GAAK6iN,GAAe7iN,QAAQ1D,KAAKE,MAAQ,CAC7E,EAuCL,MAAM2mN,GAAgD,CAClD,EAAO,CAAEn7B,OAAQ,MAAQo7B,MAAO,EAAMC,KAAM,EAAMjgN,OAAQ,MAC1D,EAAO,CAAE4kL,OAAQ,MAAQo7B,MAAO,GAAMC,KAAM,GAAMjgN,OAAQ,OAC1D,EAAO,CAAE4kL,OAAQ,OAAQo7B,MAAO,GAAMC,KAAM,IAC5C,GAAO,CAAEr7B,OAAQ,MAAQs7B,IAAK,OAC9B,GAAO,CAAEt7B,OAAQ,MAAQs7B,IAAK,OAC9B,IAAO,CAAEt7B,OAAQ,OAAQs7B,IAAK,QAGlC,SAASC,GAAW7jN,GAChB,OAAOkb,EAAAA,GAAAA,YAAWtE,GAAAA,GAAAA,KAAe5W,GAAOmb,cAAe,GAC1D,CAGD,SAASu9K,GAAa1/K,GAClB,OAAO0Q,GAAAA,OAAAA,QAAcniB,EAAAA,GAAAA,QAAO,CAAEyR,GAAMuH,EAAAA,GAAAA,eAAa6X,EAAAA,GAAAA,KAAOA,EAAAA,GAAAA,IAAOpf,IAAQ,EAAG,KAC7E,CAOD,MAAM8qM,GAAc,IAAI3wM,OAAO,kBAAoB,KAC7C4wM,GAAW,CACb,IAAI5wM,OAAO,mBAAqB,KAChC,IAAIA,OAAO,gBAAiB,KAC5B2wM,GACA,IAAI3wM,OAAO,mCAAoC,MAGnD,SAAS6wM,GAAat2M,EAAgBkf,GAClC,IACI,OAAOvO,EAAAA,GAAAA,IAAa4lM,GAAYv2M,EAAQkf,GAC1B,CAAhB,MAAMxU,GAAU,CAClB,OAAO,IACV,CAED,SAAS6rM,GAAYv2M,EAAgBkf,GACjC,GAAe,OAAXlf,EAAmB,OAAO,KAE9B,MAAMvJ,EAASyS,GAAAA,GAAAA,MAAe2J,EAAAA,GAAAA,cAAa7S,EAAQkf,EAAOA,EAAQ,KAAKxV,WACjEna,EAAS2Z,GAAAA,GAAAA,MAAe2J,EAAAA,GAAAA,cAAa7S,EAAQvJ,EAAQA,EAAS,KAAKiT,WAEzE,OAAOmJ,EAAAA,GAAAA,cAAa7S,EAAQvJ,EAAS,GAAIA,EAAS,GAAKlH,EAC1D,CAGD,SAASinN,GAAYtoH,GASjB,OARIA,EAAKv1F,MAAM,qBACXu1F,EAAOA,EAAK5lF,UAAU,IACf4lF,EAAKv1F,MAAM,eAClBu1F,EAAOA,EAAK5lF,UAAU,GAEtBlE,GAAOS,mBAAmB,0BAA2B,OAAQqpF,GAG1D,gCAAP,OAAyCA,EAC5C,CAED,SAASuoH,GAAOnkN,GACZ,MAAM0N,GAAS6L,EAAAA,GAAAA,UAASvZ,GACxB,GAAI0N,EAAOzQ,OAAS,GAAM,MAAM,IAAIuf,MAAM,+BAE1C,MAAM4nM,EAAS,IAAIrrM,WAAW,IAE9B,OADAqrM,EAAOt+M,IAAI4H,EAAQ,GAAKA,EAAOzQ,QACxBmnN,CACV,CAED,SAASC,GAASrkN,GACd,GAAKA,EAAM/C,OAAS,KAAQ,EAAK,OAAO+C,EAExC,MAAM0N,EAAS,IAAIqL,WAA0C,GAA/BtZ,KAAK8a,KAAKva,EAAM/C,OAAS,KAEvD,OADAyQ,EAAO5H,IAAI9F,GACJ0N,CACV,CAGD,SAAS42M,GAAYC,GACjB,MAAM72M,EAA4B,GAElC,IAAIujF,EAAY,EAGhB,IAAK,IAAIpyF,EAAI,EAAGA,EAAI0lN,EAAMtnN,OAAQ4B,IAC9B6O,EAAOlQ,KAAK,MACZyzF,GAAa,GAGjB,IAAK,IAAIpyF,EAAI,EAAGA,EAAI0lN,EAAMtnN,OAAQ4B,IAAK,CACnC,MAAMma,GAAOO,EAAAA,GAAAA,UAASgrM,EAAM1lN,IAG5B6O,EAAO7O,GAAKslN,GAAOlzH,GAGnBvjF,EAAOlQ,KAAK2mN,GAAOnrM,EAAK/b,SACxByQ,EAAOlQ,KAAK6mN,GAASrrM,IACrBi4E,GAAa,GAAmC,GAA9BxxF,KAAK8a,KAAKvB,EAAK/b,OAAS,GAC7C,CAED,OAAOgc,EAAAA,GAAAA,WAAUvL,EACpB,CAEK,MAAO82M,GAYTnxM,YAAYqS,EAAwBpF,EAAiBzY,EAAc48M,IAC/D9xM,EAAAA,GAAAA,gBAAe/V,KAAM,WAAY8oB,IACjC/S,EAAAA,GAAAA,gBAAe/V,KAAM,OAAQiL,IAC7B8K,EAAAA,GAAAA,gBAAe/V,KAAM,UAAW8oB,EAASg/L,UAAUpkM,QAAQA,KAC3D3N,EAAAA,GAAAA,gBAAe/V,KAAM,mBAAoB6nN,EAC5C,CAEDE,mBAgBI,OAfK/nN,KAAKgoN,mBAENhoN,KAAKgoN,iBAAmBhoN,KAAK8oB,SAASjf,KAAK,CACvCmgB,GAAIhqB,KAAK0jB,QACTtH,KAAM,+EACP2N,MAAMjZ,GACEkJ,GAAAA,GAAAA,KAAelJ,GAAQ8d,GAAG,KAClChH,OAAOpM,IACN,GAAIA,EAAMiE,OAAStK,GAAAA,OAAAA,OAAAA,eAAgC,OAAO,EAG1D,MADAnV,KAAKgoN,iBAAmB,KAClBxsM,CAAN,KAIDxb,KAAKgoN,gBACf,CAEKC,OAAOr9M,EAAkBqsJ,6CAG3B,MAAMrwI,EAAK,CACPoD,GAAIhqB,KAAK0jB,QACTwkM,iBAAiB,EACjB9rM,MAAMC,EAAAA,GAAAA,WAAU,CAAEzR,GAAUssB,EAAAA,GAAAA,IAASl3B,KAAKiL,MAAQgsJ,GAAc,QAIpE,IAAInrH,GAAa,SACP9rC,KAAK+nN,sBACXj8K,GAAa,EAGbllB,EAAGxK,MAAOC,EAAAA,GAAAA,WAAU,CAAE,aAAcqrM,GAAY,EAAEvwL,EAAAA,GAAAA,IAAUn3B,KAAKiL,MAAO2b,EAAGxK,UAG/E,IACI,IAAItL,QAAe9Q,KAAK8oB,SAASjf,KAAK+c,GAOtC,OANKjK,EAAAA,GAAAA,UAAS7L,GAAQzQ,OAAS,KAAQ,GACnC6U,GAAOyB,WAAW,uBAAwBxB,GAAAA,OAAAA,OAAAA,eAA8B,CACpE8T,YAAarC,EAAIxK,KAAMtL,IAG3Bg7B,IAAch7B,EAASu2M,GAAYv2M,EAAQ,IACxCA,CAIV,CAHC,MAAO0K,GACL,GAAIA,EAAMiE,OAAStK,GAAAA,OAAAA,OAAAA,eAAgC,OAAO,KAC1D,MAAMqG,CACT,CACJ,IAEK2sM,YAAYv9M,EAAkBqsJ,6CAChC,MAAMnmJ,QAAe9Q,KAAKioN,OAAOr9M,EAAUqsJ,GAC3C,OAAc,MAAVnmJ,EAAyBu2M,GAAYv2M,EAAQ,GAC1C,IACV,IAEDs3M,YAAYC,EAAkBC,GAC1B,MAAMC,EAAW1B,GAAU9jN,OAAOslN,IAQlC,GANgB,MAAZE,GACArzM,GAAOyB,WAAP,iCAA6C0xM,GAAalzM,GAAAA,OAAAA,OAAAA,sBAAqC,CAC3FyB,UAAW,cAAF,OAAiByxM,EAAjB,OAII,QAAjBE,EAASvB,IACT,OAAOhnN,KAAK8oB,SAASg/L,UAAUpkM,QAAQ4kM,GAG3C,MAAM5rM,GAAQC,EAAAA,GAAAA,UAAS2rM,GAGvB,GAAsB,MAAlBC,EAASzB,MAAe,CACxB,MAAMA,EAAQwB,EAAS7+M,MAAM,6CAC7B,GAAIq9M,EAAO,CACP,MAAMzmN,EAASyW,SAASgwM,EAAM,GAAI,IAClC,GAAIA,EAAM,GAAGzmN,SAAoB,EAATA,GAAcA,GAAU,GAAKA,GAAU,GAC3D,OAAOy7L,IAAanxL,EAAAA,GAAAA,QAAO,CAAE,CAAE49M,EAASzB,OAAU,KAAOA,EAAM,KAEtE,CACJ,CAGD,GAAqB,MAAjByB,EAASxB,KAAc,CACvB,MAAMA,EAAOuB,EAAS7+M,MAAM,yCAC5B,GAAIs9M,EAAM,CACN,MAAM1mN,EAASyW,SAASiwM,EAAK,GAAI,IACjC,GAAIA,EAAK,GAAG1mN,SAAoB,EAATA,GAAcA,GAAU,GAAKA,GAAU,GAC1D,OAAOy7L,IAAanxL,EAAAA,GAAAA,QAAO,CAAE,CAAE49M,EAASxB,MAAS,KAAOA,EAAK,KAEpE,CACJ,CAGD,GAAuB,MAAnBwB,EAASzhN,OAAgB,CACzB,MAAMzG,EAASqc,EAAM,GAGrB,IAAIzH,EAAUyH,EAAM,GASpB,GARgB,IAAZzH,EACe,KAAX5U,GAA4B,KAAXA,IACjB4U,GAAW,GAGfA,GAAW,EAGXA,GAAW,GAAKyH,EAAMrc,SAAW,EAAIA,GAAUA,GAAU,GAAKA,GAAU,GAAI,CAC5E,MAAMk6B,EAAQiuL,KAAAA,QAAe9rM,EAAMzY,MAAM,IAEzC,OADAs2B,EAAM7K,QAAQza,GACPuzM,KAAAA,OAAcD,EAASzhN,OAAQyzB,EACzC,CACJ,CAED,OAAO,IACV,CAGKpc,WAAWkqM,6CAIb,GAHgB,MAAZA,IAAoBA,EAAW,IAGlB,KAAbA,EACA,IAEI,MAAMv3M,QAAe9Q,KAAKioN,OAAO,cAGjC,MAAe,OAAXn3M,GAAmBA,IAAWmgB,GAAAA,EAAmB,KAE9CjxB,KAAK8oB,SAASg/L,UAAUpC,YAAY50M,EAI9C,CAHC,MAAO0K,GACL,GAAIA,EAAMiE,OAAStK,GAAAA,OAAAA,OAAAA,eAAgC,OAAO,KAC1D,MAAMqG,CACT,CAIL,MAAM8sM,QAAiBtoN,KAAKmoN,YAAY,aAAclB,GAAWoB,IAGjE,GAAgB,MAAZC,GAAiC,OAAbA,EAAqB,OAAO,KAGpD,MAAM5kM,EAAU1jB,KAAKooN,YAAYC,EAAUC,GAU3C,OARe,MAAX5kM,GACAxO,GAAOyB,WAAP,mCAAsDxB,GAAAA,OAAAA,OAAAA,sBAAqC,CACvFyB,UAAW,cAAF,OAAiByxM,EAAjB,KACTA,SAAUA,EACVjsM,KAAMksM,IAIP5kM,CACV,IAEK+kM,sDACF,MAAMC,EAAoD,CAAE,CAAE5jN,KAAM,OAAQ6kJ,QAAS3pJ,KAAKiL,OAC1F,IAGI,MAAM09M,QAAe3oN,KAAK4oN,QAAQ,UAClC,GAAc,MAAVD,EAAkB,OAAO,KAE7B,IAAK,IAAI1mN,EAAI,EAAGA,EAAIklN,GAAS9mN,OAAQ4B,IAAK,CACtC,MAAMwH,EAAQk/M,EAAOl/M,MAAM09M,GAASllN,IACpC,GAAa,MAATwH,EAAiB,SAErB,MAAMo/M,EAASp/M,EAAM,GAAGkG,cAExB,OAAQk5M,GACJ,IAAK,QAED,OADAH,EAAQ9nN,KAAK,CAAEkE,KAAM,MAAO6kJ,QAASg/D,IAC9B,CAAED,UAASrjL,IAAKsjL,GAE3B,IAAK,OAED,OADAD,EAAQ9nN,KAAK,CAAEkE,KAAM,OAAQ6kJ,QAASg/D,IAC/B,CAAED,UAASrjL,IAAKsjL,GAE3B,IAAK,OAED,OADAD,EAAQ9nN,KAAK,CAAEkE,KAAM,OAAQ6kJ,QAASg/D,IAC/B,CAAED,UAASrjL,IAAKiiL,GAAYqB,IAEvC,IAAK,SACL,IAAK,UAAW,CAEZ,MAAM/9M,EAAuB,WAAXi+M,EAAuB,aAAc,aACvDH,EAAQ9nN,KAAK,CAAEkE,KAAM+jN,EAAQl/D,QAASg/D,IAGtC,MAAMG,EAAS9oN,KAAK+oN,yBAA0B/oN,KAAKme,cAE7CpE,GAAStQ,EAAM,IAAM,IAAIY,MAAM,KACrC,GAAqB,IAAjB0P,EAAM1Z,OAAgB,OAAO,KAEjC,MAAMqiD,QAAa1iD,KAAK8oB,SAASg/L,UAAUpkM,QAAQ3J,EAAM,IACnDw9J,GAAUj5J,EAAAA,GAAAA,YAAWtE,GAAAA,GAAAA,KAAeD,EAAM,IAAIwE,cAAe,IAGnE,GAAe,WAAXsqM,EAAqB,CAErB,MAAMG,EAAahpN,KAAK8oB,SAASg/L,UAAUpC,kBAAkB1lN,KAAK8oB,SAASjf,KAAK,CAC5EmgB,GAAI04B,EAAMtmC,MAAMC,EAAAA,GAAAA,WAAU,CAAE,aAAck7J,OAE9C,GAAIuxC,IAAUE,EAAc,OAAO,KACnCN,EAAQ9nN,KAAK,CAAEkE,KAAM,QAAS6kJ,QAASq/D,GAE1C,MAAM,GAAe,YAAXH,EAAsB,CAE7B,MAAMpT,EAAUz7L,GAAAA,GAAAA,WAAqBha,KAAK8oB,SAASjf,KAAK,CACpDmgB,GAAI04B,EAAMtmC,MAAMC,EAAAA,GAAAA,WAAU,CAAE,cAAciC,EAAAA,GAAAA,YAAWwqM,EAAO,IAAKvxC,OAErE,GAAIk+B,EAAQv1L,SAAY,OAAO,KAC/BwoM,EAAQ9nN,KAAK,CAAEkE,KAAM,UAAW6kJ,QAAS8rD,EAAQnpM,YACpD,CAGD,MAAMsa,EAAK,CACPoD,GAAIhqB,KAAK8oB,SAASg/L,UAAUpkM,QAAQ3J,EAAM,IAC1CqC,MAAMC,EAAAA,GAAAA,WAAU,CAAEzR,EAAU2sK,KAGhC,IAAI0xC,EAAc7B,SAAmBpnN,KAAK8oB,SAASjf,KAAK+c,GAAK,GAC7D,GAAmB,MAAfqiM,EAAuB,OAAO,KAClCP,EAAQ9nN,KAAK,CAAEkE,KAAM,oBAAqB6kJ,QAASs/D,IAGpC,YAAXJ,IACAI,EAAcA,EAAY5lN,QAAQ,OAAQk0K,EAAQn+J,UAAU,IAC5DsvM,EAAQ9nN,KAAK,CAAEkE,KAAM,wBAAyB6kJ,QAASs/D,KAIvDA,EAAYx/M,MAAM,aAClBw/M,EAAc3B,GAAY2B,IAG9BP,EAAQ9nN,KAAK,CAAEkE,KAAM,eAAgB6kJ,QAASs/D,IAG9C,MAAMxxC,QAAiBvsH,EAAAA,GAAAA,WAAU+9J,GACjC,IAAKxxC,EAAY,OAAO,KACxBixC,EAAQ9nN,KAAK,CAAEkE,KAAM,WAAY6kJ,QAASpyI,KAAK5Q,UAAU8wK,KAGzD,IAAIyxC,EAAWzxC,EAAS0xC,MACxB,GAAyB,kBAAdD,EAA0B,OAAO,KAE5C,GAAIA,EAASz/M,MAAM,6BAEZ,CAGH,GAAY,MADCy/M,EAASz/M,MAAMy9M,IACR,OAAO,KAE3BwB,EAAQ9nN,KAAK,CAAEkE,KAAM,WAAY6kJ,QAASu/D,IAC1CA,EAAW5B,GAAY4B,EAC1B,CAID,OAFAR,EAAQ9nN,KAAK,CAAEkE,KAAM,MAAO6kJ,QAASu/D,IAE9B,CAAER,UAASrjL,IAAK6jL,EAC1B,EAER,CACc,CAAjB,MAAO1tM,GAAU,CAEnB,OAAO,IACV,IAEK4tM,2DAGF,MAAMd,QAAiBtoN,KAAKmoN,YAAY,cAGxC,GAAgB,MAAZG,GAAiC,OAAbA,EAAqB,OAAO,KAGpD,MAAMnkC,EAAOmkC,EAAS7+M,MAAM,iEAC5B,GAAI06K,EAAM,CACN,MAAM9jL,EAASyW,SAASqtK,EAAK,GAAI,IACjC,GAAIA,EAAK,GAAG9jL,SAAoB,EAATA,EACnB,MAAO,UAAaysB,GAAAA,OAAAA,OAAc,KAAOq3J,EAAK,GAErD,CAGD,MAAMklC,EAAOf,EAAS7+M,MAAM,iEAC5B,GAAI4/M,EAAM,CACN,MAAMhpN,EAASyW,SAASuyM,EAAK,GAAI,IACjC,GAAIA,EAAK,GAAGhpN,SAAoB,EAATA,EACnB,MAAO,UAAaysB,GAAAA,OAAAA,OAAc,KAAOu8L,EAAK,GAErD,CAGD,MAAMC,EAAQhB,EAAS7+M,MAAM,iCAC7B,GAAI6/M,GACyB,KAArBA,EAAM,GAAGjpN,OACT,MAAO,SAAYipN,EAAM,GAIjC,MAAMC,EAASjB,EAAS7+M,MAAM,2BAC9B,GAAI8/M,GAC0B,KAAtBA,EAAO,GAAGlpN,OAAqB,CAE/B,MAAMmpN,EAAkC,CAAE,IAAK,GAAI,IAAK,IAAK,IAAK,KAElE,MAAO,UADM5/J,EAAAA,GAAAA,GAAa,KAAO2/J,EAAO,IAAIlmN,QAAQ,WAAYyvB,GAAO02L,EAAQ12L,IAElF,CAGL,OAAO5d,GAAOyB,WAAP,2CAA8DxB,GAAAA,OAAAA,OAAAA,sBAAqC,CACtGyB,UAAW,mBACXwF,KAAMksM,GAEb,IAEKM,QAAQ1nN,6CAGV,IAAIuoN,GAAWjoM,EAAAA,GAAAA,IAAYtgB,GAI3BuoN,GAAW9+M,EAAAA,GAAAA,QAAO,CAAEs8M,GAAW,IAAKA,GAAWwC,EAASppN,QAASopN,IAG5DA,EAASppN,OAAS,KAAQ,IAC3BopN,GAAW9+M,EAAAA,GAAAA,QAAO,CAAE8+M,GAAUnrM,EAAAA,GAAAA,YAAW,KAAM,GAAMpd,EAAIb,OAAS,OAGtE,MAAMioN,QAAiBtoN,KAAKmoN,YAAY,cAAc/qM,EAAAA,GAAAA,SAAQqsM,IAC9D,OAAgB,MAAZnB,GAAiC,OAAbA,EAA4B,MAE7C7mM,EAAAA,GAAAA,IAAa6mM,EACvB,KAGL,IAAIoB,GAA8B,KAE9BC,GAAa,EAEX,MAAOC,WAAqBj+M,GAAAA,GAiD9B8K,YAAY8mK,GAkBR,GAjBAv/J,QAGAhe,KAAKilF,QAAU,GAEfjlF,KAAK6pN,SAAW,CAAEtiM,OAAQ,GAE1BvnB,KAAK8pN,iBAAkB,EAEvB9pN,KAAK8nN,qBAAuBiC,gBAK5Bh0M,EAAAA,GAAAA,gBAAe/V,KAAM,aAA2B,QAAZu9K,GAChCv9K,KAAKgqN,aAAczsC,EAAUv9K,KAAKiqN,iBAElC1sC,aAAmB3zJ,QACnB5pB,KAAKkqN,gBAAkB3sC,EAGvBA,EAAQ31J,OAAOpM,QAGfxb,KAAKmqN,SAASviM,OAAOpM,YAElB,CACH,MAAM4uM,GAAe/mM,EAAAA,GAAAA,sBAAwD,aAAxDA,CAAsEk6J,GACvF6sC,IACAr0M,EAAAA,GAAAA,gBAAe/V,KAAM,WAAYoqN,GACjCpqN,KAAK0lF,KAAK,UAAW0kI,EAAc,OAGnCl1M,GAAOS,mBAAmB,kBAAmB,UAAW4nK,EAE/D,CAEDv9K,KAAKqqN,yBAA2B,KAEhCrqN,KAAKymN,kBAAoB,EACzBzmN,KAAKsqN,qBAAuB,GAE5BtqN,KAAKuqN,iBAAmB,IAExBvqN,KAAKwqN,eAAiB,CACzB,CAEKL,mDACF,GAAqB,MAAjBnqN,KAAKyqN,SAAkB,CACvB,IAAIltC,EAAmB,KACvB,GAAIv9K,KAAKkqN,gBACL,IACI3sC,QAAgBv9K,KAAKkqN,eACN,CAAjB,MAAO1uM,GAAU,CAIR,MAAX+hK,IACAA,QAAgBv9K,KAAKiqN,iBAKpB1sC,GACDroK,GAAOyB,WAAW,sBAAuBxB,GAAAA,OAAAA,OAAAA,cAA6B,CAAC,GAItD,MAAjBnV,KAAKyqN,WACDzqN,KAAKgqN,WACLhqN,KAAKyqN,SAAWltC,GAEhBxnK,EAAAA,GAAAA,gBAAe/V,KAAM,WAAYu9K,GAErCv9K,KAAK0lF,KAAK,UAAW63F,EAAS,MAErC,CAED,OAAOv9K,KAAKyqN,QACf,IAKGnT,YACA,OAAOlsJ,EAAAA,GAAAA,OAAK,IACDprD,KAAKmqN,SAASpgM,MAAMwzJ,GAChBA,IACP/hK,IAEA,GAAIA,EAAMiE,OAAStK,GAAAA,OAAAA,OAAAA,eAA+C,cAAhBqG,EAAMk/C,MAGxD,MAAMl/C,CAAN,KAGX,CAGkB,sBAIf,OAHwB,MAApBkuM,KACAA,GAAmB,IAAInG,IAEpBmG,EACV,CAGgB,kBAACnsC,GACd,OH3nBF,SAAqBA,GAEvB,GAAe,MAAXA,EAAmB,OAAO,KAE9B,GAAwB,kBAAbA,EAAuB,CAC9B,IAAK,MAAMtyK,KAAQi3M,GAAU,CACzB,MAAMtqJ,EAAWsqJ,GAASj3M,GAC1B,GAAI2sD,EAASnuC,UAAY8zJ,EACrB,MAAO,CACHtyK,KAAM2sD,EAAS3sD,KACfwe,QAASmuC,EAASnuC,QAClBq4L,WAAalqJ,EAASkqJ,YAAc,KACpCC,iBAAmBnqJ,EAASmqJ,kBAAoB,KAG3D,CAED,MAAO,CACHt4L,QAAS8zJ,EACTtyK,KAAM,UAEb,CAED,GAAwB,kBAAbsyK,EAAuB,CAC9B,MAAM3lH,EAAWsqJ,GAAS3kC,GAC1B,OAAgB,MAAZ3lH,EAA2B,KACxB,CACH3sD,KAAM2sD,EAAS3sD,KACfwe,QAASmuC,EAASnuC,QAClBq4L,WAAYlqJ,EAASkqJ,WACrBC,iBAAmBnqJ,EAASmqJ,kBAAoB,KAEvD,CAED,MAAMnqJ,EAAYsqJ,GAAS3kC,EAAQtyK,MAGnC,IAAK2sD,EAID,MAHgC,kBAArB2lH,EAAQ9zJ,SACfvU,GAAOS,mBAAmB,0BAA2B,UAAW4nK,GAE7DA,EAIa,IAApBA,EAAQ9zJ,SAAiB8zJ,EAAQ9zJ,UAAYmuC,EAASnuC,SACtDvU,GAAOS,mBAAmB,2BAA4B,UAAW4nK,GAKrE,IAAImtC,EAAuCntC,EAAQwkC,kBAAoB,KAhQ3E,IAAyB3+M,EA0QrB,OATuB,MAAnBsnN,GAA2B9yJ,EAASmqJ,mBAEhC2I,GAnQatnN,EAkQGw0D,EAASmqJ,mBAjQY,oBAArB3+M,EAAMs+M,UAkQJ9pJ,EAASmqJ,iBAAiBL,UAAUnkC,GAEpC3lH,EAASmqJ,kBAK5B,CACH92M,KAAMsyK,EAAQtyK,KACdwe,QAASmuC,EAASnuC,QAClBq4L,WAAavkC,EAAQukC,YAAclqJ,EAASkqJ,YAAc,KAC1DC,iBAAkB2I,EAEzB,CGwjBclhM,CAAuB,MAAX+zJ,EAAmB,YAAaA,EACtD,CAEKotC,cAAc/jM,EAAiBtR,EAAkBs1M,6CACnD,GAAI5qN,KAAK8pN,iBAAmC,IAAhBc,EAAKvqN,OAAgB,OAAO,KAExD,MAAMwqN,EAASjkM,EAAGoD,GAAGra,cACfyM,EAAO9G,EAAS3F,cAEhBm7M,EAA+B,GAErC,IAAK,IAAI7oN,EAAI,EAAGA,EAAI2oN,EAAKvqN,OAAQ4B,IAAK,CAClC,MAAMojC,EAAMulL,EAAK3oN,GAGXulD,EAAOniB,EAAIhiC,QAAQ,WAAYwnN,GAAQxnN,QAAQ,SAAU+Y,GAGzD/F,EAAuBgvB,EAAI3hC,QAAQ,WAAa,EAAK,KAAM6T,KAAK5Q,UAAU,CAAEyV,OAAMyuM,WAElF/5M,QAAeo6C,EAAAA,GAAAA,WAAU,CAAE7lB,IAAKmiB,EAAM6B,kBAAkB,GAAQhzC,GAAM,CAACjT,EAAO+kD,KAChF/kD,EAAMmlD,OAASJ,EAASG,WACjBllD,KAGX,GAAI0N,EAAOsL,KAAQ,OAAOtL,EAAOsL,KAEjC,MAAM2uM,EAAgBj6M,EAAO+K,SAAW,gBAGxC,GAAI/K,EAAOy3C,QAAU,KAAOz3C,EAAOy3C,OAAS,IACxC,OAAOrzC,GAAOyB,WAAP,gDAA4Do0M,GAAiB51M,GAAAA,OAAAA,OAAAA,aAA4B,CAAEkwB,MAAK0lL,iBAI3HD,EAAclqN,KAAKmqN,EACtB,CAED,OAAO71M,GAAOyB,WAAP,+CAA2Dm0M,EAAcxhN,KAAKqqB,GAAMpc,KAAK5Q,UAAUgtB,KAAI9sB,KAAK,OAAUsO,GAAAA,OAAAA,OAAAA,aAA4B,CACrJy1M,OAAME,iBAEb,IAIKE,wBAAwBC,6CAI1B,SAHMjrN,KAAKmqN,SAGPc,EAAS,EAGT,KAAOjrN,KAAKkrN,sBAAsB,CAG9B,MAAMC,EAAsBnrN,KAAKkrN,qBAEjC,IAEI,MAAMp6M,QAAeq6M,EACrB,GAAK14F,KAAY3hH,EAAOs6M,UAAaH,EACjC,OAAOn6M,EAAOguK,YAIlB,KAWH,CATC,MAAMtjK,GAMJ,GAAIxb,KAAKkrN,uBAAyBC,EAC9B,KAEP,CACJ,CAGL,MAAME,EAAU54F,KAEV64F,GAA2B7jM,EAAAA,GAAAA,mBAAkB,CAC/Cq3J,YAAa9+K,KAAKurN,QAAQ,iBAAkB,CAAC,GAC7CC,aAAcxrN,KAAKwpB,aAAaO,MAAMwzJ,GAAa,OAAQ/hK,GAAWA,MACvEuO,MAAK,IAAkC,IAAjC,YAAE+0J,EAAF,aAAe0sC,GAAkB,EACtC,GAAIA,EAKA,MAHIxrN,KAAKkrN,uBAAyBI,IAC9BtrN,KAAKkrN,qBAAuB,MAE1BM,EAGV,MAAMJ,EAAW34F,KAOjB,OALAqsD,EAAc9kK,GAAAA,GAAAA,KAAe8kK,GAAatkK,WACtCskK,EAAc9+K,KAAKqqN,0BAA2BvrC,EAAc9+K,KAAKqqN,yBAErErqN,KAAKqqN,wBAA0BvrC,EAC/B9+K,KAAKyrN,oBAAoB3sC,GAClB,CAAEA,cAAausC,UAASD,WAA/B,IAaJ,OAVAprN,KAAKkrN,qBAAuBI,EAG5BA,EAAyB1jM,OAAOpM,IAExBxb,KAAKkrN,uBAAyBI,IAC9BtrN,KAAKkrN,qBAAuB,KAC/B,WAGSI,GAA0BxsC,WAC3C,IAEK1zH,iDACF,MAAMsgK,EAAS/B,KAGTgC,EAAgC,GAEtC,IAAI7sC,EAAsB,KAC1B,IACIA,QAAoB9+K,KAAKgrN,wBAAwB,IAAMhrN,KAAK4rN,gBAAkB,EAIjF,CAHC,MAAOpwM,GAEL,YADAxb,KAAK0lF,KAAK,QAASlqE,EAEtB,CAOD,GANAxb,KAAKyrN,oBAAoB3sC,GAGzB9+K,KAAK0lF,KAAK,OAAQgmI,EAAQ5sC,GAGtBA,IAAgB9+K,KAAKymN,iBAAzB,CAUA,IAJ6B,IAAzBzmN,KAAK6pN,SAAStiM,QACdvnB,KAAK6pN,SAAStiM,MAAQu3J,EAAc,GAGpCj8K,KAAKD,IAAc5C,KAAK6pN,SAAStiM,MAAUu3J,GAAe,IAC1D5pK,GAAO0E,KAAP,sEAA4E5Z,KAAK6pN,SAAStiM,MAA1F,uBAAgHu3J,EAAhH,MACA9+K,KAAK0lF,KAAK,QAASxwE,GAAOgwB,UAAU,8BAA+B/vB,GAAAA,OAAAA,OAAAA,cAA6B,CAC5F2pK,YAAaA,EACbpkH,MAAO,YACPmxJ,oBAAqB7rN,KAAK6pN,SAAStiM,SAEvCvnB,KAAK0lF,KAAK,QAASo5F,QAInB,IAAK,IAAI78K,EAAajC,KAAK6pN,SAAStiM,MAAS,EAAGtlB,GAAK68K,EAAa78K,IAC9DjC,KAAK0lF,KAAK,QAASzjF,GAKdjC,KAAK6pN,SAAStiM,QAAWu3J,IAClC9+K,KAAK6pN,SAAStiM,MAAQu3J,EAEtB57K,OAAOihB,KAAKnkB,KAAK6pN,UAAUtoN,SAASL,IAEhC,GAAY,UAARA,EAAmB,OAGvB,MAAM4qN,EAAmB9rN,KAAK6pN,SAAS3oN,GAKd,YAArB4qN,GAIAhtC,EAAcgtC,EAAmB,WAC1B9rN,KAAK6pN,SAAS3oN,EACxB,MAKsB,IAA3BlB,KAAKymN,mBACLzmN,KAAKymN,iBAAmB3nC,EAAc,GAG1C9+K,KAAKilF,QAAQ1jF,SAASm5D,IAClB,OAAQA,EAAM51D,MACV,IAAK,KAAM,CACP,MAAMiC,EAAO2zD,EAAM3zD,KACnB,IAAIglN,EAAS/rN,KAAKgsN,sBAAsBjlN,GAAMgjB,MAAMu6L,GAC3CA,GAAkC,MAAvBA,EAAQxlC,aACxB9+K,KAAK6pN,SAAS,KAAO9iN,GAAQu9M,EAAQxlC,YACrC9+K,KAAK0lF,KAAK3+E,EAAMu9M,GACT,MAH+C,OAIvD18L,OAAOpM,IAAmBxb,KAAK0lF,KAAK,QAASlqE,EAAnB,IAE7BmwM,EAAQ/qN,KAAKmrN,GAEb,KACH,CAED,IAAK,SAED,IAAKrxJ,EAAMgsJ,UAAW,CAClBhsJ,EAAMgsJ,WAAY,GAIc,IAA5BhsJ,EAAM+rJ,mBACN/rJ,EAAM+rJ,iBAAmB3nC,EAAc,GAO3C,MAAM17J,EAASs3C,EAAMt3C,OACrBA,EAAOgiM,UAAY1qJ,EAAM+rJ,iBAAmB,EAC5CrjM,EAAOiiM,QAAUvmC,EAIjB,MAAMmtC,EAAe7oM,EAAOiiM,QAAUrlN,KAAKsqN,qBACvC2B,EAAe7oM,EAAOgiM,YAAahiM,EAAOgiM,UAAY6G,GAEtD7oM,EAAOgiM,UAAY,IAAKhiM,EAAOgiM,UAAY,GAE/C,MAAM2G,EAAS/rN,KAAKksN,QAAQ9oM,GAAQ2G,MAAM26L,IAEtChqJ,EAAMgsJ,WAAY,EAEE,IAAhBhC,EAAKrkN,QAETqkN,EAAKnjN,SAAS+Y,IAGNA,EAAIwkK,YAAcpkH,EAAM+rJ,mBACxB/rJ,EAAM+rJ,iBAAmBnsM,EAAIwkK,aAIjC9+K,KAAK6pN,SAAS,KAAOvvM,EAAIspM,WAAatpM,EAAIwkK,YAC1C9+K,KAAK6pN,SAAS,KAAOvvM,EAAI6pM,iBAAmB7pM,EAAIwkK,YAEhD9+K,KAAK0lF,KAAKtiE,EAAQ9I,EAAlB,GAXJ,IAaDsN,OAAOpM,IACNxb,KAAK0lF,KAAK,QAASlqE,GAGnBk/C,EAAMgsJ,WAAY,CAAlB,IAEJiF,EAAQ/qN,KAAKmrN,EAChB,EAnET,IA0EJ/rN,KAAKymN,iBAAmB3nC,EAGxBl1J,QAAQC,IAAI8hM,GAAS5hM,MAAK,KACtB/pB,KAAK0lF,KAAK,UAAWgmI,EAArB,IACD9jM,OAAOpM,IAAYxb,KAAK0lF,KAAK,QAASlqE,EAAnB,GApIrB,MAFGxb,KAAK0lF,KAAK,UAAWgmI,EAyI5B,IAGDS,iBAAiBrtC,GACb9+K,KAAKymN,iBAAmB3nC,EAAc,EAClC9+K,KAAKosN,SAAWpsN,KAAKorD,MAC5B,CAEGmyH,cACA,OAAOv9K,KAAKyqN,QACf,CAIKR,0DACF,OAAO/0M,GAAOyB,WAAW,8CAA+CxB,GAAAA,OAAAA,OAAAA,sBAAqC,CACzGyB,UAAW,0BAElB,IAEK4S,uDACF,MAAM+zJ,QAAgBv9K,KAAKmqN,SAKrBkC,QAAuBrsN,KAAKiqN,gBAClC,GAAI1sC,EAAQ9zJ,UAAY4iM,EAAe5iM,QAAS,CAI5C,GAAIzpB,KAAKgqN,WAkBL,OAjBAhqN,KAAKyqN,SAAW4B,EAGhBrsN,KAAKymN,kBAAoB,EACzBzmN,KAAKssN,iBAAmB,KACxBtsN,KAAKusN,wBAA0B,KAC/BvsN,KAAKwqN,eAAiB,EACtBxqN,KAAK6pN,SAAStiM,OAAS,EACvBvnB,KAAKqqN,yBAA2B,KAChCrqN,KAAKkrN,qBAAuB,KAK5BlrN,KAAK0lF,KAAK,UAAW2mI,EAAgB9uC,SAC/B1yH,GAAM,GAEL7qD,KAAKyqN,SAGhB,MAAMjvM,EAAQtG,GAAOgwB,UAAU,6BAA8B/vB,GAAAA,OAAAA,OAAAA,cAA6B,CACtFulD,MAAO,UACP6iH,QAASA,EACTivC,gBAAiBH,IAIrB,MADArsN,KAAK0lF,KAAK,QAASlqE,GACbA,CACT,CAED,OAAO+hK,CACV,IAEGuB,kBAKA,OAJA9+K,KAAKgrN,wBAAwB,IAAMhrN,KAAK4rN,gBAAkB,GAAG7hM,MAAM+0J,IAC/D9+K,KAAKyrN,oBAAoB3sC,EAAzB,IACAtjK,QAE6B,MAAzBxb,KAAKssN,iBAA4BtsN,KAAKssN,kBAAmB,CACpE,CAEGF,cACA,OAAwB,MAAhBpsN,KAAKysN,OAChB,CAEGL,YAAQhpN,GACJA,IAAUpD,KAAKysN,SACfzsN,KAAKysN,QAAU91D,aAAY,KAAQ32J,KAAKorD,MAAL,GAAgBprD,KAAK4rN,iBAEnD5rN,KAAK0sN,iBACN1sN,KAAK0sN,eAAiB9jK,YAAW,KAC7B5oD,KAAKorD,OAILprD,KAAK0sN,eAAiB9jK,YAAW,KAGxB5oD,KAAKysN,SAAWzsN,KAAKorD,OAG1BprD,KAAK0sN,eAAiB,IAAtB,GACD1sN,KAAK4rN,gBAPR,GAQD,MAGCxoN,GAASpD,KAAKysN,UACtB71D,cAAc52J,KAAKysN,SACnBzsN,KAAKysN,QAAU,KAEtB,CAEGb,sBACA,OAAO5rN,KAAKuqN,gBACf,CAEGqB,oBAAgBxoN,GAChB,GAAsB,kBAAXA,GAAuBA,GAAS,GAAK0T,SAAS/T,OAAOK,KAAWA,EACvE,MAAM,IAAIwc,MAAM,4BAGpB5f,KAAKuqN,iBAAmBnnN,EAEpBpD,KAAKysN,UACL71D,cAAc52J,KAAKysN,SACnBzsN,KAAKysN,QAAU91D,aAAY,KAAQ32J,KAAKorD,MAAL,GAAgBprD,KAAKuqN,kBAE/D,CAEDoC,sBACI,MAAM/pL,EAAM6vF,KAaZ,OAVK7vF,EAAM5iC,KAAKwqN,eAAkB,EAAIxqN,KAAKuqN,mBACvCvqN,KAAKwqN,eAAiB5nL,EACtB5iC,KAAKusN,wBAA0BvsN,KAAK4sN,iBAAiB7iM,MAAM+0J,KAC1B,MAAzB9+K,KAAKssN,kBAA4BxtC,EAAc9+K,KAAKssN,oBACpDtsN,KAAKssN,iBAAmBxtC,GAErB9+K,KAAKssN,qBAIbtsN,KAAKusN,uBACf,CAEDd,oBAAoB3sC,GAEa,MAAzB9+K,KAAKssN,kBAA4BxtC,EAAc9+K,KAAKssN,mBAGxDtsN,KAAKwqN,eAAiB/3F,MAGO,MAAzBzyH,KAAKssN,kBAA4BxtC,EAAc9+K,KAAKssN,oBACpDtsN,KAAKssN,iBAAmBxtC,EACxB9+K,KAAKusN,wBAA0B3iM,QAAQE,QAAQg1J,IAEtD,CAEK+tC,mBAAmB1I,EAAyBL,EAAwBv6J,6CACtE,OAAOvpD,KAAK8sN,oBAAoB3I,EAAmC,MAAjBL,EAAyB,EAAGA,EAAev6J,GAAW,EAAG,KAC9G,IAEKujK,oBAAoB3I,EAAyBL,EAAuBv6J,EAAiBwjK,6CACvF,MAAMzI,QAAgBtkN,KAAKgsN,sBAAsB7H,GAGjD,OAAKG,EAAUA,EAAQR,cAAe,IAAMA,EAAwBQ,EAG7D,IAAI16L,SAAQ,CAACE,EAASkW,KACzB,MAAMgtL,EAAiC,GAEvC,IAAI1hK,GAAO,EACX,MAAM2hK,EAAc,WAChB,QAAI3hK,IACJA,GAAO,EACP0hK,EAAYzrN,SAASsK,IAAWA,GAAM,KAC/B,EACV,EAEKqhN,EAAgB5I,IACdA,EAAQR,cAAgBA,GACxBmJ,KACJnjM,EAAQw6L,EAAR,EAKJ,GAHAtkN,KAAKooB,GAAG+7L,EAAiB+I,GACzBF,EAAYpsN,MAAK,KAAQZ,KAAKqoB,eAAe87L,EAAiB+I,EAArC,IAErBH,EAAa,CACb,IAAII,EAAkBJ,EAAYK,WAC9BC,EAAuB,KAC3B,MAAMC,EAAwBxuC,GAAuB70J,GAAAA,UAAAA,OAAAA,GAAAA,YAC7CqhC,UAKET,GAAM,KAEZ7qD,KAAK+oB,oBAAoBgkM,EAAYjqN,MAAMinB,MAAY9oB,GAASgpB,GAAAA,UAAAA,OAAAA,GAAAA,YAC5D,IAAIqhC,EAAJ,CAEA,GAAIrqD,GAAS8rN,EAAY9rN,MACrBksN,EAAkBruC,MAEf,CAEH,CACI,MAAMyuC,QAAcvtN,KAAKwtN,eAAerJ,GACxC,GAAIoJ,GAA8B,MAArBA,EAAMzuC,YAAuB,MAC7C,CAaD,IAPoB,MAAhBuuC,IACAA,EAAeF,EAAkB,EAC7BE,EAAeN,EAAYK,aAC3BC,EAAeN,EAAYK,aAI5BC,GAAgBvuC,GAAa,CAChC,GAAIxzH,EAAQ,OAEZ,MAAM/jC,QAAcvnB,KAAKytN,yBAAyBJ,GAClD,IAAK,IAAI1rG,EAAK,EAAGA,EAAKp6F,EAAM09L,aAAa5kN,OAAQshH,IAAM,CACnD,MAAM/6F,EAAKW,EAAM09L,aAAatjG,GAG9B,GAAI/6F,EAAG7f,OAASo9M,EAAmB,OAGnC,GAAIv9L,EAAG9jB,OAASiqN,EAAYjqN,MAAQ8jB,EAAG3lB,QAAU8rN,EAAY9rN,MAAO,CAChE,GAAIqqD,EAAQ,OAGZ,MAAMg5J,QAAgBtkN,KAAK6sN,mBAAmBjmM,EAAG7f,KAAM+8M,GAGvD,GAAImJ,IAAiB,OAGrB,IAAInqM,EAAS,WAgBb,OAfI8D,EAAGxK,OAAS2wM,EAAY3wM,MAAQwK,EAAGoD,KAAO+iM,EAAY/iM,IAAMpD,EAAGxjB,MAAMwrB,GAAGm+L,EAAY3pN,OACpF0f,EAAS,WACW,OAAZ8D,EAAGxK,MAAiBwK,EAAG9jB,OAAS8jB,EAAGoD,IAAMpD,EAAGxjB,MAAM8c,WAC1D4C,EAAS,kBAIbkd,EAAO9qB,GAAOgwB,UAAU,2BAA4B/vB,GAAAA,OAAAA,OAAAA,qBAAoC,CACpFikM,UAAuB,aAAXt2L,GAAoC,cAAXA,EACrCA,SACAvf,YAAavD,KAAK0tN,iBAAiB9mM,GACnC7f,KAAMo9M,EACNG,YAIP,CACJ,CACD+I,GACH,CACJ,CAEG/hK,GACJtrD,KAAKyrD,KAAK,QAAS6hK,EApEE,CAsExB,MAAG9xM,IACI8vC,GACJtrD,KAAKyrD,KAAK,QAAS6hK,EAAnB,IAEP,IAED,GAAIhiK,EAAQ,OACZtrD,KAAKyrD,KAAK,QAAS6hK,GAEnBN,EAAYpsN,MAAK,KACbZ,KAAKqoB,eAAe,QAASilM,EAA7B,GAEP,CAED,GAAwB,kBAAb/jK,GAAyBA,EAAU,EAAG,CAC7C,MAAMc,EAAQzB,YAAW,KACjBqkK,KACJjtL,EAAO9qB,GAAOgwB,UAAU,mBAAoB/vB,GAAAA,OAAAA,OAAAA,QAAuB,CAAEo0C,QAASA,IAA9E,GACDA,GACCc,EAAMsjK,OAAStjK,EAAMsjK,QAEzBX,EAAYpsN,MAAK,KAAQ4pD,aAAaH,EAAb,GAC5B,IAER,IAEKuiK,2DACF,OAAO5sN,KAAKgrN,wBAAwB,EACvC,IAEKrjM,8DACI3nB,KAAKwpB,aAEX,MAAM1Y,QAAe9Q,KAAKurN,QAAQ,cAAe,CAAC,GAClD,IACI,OAAOvxM,GAAAA,GAAAA,KAAelJ,EAMzB,CALC,MAAO0K,GACL,OAAOtG,GAAOyB,WAAW,0BAA2BxB,GAAAA,OAAAA,OAAAA,aAA4B,CAC5EsQ,OAAQ,cACR3U,SAAQ0K,SAEf,CACJ,IAEKmN,WAAWilM,EAAyChlM,mDAChD5oB,KAAKwpB,aACX,MAAM1T,QAAe2R,EAAAA,GAAAA,mBAAkB,CACnC/D,QAAS1jB,KAAKooN,YAAYwF,GAC1BhlM,SAAU5oB,KAAK6tN,aAAajlM,KAG1B9X,QAAe9Q,KAAKurN,QAAQ,aAAcz1M,GAChD,IACI,OAAOkE,GAAAA,GAAAA,KAAelJ,EAMzB,CALC,MAAO0K,GACL,OAAOtG,GAAOyB,WAAW,0BAA2BxB,GAAAA,OAAAA,OAAAA,aAA4B,CAC5EsQ,OAAQ,aACR3P,SAAQhF,SAAQ0K,SAEvB,CACJ,IAEKuN,oBAAoB6kM,EAAyChlM,mDACzD5oB,KAAKwpB,aACX,MAAM1T,QAAe2R,EAAAA,GAAAA,mBAAkB,CACnC/D,QAAS1jB,KAAKooN,YAAYwF,GAC1BhlM,SAAU5oB,KAAK6tN,aAAajlM,KAG1B9X,QAAe9Q,KAAKurN,QAAQ,sBAAuBz1M,GACzD,IACI,OAAOkE,GAAAA,GAAAA,KAAelJ,GAAQ0J,UAMjC,CALC,MAAOgB,GACL,OAAOtG,GAAOyB,WAAW,0BAA2BxB,GAAAA,OAAAA,OAAAA,aAA4B,CAC5EsQ,OAAQ,sBACR3P,SAAQhF,SAAQ0K,SAEvB,CACJ,IAEKsyM,QAAQF,EAAyChlM,mDAC7C5oB,KAAKwpB,aACX,MAAM1T,QAAe2R,EAAAA,GAAAA,mBAAkB,CACnC/D,QAAS1jB,KAAKooN,YAAYwF,GAC1BhlM,SAAU5oB,KAAK6tN,aAAajlM,KAG1B9X,QAAe9Q,KAAKurN,QAAQ,UAAWz1M,GAC7C,IACI,OAAOsH,EAAAA,GAAAA,SAAQtM,EAMlB,CALC,MAAO0K,GACL,OAAOtG,GAAOyB,WAAW,0BAA2BxB,GAAAA,OAAAA,OAAAA,aAA4B,CAC5EsQ,OAAQ,UACR3P,SAAQhF,SAAQ0K,SAEvB,CACJ,IAEKuyM,aAAaH,EAAyCppN,EAAgDokB,mDAClG5oB,KAAKwpB,aACX,MAAM1T,QAAe2R,EAAAA,GAAAA,mBAAkB,CACnC/D,QAAS1jB,KAAKooN,YAAYwF,GAC1BhlM,SAAU5oB,KAAK6tN,aAAajlM,GAC5BpkB,SAAUolB,QAAQE,QAAQtlB,GAAUulB,MAAM2X,IAAMtR,EAAAA,GAAAA,UAASsR,OAEvD5wB,QAAe9Q,KAAKurN,QAAQ,eAAgBz1M,GAClD,IACI,OAAOsH,EAAAA,GAAAA,SAAQtM,EAMlB,CALC,MAAO0K,GACL,OAAOtG,GAAOyB,WAAW,0BAA2BxB,GAAAA,OAAAA,OAAAA,aAA4B,CAC5EsQ,OAAQ,eACR3P,SAAQhF,SAAQ0K,SAEvB,CACJ,IAGDkyM,iBAAiB9mM,EAAiB7f,EAAeqmN,GAC7C,GAAY,MAARrmN,GAAwC,MAAxB8kB,EAAAA,GAAAA,eAAc9kB,GAAgB,MAAM,IAAI6Y,MAAM,sCAElE,MAAM9O,EAA8B8V,EAwCpC,OArCY,MAAR7f,GAAgB6f,EAAG7f,OAASA,GAC5BmO,GAAOyB,WAAW,2DAA4DxB,GAAAA,OAAAA,OAAAA,cAA6B,CAAE64M,aAAcpnM,EAAG7f,KAAMknN,aAAclnN,IAGtJ+J,EAAOq4D,KAAO,CAAO+kJ,EAAmB3kK,IAAoBt/B,GAAAA,UAAAA,OAAAA,GAAAA,YAKxD,IAAI1mB,EAJY,MAAZ2qN,IAAoBA,EAAW,GACpB,MAAX3kK,IAAmBA,EAAU,GAIhB,IAAb2kK,GAAgC,MAAdd,IAClB7pN,EAAc,CACV6Y,KAAMwK,EAAGxK,KACTtZ,KAAM8jB,EAAG9jB,KACT7B,MAAO2lB,EAAG3lB,MACV+oB,GAAIpD,EAAGoD,GACP5mB,MAAOwjB,EAAGxjB,MACVgqN,eAIR,MAAM9I,QAAgBtkN,KAAK8sN,oBAAoBlmM,EAAG7f,KAAMmnN,EAAU3kK,EAAShmD,GAC3E,OAAe,MAAX+gN,GAAgC,IAAb4J,EAAyB,MAGhDluN,KAAK6pN,SAAS,KAAOjjM,EAAG7f,MAAQu9M,EAAQxlC,YAEjB,IAAnBwlC,EAAQ/7J,QACRrzC,GAAOyB,WAAW,qBAAsBxB,GAAAA,OAAAA,OAAAA,eAA8B,CAClEgvM,gBAAiBv9L,EAAG7f,KACpBkiB,YAAarC,EACb09L,QAASA,IAGVA,EACV,IAEMxzM,CACV,CAEKqY,gBAAgBglM,mDACZnuN,KAAKwpB,aACX,MAAM4kM,QAAcxkM,QAAQE,QAAQqkM,GAAmBpkM,MAAK4O,IAAKvb,EAAAA,GAAAA,SAAQub,KACnE/R,EAAK5mB,KAAK8nN,UAAU7+L,YAAYklM,GACd,MAApBvnM,EAAGk9L,gBAAyBl9L,EAAGk9L,cAAgB,GACnD,MAAMhlC,QAAoB9+K,KAAKgrN,wBAAwB,IAAM,EAAIhrN,KAAK4rN,iBACtE,IACI,MAAM7kN,QAAa/G,KAAKurN,QAAQ,kBAAmB,CAAE4C,kBAAmBC,IACxE,OAAOpuN,KAAK0tN,iBAAiB9mM,EAAI7f,EAAM+3K,EAK1C,CAJC,MAAOtjK,GAGL,MAFMA,EAAOyN,YAAcrC,EACrBpL,EAAO2oM,gBAAkBv9L,EAAG7f,KAC5ByU,CACT,CACJ,IAEK6yM,uBAAuBplM,6CACzB,MAAMrK,QAAoBqK,EAEpBrC,EAAU,CAAC,EA0BjB,MAxBA,CAAC,OAAQ,MAAMrlB,SAASL,IACD,MAAf0d,EAAO1d,KACX0lB,EAAG1lB,GAAO0oB,QAAQE,QAAQlL,EAAO1d,IAAM6oB,MAAMtJ,GAAOA,EAAIzgB,KAAKooN,YAAY3nM,GAAI,OAA7E,IAGJ,CAAC,WAAY,WAAY,eAAgB,uBAAwB,SAASlf,SAASL,IAC5D,MAAf0d,EAAO1d,KACX0lB,EAAG1lB,GAAO0oB,QAAQE,QAAQlL,EAAO1d,IAAM6oB,MAAMtJ,GAAOA,EAAIzG,GAAAA,GAAAA,KAAeyG,GAAI,OAA3E,IAGJ,CAAC,QAAQlf,SAASL,IACK,MAAf0d,EAAO1d,KACX0lB,EAAG1lB,GAAO0oB,QAAQE,QAAQlL,EAAO1d,IAAM6oB,MAAMtJ,GAAa,MAALA,EAAaA,EAAG,OAArE,IAGA7B,EAAOqkC,aACPr8B,EAAGq8B,WAAajjD,KAAK8nN,UAAU7kK,WAAWrkC,EAAOqkC,aAGrD,CAAC,QAAQ1hD,SAASL,IACK,MAAf0d,EAAO1d,KACX0lB,EAAG1lB,GAAO0oB,QAAQE,QAAQlL,EAAO1d,IAAM6oB,MAAMtJ,GAAOA,GAAIrD,EAAAA,GAAAA,SAAQqD,GAAI,OAApE,IAGGzgB,KAAK8nN,UAAU7D,yBAAyBx8L,EAAAA,GAAAA,mBAAkBb,GACpE,IAEK0nM,WAAWlrM,6CACbA,QAAeA,EAEf,MAAMtS,EAAc,CAAC,EAgBrB,OAdsB,MAAlBsS,EAAOM,UACP5S,EAAO4S,QAAU1jB,KAAKooN,YAAYhlM,EAAOM,UAG7C,CAAC,YAAa,UAAUniB,SAASL,IACH,MAAhBkiB,EAAQliB,KAClB4P,EAAO5P,GAAakiB,EAAQliB,GAA5B,IAGJ,CAAC,YAAa,WAAWK,SAASL,IACJ,MAAhBkiB,EAAQliB,KAClB4P,EAAO5P,GAAOlB,KAAK6tN,aAAmBzqM,EAAQliB,IAA9C,IAGGlB,KAAK8nN,UAAU1kM,aAAaqE,EAAAA,GAAAA,mBAAkB3W,GACxD,IAEKy9M,MAAMtlM,EAAiCL,EAAoB8hC,6CACzDA,GApkDe,IAqkDfx1C,GAAOyB,WAAW,0CAA2CxB,GAAAA,OAAAA,OAAAA,aAA4B,CACrFq5M,UAAW9jK,EAASzhC,gBAI5B,MAAMwlM,EAAWxlM,EAAYe,GAEvBlZ,QAAe9Q,KAAKurN,QAAQ,OAAQ,CAAEtiM,cAAaL,aAGzD,GAAI8hC,GAAW,GAAkB,WAAb9hC,GAAqC,MAAZ6lM,GAAgD,eAA5B39M,EAAOsI,UAAU,EAAG,MAAyByS,EAAAA,GAAAA,eAAc/a,GAAU,KAAO,EACzI,IACI,MAAMsL,GAAOuH,EAAAA,GAAAA,cAAa7S,EAAQ,GAG5B+5M,GAASlnM,EAAAA,GAAAA,cAAavH,EAAM,EAAG,IAChCpC,GAAAA,GAAAA,KAAe6wM,GAAQj8L,GAAG6/L,IAC3Bv5M,GAAOyB,WAAW,iCAAkCxB,GAAAA,OAAAA,OAAAA,eAA8B,CAC9ElK,KAAM,iBACN4X,UAAW,sDACXoG,cAAa7M,KAAMtL,IAK3B,MAAM85M,EAAsB,GACtB8D,EAAa10M,GAAAA,GAAAA,MAAe2J,EAAAA,GAAAA,cAAavH,EAAM,GAAI,KAAK5B,WACxDm0M,EAAa30M,GAAAA,GAAAA,MAAe2J,EAAAA,GAAAA,cAAavH,EAAMsyM,EAAYA,EAAa,KAAKl0M,WAC7Eo0M,GAAWjrM,EAAAA,GAAAA,cAAavH,EAAMsyM,EAAa,IACjD,IAAK,IAAI97K,EAAI,EAAGA,EAAI+7K,EAAY/7K,IAAK,CACjC,MAAMvN,EAAM+hL,GAAawH,EAAc,GAAJh8K,GACxB,MAAPvN,GACAnwB,GAAOyB,WAAW,yCAA0CxB,GAAAA,OAAAA,OAAAA,eAA8B,CACtFlK,KAAM,iBACN4X,UAAW,sDACXoG,cAAa7M,KAAMtL,IAG3B85M,EAAKhqN,KAAKykC,EACb,CAGD,MAAM/vB,EAAW+xM,GAAYjrM,EAAM,IAG9BpC,GAAAA,GAAAA,MAAe2J,EAAAA,GAAAA,cAAavH,EAAM,IAAK,MAAM8D,UAC9ChL,GAAOyB,WAAW,4CAA6CxB,GAAAA,OAAAA,OAAAA,eAA8B,CACzFlK,KAAM,iBACN4X,UAAW,sDACXoG,cAAa7M,KAAMtL,IAG3B,MAAM+9M,GAAmBlrM,EAAAA,GAAAA,cAAavH,EAAM,GAAI,KAG1C4oM,EAAYqC,GAAYjrM,EAAM,KAE9B0yM,QAAmB9uN,KAAK2qN,cAA2B1hM,EAAa3T,EAAUs1M,GAC9D,MAAdkE,GACA55M,GAAOyB,WAAW,yCAA0CxB,GAAAA,OAAAA,OAAAA,eAA8B,CACtFlK,KAAM,iBACN4X,UAAW,sDACXoG,cAAa7M,KAAMtL,IAI3B,MAAM8V,EAAK,CACPoD,GAAIykM,EACJryM,MAAMC,EAAAA,GAAAA,WAAU,CAAEwyM,EAAkBnH,GAAY,CAAEoH,EAAY9J,OAGlE,OAAOhlN,KAAKuuN,MAAM3nM,EAAIgC,EAAU8hC,EAAU,EAI7C,CAFC,MAAOlvC,GACL,GAAIA,EAAMiE,OAAStK,GAAAA,OAAAA,OAAAA,aAA8B,MAAMqG,CAC1D,CAGL,IACI,OAAO4B,EAAAA,GAAAA,SAAQtM,EAMlB,CALC,MAAO0K,GACL,OAAOtG,GAAOyB,WAAW,0BAA2BxB,GAAAA,OAAAA,OAAAA,aAA4B,CAC5EsQ,OAAQ,OACR3P,OAAQ,CAAEmT,cAAaL,YAAY9X,SAAQ0K,SAElD,CAEJ,IAEK3R,KAAKof,EAA6CL,mDAC9C5oB,KAAKwpB,aACX,MAAMulM,QAAiBtnM,EAAAA,GAAAA,mBAAkB,CACrCwB,YAAajpB,KAAKquN,uBAAuBplM,GACzCL,SAAU5oB,KAAK6tN,aAAajlM,GAC5Bs/L,gBAAiBt+L,QAAQE,QAAQb,EAAYi/L,mBAEjD,OAAOloN,KAAKuuN,MAAMQ,EAAS9lM,YAAa8lM,EAASnmM,SAAUmmM,EAAS7G,gBAAkB,GAAI,EAC7F,IAEKl/L,YAAYC,mDACRjpB,KAAKwpB,aACX,MAAM1T,QAAe2R,EAAAA,GAAAA,mBAAkB,CACnCwB,YAAajpB,KAAKquN,uBAAuBplM,KAGvCnY,QAAe9Q,KAAKurN,QAAQ,cAAez1M,GACjD,IACI,OAAOkE,GAAAA,GAAAA,KAAelJ,EAMzB,CALC,MAAO0K,GACL,OAAOtG,GAAOyB,WAAW,0BAA2BxB,GAAAA,OAAAA,OAAAA,aAA4B,CAC5EsQ,OAAQ,cACR3P,SAAQhF,SAAQ0K,SAEvB,CACJ,IAEK4sM,YAAYwF,6CAEgB,kBAD9BA,QAAsBA,IAElB14M,GAAOS,mBAAmB,8BAA+B,OAAQi4M,GAGrE,MAAMlqM,QAAgB1jB,KAAK0pB,YAAYkkM,GAMvC,OALe,MAAXlqM,GACAxO,GAAOyB,WAAW,0BAA2BxB,GAAAA,OAAAA,OAAAA,sBAAqC,CAC9EyB,UAAW,eAAF,OAAkBW,KAAK5Q,UAAUinN,GAAjC,OAGVlqM,CACV,IAEKsrM,UAAUC,EAAqEC,mDAC3ElvN,KAAKwpB,aAEXylM,QAA4BA,EAG5B,IAAInwC,GAAe,IAEnB,MAAMhpK,EAAiC,CACnCo5M,sBAAuBA,GAG3B,IAAIlrM,EAAAA,GAAAA,aAAYirM,EAAqB,IACjCn5M,EAAO8tM,UAAYqL,OAEnB,IACIn5M,EAAO8S,eAAiB5oB,KAAK6tN,aAAaoB,IACtCjrM,EAAAA,GAAAA,aAAYlO,EAAO8S,YACnBk2J,EAAchoK,SAAShB,EAAO8S,SAASxP,UAAU,GAAI,IAI5D,CAFC,MAAOoC,GACLtG,GAAOS,mBAAmB,kCAAmC,sBAAuBs5M,EACvF,CAGL,OAAO7jK,EAAAA,GAAAA,OAAK,IAAWnhC,GAAAA,UAAAA,OAAAA,GAAAA,YACnB,MAAM1C,QAAcvnB,KAAKurN,QAAQ,WAAYz1M,GAG7C,GAAa,MAATyR,EAKA,OAAwB,MAApBzR,EAAO8tM,WACuC,MAA1C5jN,KAAK6pN,SAAS,KAAO/zM,EAAO8tM,YAIb,MAAnB9tM,EAAO8S,UACHk2J,EAAc9+K,KAAK6pN,SAAStiM,MAL6B,UASjE,EAIJ,GAAI2nM,EAAqB,CACrB,IAAIpwC,EAAsB,KAC1B,IAAK,IAAI78K,EAAI,EAAGA,EAAIslB,EAAM09L,aAAa5kN,OAAQ4B,IAAK,CAChD,MAAM2kB,EAAKW,EAAM09L,aAAahjN,GAC9B,GAAsB,MAAlB2kB,EAAGk4J,YACHl4J,EAAGk9L,cAAgB,OAEhB,GAAwB,MAApBl9L,EAAGk9L,cAAuB,CACd,MAAfhlC,IACAA,QAAoB9+K,KAAKgrN,wBAAwB,IAAM,EAAIhrN,KAAK4rN,kBAIpE,IAAI9H,EAAiBhlC,EAAcl4J,EAAGk4J,YAAe,EACjDglC,GAAiB,IAAKA,EAAgB,GAC1Cl9L,EAAGk9L,cAAgBA,CACtB,CACJ,CAED,MAAMqL,EAAoBnvN,KAAK8nN,UAAU5C,sBAAsB39L,GAE/D,OADA4nM,EAAalK,aAAekK,EAAalK,aAAa37M,KAAKsd,GAA4B5mB,KAAK0tN,iBAAiB9mM,KACtGuoM,CACV,CAED,OAAOnvN,KAAK8nN,UAAUvgM,MAAMA,EAE/B,KAAE,CAAEikC,SAAUxrD,MAClB,IAED0nB,SAASunM,GACL,OAAwBjvN,KAAKgvN,UAAUC,GAAqB,EAC/D,CAEDxB,yBAAyBwB,GACrB,OAAwCjvN,KAAKgvN,UAAUC,GAAqB,EAC/E,CAEKzB,eAAerJ,mDACXnkN,KAAKwpB,aACX26L,QAAwBA,EAExB,MAAMruM,EAAS,CAAEquM,gBAAiBnkN,KAAK8nN,UAAU/gN,KAAKo9M,GAAiB,IAEvE,OAAO/4J,EAAAA,GAAAA,OAAK,IAAWnhC,GAAAA,UAAAA,OAAAA,GAAAA,YACnB,MAAMnZ,QAAe9Q,KAAKurN,QAAQ,iBAAkBz1M,GAEpD,GAAc,MAAVhF,EACA,OAA6C,MAAzC9Q,KAAK6pN,SAAS,KAAO1F,GACd,UAEX,EAGJ,MAAMv9L,EAAK5mB,KAAK8nN,UAAU3C,oBAAoBr0M,GAE9C,GAAsB,MAAlB8V,EAAGk4J,YACHl4J,EAAGk9L,cAAgB,OAEhB,GAAwB,MAApBl9L,EAAGk9L,cAAuB,CAIjC,IAAIA,SAHsB9jN,KAAKgrN,wBAAwB,IAAM,EAAIhrN,KAAK4rN,kBAGnChlM,EAAGk4J,YAAe,EACjDglC,GAAiB,IAAKA,EAAgB,GAC1Cl9L,EAAGk9L,cAAgBA,CACtB,CAED,OAAO9jN,KAAK0tN,iBAAiB9mM,EAChC,KAAE,CAAE4kC,SAAUxrD,MAClB,IAEKgsN,sBAAsB7H,mDAClBnkN,KAAKwpB,aAEX26L,QAAwBA,EAExB,MAAMruM,EAAS,CAAEquM,gBAAiBnkN,KAAK8nN,UAAU/gN,KAAKo9M,GAAiB,IAEvE,OAAO/4J,EAAAA,GAAAA,OAAK,IAAWnhC,GAAAA,UAAAA,OAAAA,GAAAA,YACnB,MAAMnZ,QAAe9Q,KAAKurN,QAAQ,wBAAyBz1M,GAE3D,GAAc,MAAVhF,EACA,OAA6C,MAAzC9Q,KAAK6pN,SAAS,KAAO1F,GACd,UAEX,EAIJ,GAAwB,MAApBrzM,EAAO8yM,UAAqB,OAEhC,MAAMU,EAAUtkN,KAAK8nN,UAAUxD,QAAQxzM,GAEvC,GAA2B,MAAvBwzM,EAAQxlC,YACRwlC,EAAQR,cAAgB,OAErB,GAA6B,MAAzBQ,EAAQR,cAAuB,CAItC,IAAIA,SAHsB9jN,KAAKgrN,wBAAwB,IAAM,EAAIhrN,KAAK4rN,kBAGnCtH,EAAQxlC,YAAe,EACtDglC,GAAiB,IAAKA,EAAgB,GAC1CQ,EAAQR,cAAgBA,CAC3B,CAED,OAAOQ,CACV,KAAE,CAAE94J,SAAUxrD,MAClB,IAEKksN,QAAQ9oM,mDACJpjB,KAAKwpB,aACX,MAAM1T,QAAe2R,EAAAA,GAAAA,mBAAkB,CAAErE,OAAQpjB,KAAKsuN,WAAWlrM,KAC3DshM,QAAyB1kN,KAAKurN,QAAQ,UAAWz1M,GAIvD,OAHA4uM,EAAKnjN,SAAS+Y,IACS,MAAfA,EAAIirM,UAAmBjrM,EAAIirM,SAAU,EAAQ,IAE9ChC,GAAUa,QAAQpkN,KAAK8nN,UAAUxC,UAAU5zM,KAAK1R,KAAK8nN,WAArDvE,CAAiEmB,EAC3E,IAEK0K,0DAEF,aADMpvN,KAAKwpB,aACJxpB,KAAKurN,QAAQ,gBAAiB,CAAC,EACzC,IAEKsC,aAAajlM,6CAGf,GAAyB,kBAFzBA,QAAiBA,IAEoBA,EAAW,EAAG,CAC3CA,EAAW,GACX1T,GAAOS,mBAAmB,mBAAoB,WAAYiT,GAG9D,IAAIk2J,QAAoB9+K,KAAKgrN,wBAAwB,IAAM,EAAIhrN,KAAK4rN,iBAGpE,OAFA9sC,GAAel2J,EACXk2J,EAAc,IAAKA,EAAc,GAC9B9+K,KAAK8nN,UAAUl/L,SAASk2J,EAClC,CAED,OAAO9+K,KAAK8nN,UAAUl/L,SAASA,EAClC,IAGKymM,YAAYpkN,6CACd,IAAIqkN,EAAcrkN,EAClB,OAAa,CACT,GAAoB,KAAhBqkN,GAAsC,MAAhBA,EAAuB,OAAO,KAIxD,GAAa,QAATrkN,GAAkC,QAAhBqkN,EAAyB,OAAO,KAGtD,MAAM5sK,QAAa1iD,KAAKuvN,aAAaD,EAAa,eAGlD,GAAY,MAAR5sK,EAAc,CACd,MAAM+sI,EAAW,IAAIm4B,GAAS5nN,KAAM0iD,EAAMz3C,GAG1C,OAAIqkN,IAAgBrkN,UAAgBwkL,EAASs4B,oBAEtCt4B,EAFoE,IAG9E,CAGD6/B,EAAcA,EAAYjlN,MAAM,KAAKpG,MAAM,GAAG4C,KAAK,IACtD,CAEJ,IAEK0oN,aAAatkN,EAAc2L,6CACZ,MAAbA,IAAqBA,EAAY,OAErC,MAAM2mK,QAAgBv9K,KAAKwpB,aAGtB+zJ,EAAQukC,YACT5sM,GAAOyB,WACH,+BACAxB,GAAAA,OAAAA,OAAAA,sBACA,CAAEyB,YAAW2mK,QAASA,EAAQtyK,OAItC,IAEI,MAAMukN,QAAiBxvN,KAAK6J,KAAK,CAC7BmgB,GAAIuzJ,EAAQukC,WACZ1lM,KAAO,cAAe8a,EAAAA,GAAAA,IAASjsB,GAAMmO,UAAU,KAEnD,OAAOpZ,KAAK8nN,UAAUpC,YAAY8J,EAGrC,CAFC,MAAOh0M,GAER,CAED,OAAO,IACV,IAEKkO,YAAYze,6CACdA,QAAaA,EAGb,IACI,OAAO2e,QAAQE,QAAQ9pB,KAAK8nN,UAAUpkM,QAAQzY,GAIjD,CAHC,MAAOuQ,GAEL,IAAIwI,EAAAA,GAAAA,aAAY/Y,GAAS,MAAMuQ,CAClC,CAEoB,kBAAVvQ,GACPiK,GAAOS,mBAAmB,mBAAoB,OAAQ1K,GAI1D,MAAMwkL,QAAiBzvL,KAAKqvN,YAAYpkN,GACxC,OAAKwkL,QAEQA,EAAStxK,aAFE,IAG3B,IAEKsxM,cAAc/rM,6CAChBA,QAAgBA,EAGhB,MAAM/e,GAFN+e,EAAU1jB,KAAK8nN,UAAUpkM,QAAQA,IAEZtK,UAAU,GAAGzJ,cAAgB,gBAE5C+/M,QAAqB1vN,KAAKuvN,aAAa5qN,EAAM,iBACnD,GAAoB,MAAhB+qN,EAAwB,OAAO,KAGnC,MAAMzkN,EAAOm8M,SAAmBpnN,KAAK6J,KAAK,CACtCmgB,GAAI0lM,EACJtzM,KAAO,cAAe8a,EAAAA,GAAAA,IAASvyB,GAAMyU,UAAU,KAC/C,GAGJ,aADmBpZ,KAAK0pB,YAAYze,KACxByY,EAAkB,KAEvBzY,CACV,IAEKw9M,UAAUkH,6CACZ,IAAIlgC,EAAqB,KACzB,IAAIzrK,EAAAA,GAAAA,aAAY2rM,GAAgB,CAE5B,MAEMhrN,EAFU3E,KAAK8nN,UAAUpkM,QAAQisM,GAElBv2M,UAAU,GAAGzJ,cAAgB,gBAE5CigN,QAAwB5vN,KAAKuvN,aAAa5qN,EAAM,aACtD,IAAKirN,EAAmB,OAAO,KAG/BngC,EAAW,IAAIm4B,GAAS5nN,KAAM4vN,EAAiBjrN,GAC/C,IACI,MAAMgkN,QAAel5B,EAASg5B,YAC9B,GAAIE,EAAU,OAAOA,EAAOtjL,GAG/B,CAFC,MAAO7pB,GACL,GAAIA,EAAMiE,OAAStK,GAAAA,OAAAA,OAAAA,eAAgC,MAAMqG,CAC5D,CAGD,IAEI,MAAMvQ,EAAOm8M,SAAmBpnN,KAAK6J,KAAK,CACtCmgB,GAAI4lM,EACJxzM,KAAO,cAAe8a,EAAAA,GAAAA,IAASvyB,GAAMyU,UAAU,KAC/C,GACJq2K,QAAiBzvL,KAAKqvN,YAAYpkN,EAIrC,CAHC,MAAOuQ,GACL,GAAIA,EAAMiE,OAAStK,GAAAA,OAAAA,OAAAA,eAAgC,MAAMqG,EACzD,OAAO,IACV,CAEJ,MAGG,GADAi0K,QAAiBzvL,KAAKqvN,YAAYM,IAC7BlgC,EAAY,OAAO,KAG5B,MAAMk5B,QAAel5B,EAASg5B,YAC9B,OAAc,MAAVE,EAAyB,KAEtBA,EAAOtjL,GACjB,IAEDkmL,QAAQ9lM,EAAgB3P,GACpB,OAAOZ,GAAOyB,WAAW8O,EAAS,mBAAoBtQ,GAAAA,OAAAA,OAAAA,gBAA+B,CAAEyB,UAAW6O,GACrG,CAEDoqM,YAAYn1J,GACR16D,KAAKosN,QAAWpsN,KAAKilF,QAAQ7hE,QAAQ7gB,GAAMA,EAAEqkN,aAAYvmN,OAAS,CACrE,CAEDyvN,WAAWp1J,GACP16D,KAAKosN,QAAWpsN,KAAKilF,QAAQ7hE,QAAQ7gB,GAAMA,EAAEqkN,aAAYvmN,OAAS,CACrE,CAED0vN,kBAAkB7nM,EAAsBC,EAAoBsjC,GACxD,MAAMiP,EAAQ,IAAI8rJ,GAAMF,GAAYp+L,GAAYC,EAAUsjC,GAI1D,OAHAzrD,KAAKilF,QAAQrkF,KAAK85D,GAClB16D,KAAK6vN,YAAYn1J,GAEV16D,IACV,CAEDooB,GAAGF,EAAsBC,GACrB,OAAOnoB,KAAK+vN,kBAAkB7nM,EAAWC,GAAU,EACtD,CAEDsjC,KAAKvjC,EAAsBC,GACvB,OAAOnoB,KAAK+vN,kBAAkB7nM,EAAWC,GAAU,EACtD,CAGDu9D,KAAKx9D,GAAyC,2BAAhBhX,EAAgB,iCAAhBA,EAAgB,kBAC1C,IAAIJ,GAAS,EAETk/M,EAAwB,GAExBC,EAAW3J,GAAYp+L,GAoB3B,OAnBAloB,KAAKilF,QAAUjlF,KAAKilF,QAAQ7hE,QAAQs3C,GAC5BA,EAAMx6D,MAAQ+vN,IAElBrnK,YAAW,KACP8R,EAAMvyC,SAASpW,MAAM/R,KAAMkR,EAA3B,GACD,GAEHJ,GAAS,GAEL4pD,EAAMjP,OACNukK,EAAQpvN,KAAK85D,IACN,MAMfs1J,EAAQzuN,SAASm5D,IAAY16D,KAAK8vN,WAAWp1J,EAAhB,IAEtB5pD,CACV,CAED20E,cAAcv9D,GACV,IAAKA,EAAa,OAAOloB,KAAKilF,QAAQ5kF,OAEtC,IAAI4vN,EAAW3J,GAAYp+L,GAC3B,OAAOloB,KAAKilF,QAAQ7hE,QAAQs3C,GAChBA,EAAMx6D,MAAQ+vN,IACvB5vN,MACN,CAEDmlF,UAAUt9D,GACN,GAAiB,MAAbA,EACA,OAAOloB,KAAKilF,QAAQ37E,KAAKoxD,GAAUA,EAAMvyC,WAG7C,IAAI8nM,EAAW3J,GAAYp+L,GAC3B,OAAOloB,KAAKilF,QACP7hE,QAAQs3C,GAAWA,EAAMx6D,MAAQ+vN,IACjC3mN,KAAKoxD,GAAUA,EAAMvyC,UAC7B,CAEDG,IAAIJ,EAAsBC,GACtB,GAAgB,MAAZA,EACA,OAAOnoB,KAAK2lF,mBAAmBz9D,GAGnC,MAAM8nM,EAAwB,GAE9B,IAAIn3L,GAAQ,EAERo3L,EAAW3J,GAAYp+L,GAW3B,OAVAloB,KAAKilF,QAAUjlF,KAAKilF,QAAQ7hE,QAAQs3C,GAC5BA,EAAMx6D,MAAQ+vN,GAAYv1J,EAAMvyC,UAAYA,MAC5C0Q,IACJA,GAAQ,EACRm3L,EAAQpvN,KAAK85D,IACN,MAGXs1J,EAAQzuN,SAASm5D,IAAY16D,KAAK8vN,WAAWp1J,EAAhB,IAEtB16D,IACV,CAED2lF,mBAAmBz9D,GACf,IAAI8nM,EAAwB,GAC5B,GAAiB,MAAb9nM,EACA8nM,EAAUhwN,KAAKilF,QAEfjlF,KAAKilF,QAAU,OACZ,CACH,MAAMgrI,EAAW3J,GAAYp+L,GAC7BloB,KAAKilF,QAAUjlF,KAAKilF,QAAQ7hE,QAAQs3C,GAC5BA,EAAMx6D,MAAQ+vN,IAClBD,EAAQpvN,KAAK85D,IACN,IAEd,CAID,OAFAs1J,EAAQzuN,SAASm5D,IAAY16D,KAAK8vN,WAAWp1J,EAAhB,IAEtB16D,IACV,6SCtpEL,MAAMkV,GAAS,IAAIC,GAAAA,OAAOF,IAKpBi7M,GAAW,CAAE,OAAQ,eAE3B,SAASC,GAAQ/sN,EAAYgtN,GACzB,GAAa,MAAThtN,EAAiB,OAAO,KAG5B,GAA8B,kBAAnBA,EAAMyY,SAAyBzY,EAAMyY,QAAQpS,MAAM,YAAa,CACvE,MAAM2S,GAAO4H,EAAAA,GAAAA,aAAY5gB,EAAMgZ,MAAQhZ,EAAMgZ,KAAM,KACnD,IAAKg0M,GAAeh0M,EAChB,MAAO,CAAEP,QAASzY,EAAMyY,QAASO,OAExC,CAGD,GAAsB,kBAAXhZ,EAAqB,CAC5B,IAAK,MAAMlC,KAAOkC,EAAO,CACrB,MAAM0N,EAASq/M,GAAQ/sN,EAAMlC,GAAMkvN,GACnC,GAAIt/M,EAAU,OAAOA,CACxB,CACD,OAAO,IACV,CAGD,GAAsB,kBAAX1N,EACP,IACI,OAAO+sN,GAAQ54M,KAAKtQ,MAAM7D,GAAQgtN,EACnB,CAAjB,MAAO50M,GAAU,CAGvB,OAAO,IACV,CAED,SAAS60M,GAAW5qM,EAAgBjK,EAAY1F,GAE5C,MAAMmT,EAAcnT,EAAOmT,aAAenT,EAAOq4M,kBAIjD,GAAe,SAAX1oM,EAAmB,CACnB,MAAM3U,EAASq/M,GAAQ30M,GAAO,GAC9B,GAAI1K,EAAU,OAAOA,EAAOsL,KAG5BlH,GAAOyB,WAAW,sFAAuFxB,GAAAA,OAAAA,OAAAA,eAA8B,CACnIiH,KAAM,KAAM6M,cAAazN,SAEhC,CAED,GAAe,gBAAXiK,EAA0B,CAE1B,IAAI3U,EAASq/M,GAAQ30M,EAAMmsC,MAAM,GACnB,MAAV72C,IAAkBA,EAASq/M,GAAQ30M,GAAO,IAG1C1K,GACAoE,GAAOyB,WAAW,4EAA6ExB,GAAAA,OAAAA,OAAAA,wBAAuC,CAClI2N,OAAQhS,EAAO+K,QAAS4J,SAAQwD,cAAazN,SAGxD,CAID,IAAIK,EAAUL,EAAMK,QA4CpB,MA3CIL,EAAMiE,OAAStK,GAAAA,OAAAA,OAAAA,cAA8BqG,EAAMA,OAAyC,kBAAzBA,EAAMA,MAAMK,QAC/EA,EAAUL,EAAMA,MAAMK,QACQ,kBAAhBL,EAAMmsC,KACpB9rC,EAAUL,EAAMmsC,KACsB,kBAAxBnsC,EAAM80M,eACpBz0M,EAAUL,EAAM80M,cAEpBz0M,GAAWA,GAAW,IAAIlM,cAGtBkM,EAAQpS,MAAM,mDACdyL,GAAOyB,WAAW,oDAAqDxB,GAAAA,OAAAA,OAAAA,mBAAkC,CACrGqG,QAAOiK,SAAQwD,gBAKnBpN,EAAQpS,MAAM,yBACdyL,GAAOyB,WAAW,8BAA+BxB,GAAAA,OAAAA,OAAAA,cAA6B,CAC1EqG,QAAOiK,SAAQwD,gBAKnBpN,EAAQpS,MAAM,wEACdyL,GAAOyB,WAAW,0BAA2BxB,GAAAA,OAAAA,OAAAA,wBAAuC,CAChFqG,QAAOiK,SAAQwD,gBAKnBpN,EAAQpS,MAAM,2BACdyL,GAAOyB,WAAW,gDAAiDxB,GAAAA,OAAAA,OAAAA,sBAAqC,CACpGqG,QAAOiK,SAAQwD,gBAInBinM,GAASxsN,QAAQ+hB,IAAW,GAAK5J,EAAQpS,MAAM,iFAC/CyL,GAAOyB,WAAW,4EAA6ExB,GAAAA,OAAAA,OAAAA,wBAAuC,CAClIqG,QAAOiK,SAAQwD,gBAIjBzN,CACT,CAED,SAAS6uC,GAAMd,GACX,OAAO,IAAI3/B,SAAQ,SAASE,GACxB8+B,WAAW9+B,EAASy/B,EACvB,GACJ,CAED,SAASgnK,GAAUxnL,GACf,GAAIA,EAAQvtB,MAAO,CAEf,MAAMA,EAAa,IAAIoE,MAAMmpB,EAAQvtB,MAAMK,SAG3C,MAFAL,EAAMiE,KAAOspB,EAAQvtB,MAAMiE,KAC3BjE,EAAMY,KAAO2sB,EAAQvtB,MAAMY,KACrBZ,CACT,CAED,OAAOutB,EAAQj4B,MAClB,CAED,SAAS0/M,GAAaptN,GAClB,OAAIA,EAAgBA,EAAMuM,cACnBvM,CACV,CAED,MAAMgS,GAAoB,CAAC,EAErB,MAAOq7M,WAAsB/nM,GAAAA,EAK/BjS,YAAYC,EAAuBoS,EAA2B4nM,GAG1D,GAFA1yM,QAEItH,IAAqBtB,GACrB,MAAM,IAAIwK,MAAM,+EAGpB7J,EAAAA,GAAAA,gBAAe/V,KAAM,WAAY8oB,GAEX,MAAlB4nM,IAA0BA,EAAiB,GAEhB,kBAApBA,IACP36M,EAAAA,GAAAA,gBAAe/V,KAAM,WAAYA,KAAK8oB,SAASg/L,UAAUpkM,QAAQgtM,KACjE36M,EAAAA,GAAAA,gBAAe/V,KAAM,SAAU,OAEG,kBAApB0wN,IACd36M,EAAAA,GAAAA,gBAAe/V,KAAM,SAAU0wN,IAC/B36M,EAAAA,GAAAA,gBAAe/V,KAAM,WAAY,OAGjCkV,GAAOS,mBAAmB,2BAA4B,iBAAkB+6M,EAE/E,CAED7pK,QAAQ/9B,GACJ,OAAO5T,GAAOyB,WAAW,0CAA2CxB,GAAAA,OAAAA,OAAAA,sBAAqC,CACrGyB,UAAW,WAElB,CAED+5M,mBACI,OAAO,IAAIC,GAAuBx7M,GAAmBpV,KAAK8oB,SAAU9oB,KAAK6wN,UAAY7wN,KAAK8wN,OAC7F,CAED3yM,aACI,OAAIne,KAAK6wN,SACEjnM,QAAQE,QAAQ9pB,KAAK6wN,UAGzB7wN,KAAK8oB,SAASm3L,KAAK,eAAgB,IAAIl2L,MAAM8hL,IAC5CA,EAASxrM,QAAUL,KAAK8wN,QACxB57M,GAAOyB,WAAW,oBAAsB3W,KAAK8wN,OAAQ37M,GAAAA,OAAAA,OAAAA,sBAAqC,CACtFyB,UAAW,eAGZ5W,KAAK8oB,SAASg/L,UAAUpkM,QAAQmoL,EAAS7rM,KAAK8wN,WAE5D,CAEDC,yBAAyB9nM,GACrBA,GAAcU,EAAAA,GAAAA,aAAYV,GAE1B,MAAM+nM,EAAchxN,KAAKme,aAAa4L,MAAMrG,IACpCA,IAAWA,EAAUA,EAAQ/T,eAC1B+T,KAMX,GAA4B,MAAxBuF,EAAYmB,SAAkB,CAC9B,MAAM6mM,GAAWtnM,EAAAA,GAAAA,aAAYV,GAC7BgoM,EAASnuN,KAAOkuN,EAChB/nM,EAAYmB,SAAWpqB,KAAK8oB,SAASE,YAAYioM,EACpD,CAaD,OAXsB,MAAlBhoM,EAAYe,KACZf,EAAYe,GAAKJ,QAAQE,QAAQb,EAAYe,IAAID,MAAYC,GAAMC,GAAAA,UAAAA,OAAAA,GAAAA,YAC/D,GAAU,MAAND,EAAc,OAAO,KACzB,MAAMtG,QAAgB1jB,KAAK8oB,SAASY,YAAYM,GAIhD,OAHe,MAAXtG,GACAxO,GAAOS,mBAAmB,qCAAsC,QAASqU,GAEtEtG,CACV,QAGE+D,EAAAA,GAAAA,mBAAkB,CACrBb,IAAIa,EAAAA,GAAAA,mBAAkBwB,GACtB4hM,OAAQmG,IACTjnM,MAAK,IAAmB,IAAlB,GAAEnD,EAAF,OAAMikM,GAAY,EAER,MAAXjkM,EAAG9jB,KACC8jB,EAAG9jB,KAAK6M,gBAAkBk7M,GAC1B31M,GAAOS,mBAAmB,wBAAyB,cAAesT,GAGtErC,EAAG9jB,KAAO+nN,EAGd,MAAMuD,EAAcpuN,KAAK8oB,SAASrS,YAAay6M,mBAAmBtqM,EAAI,CAAE9jB,MAAM,IAE9E,OAAO9C,KAAK8oB,SAASm3L,KAAK,sBAAuB,CAAEmO,IAASrkM,MAAMhjB,GACvDA,IACPyU,IAC8B,kBAAnBA,EAAMK,SAAyBL,EAAMK,QAAQpS,MAAM,iBAC1DyL,GAAOyB,WAAW,4BAA6BxB,GAAAA,OAAAA,OAAAA,gBAA+B,CAC1E65C,OAAQ,kBACR/lC,YAAarC,IAIdypM,GAAW,kBAAmB70M,EAAO4yM,KAVhD,GAaP,CAED9kM,gBAAgBL,GACZ,OAAO/T,GAAOyB,WAAW,sCAAuCxB,GAAAA,OAAAA,OAAAA,sBAAqC,CACjGyB,UAAW,mBAElB,CAEKuS,gBAAgBF,6CAElB,MAAM61J,QAAoB9+K,KAAK8oB,SAASkiM,wBAAwB,IAAM,EAAIhrN,KAAK8oB,SAAS8iM,iBAGlF7kN,QAAa/G,KAAK+wN,yBAAyB9nM,GAEjD,IAII,aAAamiC,EAAAA,GAAAA,OAAK,IAAWnhC,GAAAA,UAAAA,OAAAA,GAAAA,YACzB,MAAMrD,QAAW5mB,KAAK8oB,SAAS0kM,eAAezmN,GAC9C,GAAW,OAAP6f,EACJ,OAAO5mB,KAAK8oB,SAAS4kM,iBAAiB9mM,EAAI7f,EAAM+3K,EACnD,KAAE,CAAEtzH,SAAUxrD,KAAK8oB,UAIvB,CAHC,MAAOtN,GAEL,MADMA,EAAO2oM,gBAAkBp9M,EACzByU,CACT,CACJ,IAEKsrC,YAAYjrC,6CACd,MAAMO,EAA6B,kBAAbP,GAAyB2F,EAAAA,GAAAA,IAAY3F,GAAUA,EAC/D6H,QAAgB1jB,KAAKme,aAC3B,IACI,aAAane,KAAK8oB,SAASm3L,KAAK,gBAAiB,EAAE7iM,EAAAA,GAAAA,SAAQhB,GAAOsH,EAAQ/T,eAU7E,CATC,MAAO6L,GAQL,KAP8B,kBAAnBA,EAAMK,SAAyBL,EAAMK,QAAQpS,MAAM,iBAC1DyL,GAAOyB,WAAW,wBAAyBxB,GAAAA,OAAAA,OAAAA,gBAA+B,CACtE65C,OAAQ,cACRlsD,KAAM4gB,EACNytM,YAAat1M,IAGfL,CACT,CACJ,IAEK41M,mBAAmBv1M,6CACrB,MAAMO,EAA6B,kBAAbP,GAAyB2F,EAAAA,GAAAA,IAAY3F,GAAUA,EAC/D6H,QAAgB1jB,KAAKme,aAE3B,IAEI,aAAane,KAAK8oB,SAASm3L,KAAK,WAAY,CAAEv8L,EAAQ/T,eAAeyN,EAAAA,GAAAA,SAAQhB,IAUhF,CATC,MAAOZ,GAQL,KAP8B,kBAAnBA,EAAMK,SAAyBL,EAAMK,QAAQpS,MAAM,iBAC1DyL,GAAOyB,WAAW,wBAAyBxB,GAAAA,OAAAA,OAAAA,gBAA+B,CACtE65C,OAAQ,qBACRlsD,KAAM4gB,EACNytM,YAAat1M,IAGfL,CACT,CACJ,IAEKurC,eAAentB,EAAyBjY,EAA8Cve,6CAExF,MAAM4jD,QAAkBC,GAAAA,EAAAA,aAA+BrtB,EAAQjY,EAAOve,GAAQ6H,GACnEjL,KAAK8oB,SAASY,YAAYze,KAG/ByY,QAAgB1jB,KAAKme,aAE3B,IACI,aAAane,KAAK8oB,SAASm3L,KAAK,uBAAwB,CACpDv8L,EAAQ/T,cACR4H,KAAK5Q,UAAUsgD,GAAAA,EAAAA,WAA6BD,EAAUptB,OAAQjY,EAAOqlC,EAAU5jD,SAWtF,CATC,MAAOoY,GAQL,KAP8B,kBAAnBA,EAAMK,SAAyBL,EAAMK,QAAQpS,MAAM,iBAC1DyL,GAAOyB,WAAW,wBAAyBxB,GAAAA,OAAAA,OAAAA,gBAA+B,CACtE65C,OAAQ,iBACRlsD,KAAM4gB,EACNytM,YAAa,CAAEv3L,OAAQotB,EAAUptB,OAAQjY,QAAOve,MAAO4jD,EAAU5jD,SAGnEoY,CACT,CACJ,IAEK61M,OAAO7zL,6CACT,MAAM1U,EAAW9oB,KAAK8oB,SAEhBpF,QAAgB1jB,KAAKme,aAE3B,OAAO2K,EAASm3L,KAAK,yBAA0B,CAAEv8L,EAAQ/T,cAAe6tB,EAAU,MACrF,KAGL,MAAMozL,WAA+BH,GACjCtnM,gBAAgBF,GACZ,OAAOjpB,KAAK+wN,yBAAyB9nM,GAAac,MAAMhjB,IACxB,CACxBA,KAAMA,EACN9F,MAAO,KACPmpB,SAAU,KACV5C,SAAU,KACVpL,KAAM,KACNhZ,MAAO,KACPqmB,QAAS,KACTq6L,cAAe,EACfhhN,KAAM,KACNqmE,KAAO26I,GAAoC9jN,KAAK8oB,SAAS+jM,mBAAmB9lN,EAAM+8M,MAG7F,EAGL,MAAMt7L,GAAuD,CACzDiB,SAAS,EAAMrN,MAAM,EAAMgO,UAAU,EAAM5C,UAAS,EAAMvmB,OAAO,EAAM+oB,IAAI,EAAM5mB,OAAO,EACxF0B,MAAM,EAAMm+C,YAAY,EACxBn7B,cAAc,EAAMC,sBAAsB,GAGxC,MAAO65L,WAAwBgI,GAiBjCnzM,YAAY4uB,EAA+Bk4I,GACvC,IAAI+zC,EAAgD/zC,EAG9B,MAAlB+zC,IACAA,EAAiB,IAAI1nM,SAAQ,CAACE,EAASkW,KACnC4oB,YAAW,KACP5oD,KAAKiqN,gBAAgBlgM,MAAMwzJ,IACvBzzJ,EAAQyzJ,EAAR,IACA/hK,IACAwkB,EAAOxkB,EAAP,GAHJ,GAKD,EANH,KAURwC,MAAMszM,GAGDjsL,IAAOA,GAAMhiB,EAAAA,GAAAA,WAAwBrjB,KAAKyW,YAAa,aAA1C4M,IAEE,kBAATgiB,GACPtvB,EAAAA,GAAAA,gBAAe/V,KAAM,aAAakD,OAAO+S,OAAO,CAC5CovB,IAAKA,MAGTtvB,EAAAA,GAAAA,gBAAe/V,KAAM,aAAckD,OAAO+S,QAAO0T,EAAAA,GAAAA,aAAY0b,KAGjErlC,KAAKuxN,QAAU,EAClB,CArCGC,aAIA,OAH4B,MAAxBxxN,KAAKyxN,kBACLzxN,KAAKyxN,gBAAkB,CAAC,GAErBzxN,KAAKyxN,eACf,CAkCgB,oBACb,MAAO,uBACV,CAEDxH,gBASI,OARKjqN,KAAKwxN,OAAL,gBACDxxN,KAAKwxN,OAAL,cAA+BxxN,KAAK0xN,yBAGpC9oK,YAAW,KACP5oD,KAAKwxN,OAAL,cAA+B,IAA/B,GACD,IAEAxxN,KAAKwxN,OAAL,aACV,CAEKE,yEACIrnK,GAAM,GAEZ,IAAI5gC,EAAU,KACd,IACIA,QAAgBzpB,KAAKigN,KAAK,cAAe,GAK5C,CAJC,MAAOzkM,GACL,IACIiO,QAAgBzpB,KAAKigN,KAAK,cAAe,GAC1B,CAAjB,MAAOzkM,GAAU,CACtB,CAED,GAAe,MAAXiO,EAAiB,CACjB,MAAMD,GAAanG,EAAAA,GAAAA,WAA4CrjB,KAAKyW,YAAa,cACjF,IACI,OAAO+S,EAAWxP,GAAAA,GAAAA,KAAeyP,GAASjP,WAO7C,CANC,MAAOgB,GACL,OAAOtG,GAAOyB,WAAW,2BAA4BxB,GAAAA,OAAAA,OAAAA,cAA6B,CAC9EsU,QAASA,EACTixC,MAAO,iBACP3P,YAAavvC,GAEpB,CACJ,CAED,OAAOtG,GAAOyB,WAAW,2BAA4BxB,GAAAA,OAAAA,OAAAA,cAA6B,CAC9EulD,MAAO,aAEd,IAEDi3J,UAAUjB,GACN,OAAO,IAAID,GAAcr7M,GAAmBpV,KAAM0wN,EACrD,CAEDkB,mBAAmBlB,GACf,OAAO1wN,KAAK2xN,UAAUjB,GAAgBC,kBACzC,CAEDkB,eACI,OAAO7xN,KAAKigN,KAAK,eAAgB,IAAIl2L,MAAM8hL,GAChCA,EAASviM,KAAKwpB,GAAM9yB,KAAK8nN,UAAUpkM,QAAQoP,MAEzD,CAEDmtL,KAAKx6L,EAAgB3P,GACjB,MAAM2xC,EAAU,CACZhiC,OAAQA,EACR3P,OAAQA,EACR8N,GAAK5jB,KAAKuxN,UACVO,QAAS,OAGb9xN,KAAK0lF,KAAK,QAAS,CACf12B,OAAQ,UACRvH,SAASpvB,EAAAA,GAAAA,UAASovB,GAClB3+B,SAAU9oB,OAKd,MAAMgL,EAAS,CAAE,cAAe,mBAAoBtH,QAAQ+hB,IAAW,EACvE,GAAIza,GAAShL,KAAKwxN,OAAO/rM,GACrB,OAAOzlB,KAAKwxN,OAAO/rM,GAGvB,MAAM3U,GAASo6C,EAAAA,GAAAA,WAAUlrD,KAAK+oD,WAAYxxC,KAAK5Q,UAAU8gD,GAAU8oK,IAAWxmM,MAAMjZ,IAChF9Q,KAAK0lF,KAAK,QAAS,CACf12B,OAAQ,WACRvH,QAASA,EACTU,SAAUr3C,EACVgY,SAAU9oB,OAGP8Q,KAEP0K,IAQA,MAPAxb,KAAK0lF,KAAK,QAAS,CACf12B,OAAQ,WACRxzC,MAAOA,EACPisC,QAASA,EACT3+B,SAAU9oB,OAGRwb,CAAN,IAWJ,OAPIxQ,IACAhL,KAAKwxN,OAAO/rM,GAAU3U,EACtB83C,YAAW,KACP5oD,KAAKwxN,OAAO/rM,GAAU,IAAtB,GACD,IAGA3U,CACV,CAEDihN,eAAetsM,EAAgB3P,GAC3B,OAAQ2P,GACJ,IAAK,iBACD,MAAO,CAAE,kBAAmB,IAEhC,IAAK,cACD,MAAO,CAAE,eAAgB,IAE7B,IAAK,aACD,MAAO,CAAE,iBAAkB,CAAE+qM,GAAa16M,EAAO4N,SAAU5N,EAAO8S,WAEtE,IAAK,sBACD,MAAO,CAAE,0BAA2B,CAAE4nM,GAAa16M,EAAO4N,SAAU5N,EAAO8S,WAE/E,IAAK,UACD,MAAO,CAAE,cAAe,CAAE4nM,GAAa16M,EAAO4N,SAAU5N,EAAO8S,WAEnE,IAAK,eACD,MAAO,CAAE,mBAAoB,CAAE4nM,GAAa16M,EAAO4N,UAAUpF,EAAAA,GAAAA,YAAWxI,EAAOtR,SAAU,IAAKsR,EAAO8S,WAEzG,IAAK,kBACD,MAAO,CAAE,yBAA0B,CAAE9S,EAAOq4M,oBAEhD,IAAK,WACD,OAAIr4M,EAAO8S,SACA,CAAE,uBAAwB,CAAE9S,EAAO8S,WAAY9S,EAAOo5M,sBACtDp5M,EAAO8tM,UACP,CAAE,qBAAsB,CAAE9tM,EAAO8tM,YAAa9tM,EAAOo5M,sBAEzD,KAEX,IAAK,iBACD,MAAO,CAAE,2BAA4B,CAAEp5M,EAAOquM,kBAElD,IAAK,wBACD,MAAO,CAAE,4BAA6B,CAAEruM,EAAOquM,kBAEnD,IAAK,OAED,MAAO,CAAE,WAAY,EADM9gM,EAAAA,GAAAA,WAAgGrjB,KAAKyW,YAAa,qBACtHy6M,CAAmBp7M,EAAOmT,YAAa,CAAEnmB,MAAM,IAASgT,EAAO8S,WAG1F,IAAK,cAED,MAAO,CAAE,kBAAmB,EADDvF,EAAAA,GAAAA,WAAgGrjB,KAAKyW,YAAa,qBAC/Gy6M,CAAmBp7M,EAAOmT,YAAa,CAAEnmB,MAAM,MAGjF,IAAK,UAID,OAHIgT,EAAOsN,QAAmC,MAAzBtN,EAAOsN,OAAOM,UAC/B5N,EAAOsN,OAAOM,QAAU8sM,GAAa16M,EAAOsN,OAAOM,UAEhD,CAAE,cAAe,CAAE5N,EAAOsN,SAMzC,OAAO,IACV,CAEKmoM,QAAQ9lM,EAAgB3P,6CAG1B,GAAe,SAAX2P,GAAgC,gBAAXA,EAA0B,CAC/C,MAAMmB,EAAK9Q,EAAOmT,YAClB,GAAIrC,GAAiB,MAAXA,EAAG9hB,MAAgBkV,GAAAA,GAAAA,KAAe4M,EAAG9hB,MAAMob,UAE1B,MAAnB0G,EAAGkB,cAAmD,MAA3BlB,EAAGmB,qBAA8B,CAC5D,MAAMoC,QAAgBnqB,KAAKsnB,aACC,MAAxB6C,EAAQrC,cAAwD,MAAhCqC,EAAQpC,wBAExCjS,GAAS6T,EAAAA,GAAAA,aAAY7T,IACdmT,aAAcU,EAAAA,GAAAA,aAAY/C,UAC1B9Q,EAAOmT,YAAYnkB,KAEjC,CAER,CAED,MAAMoM,EAAOlR,KAAK+xN,eAAetsM,EAAS3P,GAE9B,MAAR5E,GACAgE,GAAOyB,WAAW8O,EAAS,mBAAoBtQ,GAAAA,OAAAA,OAAAA,gBAA+B,CAAEyB,UAAW6O,IAE/F,IACI,aAAazlB,KAAKigN,KAAK/uM,EAAK,GAAIA,EAAK,GAGxC,CAFC,MAAOsK,GACL,OAAO60M,GAAW5qM,EAAQjK,EAAO1F,EACpC,CACJ,IAED+5M,YAAYn1J,GACU,YAAdA,EAAMx6D,KAAqBF,KAAKgyN,gBACpCh0M,MAAM6xM,YAAYn1J,EACrB,CAEDs3J,gBACI,GAA2B,MAAvBhyN,KAAKiyN,eAA0B,OACnC,MAAM5pL,EAAOroC,KAEPkyN,EAAiClyN,KAAKigN,KAAK,kCAAmC,IACpFjgN,KAAKiyN,eAAiBC,EAEtBA,EAAcnoM,MAAK,SAASooM,GAgCxB,OA/BA,SAAS/mK,IACL/iB,EAAK43K,KAAK,uBAAwB,CAAEkS,IAAYpoM,MAAK,SAASmuJ,GAC1D,GAAI7vI,EAAK4pL,gBAAkBC,EAAiB,OAAO,KAEnD,IAAIE,EAAMxoM,QAAQE,UAYlB,OAXAouJ,EAAO32K,SAAQ,SAASwF,GAEpBshC,EAAKwhL,SAAS,KAAO9iN,EAAK4I,eAAiB,UAC3CyiN,EAAMA,EAAIroM,MAAK,WACX,OAAOse,EAAKmlL,eAAezmN,GAAMgjB,MAAK,SAASnD,GAE3C,OADAyhB,EAAKq9C,KAAK,UAAW9+D,GACd,IACV,GACJ,GACJ,IAEMwrM,EAAIroM,MAAK,WACZ,OAAOsgC,GAAM,IAChB,GACJ,IAAEtgC,MAAK,WACJ,GAAIse,EAAK4pL,gBAAkBC,EAM3B,OAFAtpK,YAAW,WAAawC,GAAS,GAAE,GAE5B,KALH/iB,EAAK43K,KAAK,sBAAuB,CAAEkS,GAM1C,IAAEvqM,OAAOpM,OACb,CACD4vC,GAEO+mK,CACV,IAAEvqM,OAAOpM,OACb,CAEDs0M,WAAWp1J,GACW,YAAdA,EAAMx6D,KAAuD,IAAlCF,KAAKylF,cAAc,aAC9CzlF,KAAKiyN,eAAiB,MAE1Bj0M,MAAM8xM,WAAWp1J,EACpB,CAWwB,0BAACzxC,EAAiCopM,GAEvD,MAAMC,GAAU3oM,EAAAA,GAAAA,aAAYnB,IAC5B,GAAI6pM,EACA,IAAK,MAAMnxN,KAAOmxN,EACVA,EAAWnxN,KAAQoxN,EAAQpxN,IAAO,IAI9CsmC,EAAAA,GAAAA,iBAAgBve,EAAaqpM,GAE7B,MAAMxhN,EAAiD,CAAC,EAmBxD,MAhBA,CAAC,UAAW,WAAY,WAAY,OAAQ,eAAgB,uBAAwB,QAAS,SAASvP,SAAQ,SAASL,GACnH,GAA+B,MAArB+nB,EAAa/nB,GAAgB,OACvC,MAAMkC,GAAQgtB,EAAAA,GAAAA,UAASpW,GAAAA,GAAAA,KAAqBiP,EAAa/nB,KAC7C,aAARA,IAAsBA,EAAM,OAChC4P,EAAO5P,GAAOkC,CACjB,IAED,CAAC,OAAQ,KAAM,QAAQ7B,SAAQ,SAASL,GACL,MAArB+nB,EAAa/nB,KACvB4P,EAAO5P,IAAOkc,EAAAA,GAAAA,SAAc6L,EAAa/nB,IAC5C,IAES+nB,EAAag6B,aACnBnyC,EAAM,YAAiB+xC,EAAAA,GAAAA,eAAoB55B,EAAag6B,aAGrDnyC,CACV,EC7tBL,MAAMoE,GAAS,IAAIC,GAAAA,OAAOF,IAe1B,IAAIs8M,GAAU,EAMd,SAASgB,GAAuBzpM,EAA4B0pM,GACxD,MAAMC,EAAU,oBAEhB,OAAO,SAAShtM,EAAgB3P,GAC5B,MAAM2xC,EAAU,CACZhiC,OAAQA,EACR3P,OAAQA,EACR8N,GAAK2tM,KACLO,QAAS,OAGb,OAAO,IAAIloM,SAAQ,CAACE,EAASkW,KACzBhgC,KAAK0lF,KAAK,QAAS,CACf12B,OAAQ,UACRyjK,UACAhrK,SAASpvB,EAAAA,GAAAA,UAASovB,GAClB3+B,SAAU9oB,OAGdwyN,EAAS/qK,GAAS,CAACjsC,EAAO2sC,KAEtB,GAAI3sC,EASA,OARAxb,KAAK0lF,KAAK,QAAS,CACf12B,OAAQ,WACRyjK,UACAj3M,QACAisC,UACA3+B,SAAU9oB,OAGPggC,EAAOxkB,GAWlB,GARAxb,KAAK0lF,KAAK,QAAS,CACf12B,OAAQ,WACRyjK,UACAhrK,UACAU,WACAr/B,SAAU9oB,OAGVmoD,EAAS3sC,MAAO,CAChB,MAAMA,EAAQ,IAAIoE,MAAMuoC,EAAS3sC,MAAMK,SAGvC,OAFML,EAAOiE,KAAO0oC,EAAS3sC,MAAMiE,KAC7BjE,EAAOY,KAAO+rC,EAAS3sC,MAAMY,KAC5B4jB,EAAOxkB,EACjB,CAEDsO,EAAQq+B,EAASr3C,OAAjB,GA7BJ,GAgCP,CACJ,CAwCK,MAAO4hN,WAAqB9Q,GAI9BnrM,YAAYqS,EAA+Cy0J,GACvC,MAAZz0J,GACA5T,GAAOS,mBAAmB,mBAAoB,WAAYmT,GAG9D,IAAIxN,EAAe,KACfq3M,EAAqC,KACrCC,EAAgC,KAEX,oBAAd9pM,GACPxN,EAAO,WACPq3M,EAAmB7pM,IAGnBxN,EAAOwN,EAAS+pM,MAAQ/pM,EAASxN,MAAQ,IACpCA,GAAQwN,EAASgqM,aAClBx3M,EAAO,YAGXs3M,EAAc9pM,EAEVA,EAAS2+B,SACI,KAATnsC,IAAeA,EAAO,aAC1Bq3M,EAjEhB,SAA6B7pM,GACzB,OAAO,SAASrD,EAAgB3P,GACd,MAAVA,IAAkBA,EAAS,IAE/B,MAAM2xC,EAAU,CAAEhiC,SAAQ3P,UAS1B,OAPA9V,KAAK0lF,KAAK,QAAS,CACf12B,OAAQ,UACRyjK,QAAS,iBACThrK,SAASpvB,EAAAA,GAAAA,UAASovB,GAClB3+B,SAAU9oB,OAGP8oB,EAAS2+B,QAAQA,GAAS19B,MAAMo+B,IACnCnoD,KAAK0lF,KAAK,QAAS,CACf12B,OAAQ,WACRyjK,QAAS,iBACThrK,UACAU,WACAr/B,SAAU9oB,OAGPmoD,KAEP3sC,IASA,MARAxb,KAAK0lF,KAAK,QAAS,CACf12B,OAAQ,WACRyjK,QAAS,iBACThrK,UACAjsC,QACAsN,SAAU9oB,OAGRwb,CAAN,GAEP,CACJ,CA6BkCu3M,CAAoBjqM,IAChCA,EAASkqM,UAChBL,EAAmBJ,GAAuBzpM,EAAUA,EAASkqM,UAAUthN,KAAKoX,IACrEA,EAASm3L,KAChB0S,EAAmBJ,GAAuBzpM,EAAUA,EAASm3L,KAAKvuM,KAAKoX,IAEvE5T,GAAOS,mBAAmB,uBAAwB,WAAYmT,GAG7DxN,IAAQA,EAAO,aAGxB0C,MAAM1C,EAAMiiK,IAEZxnK,EAAAA,GAAAA,gBAAe/V,KAAM,mBAAoB2yN,IACzC58M,EAAAA,GAAAA,gBAAe/V,KAAM,WAAY4yN,EACpC,CAED3S,KAAKx6L,EAAgB3P,GACjB,OAAO9V,KAAK2yN,iBAAiBltM,EAAQ3P,EACxC,EChKE,MCaMm9M,IAAkB1nN,EAAAA,EAAAA,eAC7B,CAAC,GAyCH,GAlCyDxG,IACvD,MAAM,0BAAEspJ,EAAF,SAA6BvlI,EAA7B,SAAuC9jB,GAAaD,EAEpDo7M,EAAkB+S,GACtBpqM,EACAulI,GAGIkkB,EAAkB4gD,GAAqBrqM,GAEvCoyB,GAAO2nE,EAAAA,EAAAA,cACV/iH,GDjBuBulM,OAC1Bv8K,EACAhpB,KAEA,MAAM,gBAAEyyK,EAAF,KAAmBn2J,GAAStc,EAGlC,aAAagpB,EAASm3L,KAAK,uBAAwB,CACjD1tC,EACAh7J,KAAK5Q,UAAUyV,IAFjB,ECUoCg3M,CAAatqM,EAAUhpB,IACzD,CAACgpB,IAGGuqM,GAAgBxwG,EAAAA,EAAAA,cACpBwiF,cDTiCA,OACnCv8K,EACAulI,KAEA,UACQvlI,EAASm3L,KAAK,6BAA8B,CAChD,CACEx2L,QAAS4kI,EAA0B5kI,UAUxC,CAPC,MAAOlnB,SACDumB,EAASm3L,KAAK,0BAA2B,CAAC5xD,UAC1CvlI,EAASm3L,KAAK,6BAA8B,CAChD,CACEx2L,QAAS4kI,EAA0B5kI,UAGxC,GCPS6pM,CAAsBxqM,EAAUulI,IACxC,CAACA,EAA2BvlI,IAGxB1lB,GAAQ6/G,EAAAA,EAAAA,UACZ,MACEsvD,kBACA4tC,kBACAjlK,OACAm4K,mBAEF,CAAC9gD,EAAiB4tC,EAAiBjlK,EAAMm4K,IAG3C,OAAO,SAACJ,GAAgBtnN,SAAjB,CAA0BvI,MAAOA,EAAO4B,SAAUA,GAAzD,EC1DK,SAASuuN,GAAoBlnK,GAClC,OAAOC,EAAAA,GAAAA,GAAqB,UAAWD,EACxC,CACD,MACA,IADoBE,EAAAA,GAAAA,GAAuB,UAAW,CAAC,OAAQ,gBAAiB,iBAAkB,kBAAmB,SAAU,kDCHxH,MAAM0gG,GAAuB,CAClC77F,QAAS,eACT87F,YAAa,eACb77F,UAAW,iBACX87F,cAAe,iBACf3xI,MAAO,cAsBT,GAf0B,IAGpB,IAHqB,MACzBxH,EADyB,WAEzB44C,GACI,EACJ,MAAM4mK,EAR0B3mK,IACzBogG,GAAqBpgG,IAAUA,EAObygG,CAA0B1gG,EAAWC,OACxDA,GAAQ+Z,EAAAA,GAAAA,GAAQ5yD,EAAD,kBAAmBw/M,IAAoB,IAAU5mK,EAAWC,MAC3E4mK,GAAe7sJ,EAAAA,GAAAA,GAAQ5yD,EAAD,kBAAmBw/M,EAAnB,YAE5B,MAAI,SAAUx/M,GAASy/M,EACd,QAAP,OAAeA,EAAf,YAGKr8K,EAAAA,GAAAA,IAAMyV,EAAO,GAApB,ECvBIL,GAAY,CAAC,YAAa,QAAS,YAAa,SAAU,UAAW,oBAAqB,YAAa,UAAW,MA6BlHknK,IAAWhnK,EAAAA,GAAAA,IAAO0gG,GAAY,CAClCniJ,KAAM,UACNohD,KAAM,OACNM,kBAAmB,CAAC5nD,EAAOgG,KACzB,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAOnG,KAAMmG,EAAO,YAAD,QAAa+hD,EAAAA,GAAAA,GAAWF,EAAWo1G,aAAwC,WAAzBp1G,EAAW5qC,WAA0BjX,EAAOirD,OAAzH,GAPatJ,EASd,IAGG,IAHF,MACF14C,EADE,WAEF44C,GACI,EACJ,OAAOn7C,EAAAA,EAAAA,GAAS,CAAC,EAA4B,SAAzBm7C,EAAWo1G,WAAwB,CACrDtsB,eAAgB,QACU,UAAzB9oF,EAAWo1G,WAAyB,CACrCtsB,eAAgB,OAChB,UAAW,CACTA,eAAgB,cAEQ,WAAzB9oF,EAAWo1G,YAA0BvwJ,EAAAA,EAAAA,GAAS,CAC/CikI,eAAgB,aACM,YAArB9oF,EAAWC,OAAuB,CACnC8mK,oBAAqBC,GAAkB,CACrC5/M,QACA44C,gBAED,CACD,UAAW,CACT+mK,oBAAqB,aAEI,WAAzB/mK,EAAW5qC,WAA0B,CACvCxd,SAAU,WACV6wI,wBAAyB,cACzBrR,gBAAiB,cAGjBsR,QAAS,EACT5xE,OAAQ,EACRuD,OAAQ,EAERtE,aAAc,EACdvrC,QAAS,EAETrnB,OAAQ,UACRk+C,WAAY,OACZsnF,cAAe,SACfC,cAAe,OAEfC,iBAAkB,OAElB,sBAAuB,CACrBE,YAAa,QAGf,CAAC,KAAD,OAAMk+E,GAAAA,eAA6B,CACjCv+E,QAAS,SA3Cb,IA+CIgS,GAAoBp7I,EAAAA,YAAiB,SAAckjD,EAASrjD,GAChE,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,aAGF,UACJ6I,EADI,MAEJ+4C,EAAQ,UAFJ,UAGJ7qC,EAAY,IAHR,OAIJ25C,EAJI,QAKJD,EALI,kBAMJo4J,EANI,UAOJ9xD,EAAY,SAPR,QAQJ/iG,EAAU,UARN,GASJ8I,GACEhjE,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,KAE7C,kBACJiP,EACAE,OAAQ07E,EACR37E,QAAS07E,EACTrrI,IAAKurI,IACHC,EAAAA,GAAAA,MACGztE,EAAc0tE,GAAmBtrI,EAAAA,UAAe,GACjD6nN,GAAaxpJ,EAAAA,GAAAA,GAAWx+D,EAAKurI,GA0B7B1qF,GAAan7C,EAAAA,EAAAA,GAAS,CAAC,EAAG1M,EAAO,CACrC8nD,QACA7qC,YACA8nD,eACAk4F,YACA/iG,YAGIpP,EArIkBjD,KACxB,MAAM,QACJiD,EADI,UAEJ7tC,EAFI,aAGJ8nD,EAHI,UAIJk4F,GACEp1G,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAD,oBAAqBkoD,EAAAA,GAAAA,GAAWk1G,IAA4B,WAAdhgJ,GAA0B,SAAU8nD,GAAgB,iBAE1G,OAAO/Z,EAAAA,GAAAA,GAAeD,EAAOyjK,GAAqB1jK,EAAlD,EA2HgBG,CAAkBpD,GAClC,OAAoByD,EAAAA,EAAAA,KAAKqjK,IAAUjiN,EAAAA,EAAAA,GAAS,CAC1Co7C,MAAOA,EACP/4C,WAAWo8C,EAAAA,GAAAA,GAAKL,EAAQjrD,KAAMkP,GAC9B+7C,QAASikK,EACT9xM,UAAWA,EACX25C,OAtCiBjB,IACjB28E,EAAkB38E,IAEgB,IAA9Be,EAAkBzmD,SACpBwiI,GAAgB,GAGd77E,GACFA,EAAOjB,EACR,EA8BDgB,QA3BkBhB,IAClB08E,EAAmB18E,IAEe,IAA9Be,EAAkBzmD,SACpBwiI,GAAgB,GAGd97E,GACFA,EAAQhB,EACT,EAmBD3uD,IAAKgoN,EACLnnK,WAAYA,EACZqS,QAASA,EACT8I,GAAI,IAAM7kE,OAAOihB,KAAK8oI,IAAsB/xD,SAASruC,GAEhD,GAFyD,CAAC,CAC7DA,aACYjjD,MAAM4G,QAAQu3D,GAAMA,EAAK,CAACA,KACvCp6C,GACJ,IAwED,MC9MaqmM,GAAe,QAAC,OAC3Bp6L,EAD2B,iBAE3B+4I,GAF0B,QAGQ,CAClC55I,YAAa,aACba,SACA/d,QAAS,CACP82J,oBAEFhxJ,MAAO,CACLmY,aAAc,CACZ,CAAE7uB,KAAM,OAAQnG,KAAM,UACtB,CAAEmG,KAAM,UAAWnG,KAAM,UACzB,CAAEmG,KAAM,UAAWnG,KAAM,WACzB,CAAEmG,KAAM,oBAAqBnG,KAAM,YAErCmvN,WAAY,CAAC,CAAEhpN,KAAM,mBAAoBnG,KAAM,WAhBvB,EC+G5B,GA/HsC,KAAO,IAAD,wBAC1C,MAAM,IAAEwxM,GAAQrkC,MAEdrzJ,QACEg5L,UAAYl0L,QAAS6uJ,GACrBolC,WAAarqL,IAAK4mM,GAFZ,OAGN1hD,EAHM,eAIN4kC,EACAS,YAAY,SAAE/gE,IANZ,OAQJ17H,EARI,cASJo6K,EATI,aAUJ/qC,EAVI,WAWJisC,GACEnF,MAEE,aAAEjjC,GAAiBS,MAEzBjsC,EAAAA,EAAAA,YAAU,KAAO,IAAD,IApBA,IAqBVg0B,KAEA07B,EAAOD,iBAAmB,UAACn3J,EAAOo3J,cAAR,OAAC,EAAeD,gBAG5CijB,EAAc,wBAAoB10L,GAFlC00L,EAAc,mBAAoBhjB,EAAOD,kBAKvCC,EAAO3vJ,WAAa,UAACzH,EAAOo3J,cAAR,OAAC,EAAe3vJ,UAGtC2yK,EAAc,iBAAa10L,GAF3B00L,EAAc,YAAahjB,EAAO3vJ,WAGnC,GACA,WACDzH,EAAOo3J,cADN,aACD,EAAeD,gBADd,UAEDn3J,EAAOo3J,cAFN,aAED,EAAe3vJ,UACf2vJ,EAAOD,gBACPC,EAAO3vJ,UACP2yK,EACA1+C,IAGF,MAAMq9E,GAAalxG,EAAAA,EAAAA,UACjB,IACEixG,GACAF,GAAa,CACXp6L,OAAQ,IACH00H,EACH92H,kBAAmB8xK,GAASgN,EAAI34B,YAAYy2C,QAAQnwN,MAAM,EAAG,MAE/D0uK,iBAAkBuhD,KAEtB,CAAC5d,EAAI34B,YAAarvB,EAAc4lE,IAGlC,OACE,UAAC,GAAD,CAAOxvJ,IAAK,EAAZ,WACE,UAAC,GAAD,CAAOisF,SAAS,OAAhB,oEAC0D,KACxD,SAAC,GAAD,CAAMnpG,KAAK,yCAAX,4BAFF,QAOA,SAAC,GAAD,CACEpkD,MAAOmU,KAAK5Q,UAAUwtN,EAAY,KAAM,MACxC3gN,MAAK,UACHkgK,GAAAA,KAAAA,MArES,GAqE0BT,YADhC,aACH,EApEQ,GAoE6CP,YAClD72J,QAELi/K,MAAI,EACJC,SAAU,EACVF,aACE,SAAC,GAAD,CACE7yE,QAAS,KACPwM,UAAU6/F,UAAUC,UAAU/8M,KAAK5Q,UAAUwtN,GAA7C,EAFJ,qBASJ,SAAC,GAAD,WACE,SAAC,GAAD,CACEl1D,WAAS,EACTzjJ,MAAOu9G,QAAO,UAAC39G,EAAOo3J,cAAR,aAAC,EAAeD,iBAC9B/+J,MAAK,UACHkgK,GAAAA,KAAAA,MAzFO,GAyF4BT,YADhC,aACH,EAxFM,GAwF+CP,YAClDH,gBAEL3uJ,GAAG,yBACH3Y,KAAK,yBACLq/I,SAAUG,EACVilB,WAAU,UAAEt0J,EAAOo3J,cAAT,aAAE,EAAeD,qBAG/B,SAAC,GAAD,CACEtT,WAAS,EACTzjJ,MAAOu9G,QAAO,UAAC39G,EAAOo3J,cAAR,aAAC,EAAe3vJ,WAC9B6sJ,WAAU,UAAEt0J,EAAOo3J,cAAT,aAAE,EAAe3vJ,UAC3BrP,MAAK,UACHkgK,GAAAA,KAAAA,MAvGS,GAuG0BT,YADhC,aACH,EAtGQ,GAsG6CP,YAClD7vJ,UAELe,GAAG,mBACH3Y,KAAK,mBACLq/I,SAAUG,KAEZ,SAAC,GAAD,KACA,SAAC,GAAD,WACE,SAAC,GAAD,CACExrF,QAAQ,WACR/P,SACEkoJ,IACC7kC,IACAC,EAAO3vJ,WACRk2G,QAAO,UAAC39G,EAAOo3J,cAAR,aAAC,EAAe3vJ,YACvBk2G,QAAO,UAAC39G,EAAOo3J,cAAR,aAAC,EAAeD,iBAEzBvqD,QAAS0uE,EATX,mBAWGhjB,GAAAA,KAAAA,MA3HQ,GA2H2BT,YAXtC,aAWG,EA1HO,GA0H8CJ,iBAlE9D,EClDF,GAbqD9tK,IACnD,SAAC,GAAD,CACEk6J,WAAS,EACTzrJ,MAAOzO,EAAMyO,MACbyrD,QAAQ,WACR/P,UAAQ,EACR6Y,GAAI,CAAE8rG,GAAI,GACVjwJ,GAAI7e,EAAMwvN,WACVtpN,KAAMlG,EAAMwvN,WACZnxN,MAAO2B,EAAM3B,QCyIjB,GAtH0C,KAAO,IAAD,MAC9C,MAAM,IAAEkzM,GAAQrkC,MACV,OAAErzJ,EAAF,cAAU42K,EAAV,WAAyBkB,GAAenF,MAE5Cr2I,KAAMk4K,EADF,gBAEJ7gD,EAFI,gBAGJ4tC,EAHI,cAIJkT,IACErnN,EAAAA,EAAAA,YAAWinN,KACT,aAAE3kE,GAAiBS,MAClBylE,EAAiBC,IAAsBrxG,EAAAA,EAAAA,UAA0B,CACtEljH,IAAK,YAILmuJ,2BAA2B,QAAE5kI,EAAF,UAAWy1J,IACpCnwB,MAEJjsC,EAAAA,EAAAA,YAAU,KAnCM,IAoCVlkG,EAAOi5L,WAAW/gE,WAEtB0+C,EAAc,mBAAoBjjB,GAE9B3zJ,EAAOiE,WACT6zK,IACD,GACA,CACDnkB,EACAijB,EACAkB,EACA93K,EAAOiE,UACPjE,EAAOi5L,WAAW/gE,WAGpB,MAAM49E,GAAsB7xG,EAAAA,EAAAA,cAAYwiF,UACtC,MAAMsvB,EAAa/1M,EACbxC,EAAO43M,GAAa,CACxBp6L,OAAQ,IACH00H,EACH92H,kBAAmB8xK,GAASgN,EAAI34B,YAAYy2C,QAAQnwN,MAAM,EAAG,MAE/D0uK,iBAAkBgiD,EAAWhd,UAAUrqL,MAGzC,IACEmnM,EAAmB,CAAEv0N,IAAK,YAC1B,MAAM2iB,QAAkBuwM,EAAa,CACnC7gD,gBAAiBoiD,EAAW/c,SAASl0L,QACrCtH,SAGFq4M,EAAmB,CAAEv0N,IAAK,WAC1Bs1L,EAAc,YAAa3yK,EAG5B,CAFC,MAAOrH,GACPi5M,EAAmB,CAAEv0N,IAAK,QAASsb,MAAOA,GAC3C,IACA,CAAC86L,EAAI34B,YAAarvB,EAAc8kE,EAAc59B,EAAe52K,IAErB,IAAD,EAA1C,OAAIuhM,IAAoBD,GAAQM,UAE5B,SAAC,GAAD,WACE,UAAC,GAAD,CAAKz4I,GAAI,CAAElwC,MAAO,OAAQs2B,QAAS,OAAQs/F,cAAe,OAA1D,WACE,SAAC,GAAD,CACEj6I,MAAK,UACHkgK,GAAAA,KAAAA,MAlFK,GAkF8BT,YADhC,aACH,EAA0C,GAAGP,YAC1CH,gBAELgiD,WAAW,mBACXnxN,MAAM,gCAER,SAAC,GAAD,CAAQ67J,WAAS,EAACj3C,QAASqrG,EAA3B,kCASN,UAAC,GAAD,CAAO3uJ,IAAK,EAAGivG,GAAI,EAAnB,WACE,SAAC,GAAD,CACEvwK,MAAK,UAAKqmB,EAAL,aAAiBy1J,EAAjB,KACL1rK,MAAK,UACHkgK,GAAAA,KAAAA,MArGS,GAqG0BT,YADhC,aACH,EApGQ,GAoG6CP,YAClDjpJ,WAGP,SAAC,GAAD,CACEjW,MAAK,UACHkgK,GAAAA,KAAAA,MA3GS,GA2G0BT,YADhC,aACH,EA1GQ,GA0G6CP,YAClDH,gBAELnvK,MACEwb,EAAOg5L,SAASl0L,SAAW,6CAG/B,SAAC,GAAD,KACA,UAAC,GAAD,YACE,SAAC,GAAD,CACEu7C,QAAQ,WACR/P,SACEixJ,IAAoBD,GAAQM,WAC3B5hM,EAAOg5L,SAASl0L,SACjB9E,EAAOw4L,gBACiB,YAAxBod,EAAgBt0N,IAElB8nH,QAAS0sG,EARX,mBAUGhhD,GAAAA,KAAAA,MA9HQ,GA8H2BT,YAVtC,aAUG,EA7HO,GA6H8CJ,aAE9B,WAAV,OAAf2hD,QAAe,IAAfA,OAAA,EAAAA,EAAiBt0N,OAChB,SAAC,GAAD,CAAgBsb,OAAK,EAArB,SAAuBg5M,EAAgBh5M,MAAMK,eAjCrD,EC1FWm4M,GAAe,QAAC,OAC3B58M,EAD2B,iBAE3Bu7J,EAF2B,YAG3BgL,GAH0B,QAbN,EAACi3C,EAAa1jN,KAClC,IAAK,MAAMhQ,KAAOgQ,EAAM,CACtB,MAAMsgB,EAAMtgB,EAAKhQ,GACjB,IAAKswB,EACH,MAAM,IAAI5R,MAAJ,kCACuB1e,EADvB,mCACqD0zN,EADrD,MAIRA,EAAMA,EAAIvxN,QAAQ,IAAMnC,EAAM,IAAKswB,EACpC,CACD,OAAOojM,CAAP,EAQAC,CAAcz9M,EAAQ,CACpB09M,kBAAmBniD,EACnBoiD,aAAcp3C,GAPU,ECsH5B,GA7HsC,KAAO,IAAD,wBAC1C,MAAM,IAAE24B,GAAQrkC,MAEdrzJ,QACEg5L,UAAYl0L,QAAS6uJ,GACrBolC,WAAarqL,IAAK4mM,GAFZ,OAGN5hD,EAHM,eAIN8kC,GALE,OAOJh8L,EAPI,cAQJo6K,EARI,aASJ/qC,EATI,WAUJisC,GACEnF,MACE,aAAEhjC,GAAiBQ,MAEzBjsC,EAAAA,EAAAA,YAAU,KAAO,IAAD,KACVwvD,EAAOC,iBAAmB,UAACn3J,EAAOk3J,cAAR,OAAC,EAAeC,gBAG5CijB,EAAc,wBAAoB10L,GAFlC00L,EAAc,mBAAoBljB,EAAOC,kBAKvCD,EAAOzvJ,WAAa,UAACzH,EAAOk3J,cAAR,OAAC,EAAezvJ,UAGtC2yK,EAAc,iBAAa10L,GAF3B00L,EAAc,YAAaljB,EAAOzvJ,UAGnC,GACA,WACDzH,EAAOk3J,cADN,aACD,EAAeC,gBADd,UAEDn3J,EAAOk3J,cAFN,aAED,EAAezvJ,UACfyvJ,EAAOC,gBACPD,EAAOzvJ,UACP2yK,IAGF,MAAMp5K,GAAO6mG,EAAAA,EAAAA,UAAQ,KACnB,IAAKixG,EAAc,OAUnB,OAPEA,GACAF,GAAa,IACRzlE,EACHovB,YAAa2rB,GAASgN,EAAI34B,YAAYy2C,SACtCzhD,iBAAkBuhD,GAGtB,GACC,CAAC5d,EAAI34B,YAAapvB,EAAc2lE,IAE7BQ,GAAsB7xG,EAAAA,EAAAA,cAAY,IAAM6zE,KAAc,CAACA,IAE7D,OACE,UAAC,GAAD,CAAOhyH,IAAK,EAAZ,WACE,UAAC,GAAD,CAAOisF,SAAS,OAAhB,2GAE8B,KAC5B,SAAC,GAAD,CAAMnpG,KAAK,yCAAX,8BAEQ,IALV,0CAQA,SAAC,GAAD,CACEpkD,MAAOgZ,EACP0+K,MAAI,EACJtnL,MAAK,UACHkgK,GAAAA,KAAAA,MArES,GAqE0BT,YADhC,aACH,EApEQ,GAoE6CP,YAClD72J,QAELg/K,aACE,SAAC,GAAD,CACE7yE,QAAS,KACP5rG,GAAQo4G,UAAU6/F,UAAUC,UAAUl4M,EAAtC,EAFJ,qBASJ,SAAC,GAAD,WACE,SAAC,GAAD,CACE6iJ,WAAS,EACTzjJ,MAAOu9G,QAAO,UAAC39G,EAAOk3J,cAAR,aAAC,EAAeC,iBAC9B/+J,MAAK,UACHkgK,GAAAA,KAAAA,MAvFO,GAuF4BT,YADhC,aACH,EAtFM,GAsF+CP,YAClDH,gBAEL3uJ,GAAG,yBACH3Y,KAAK,yBACLq/I,SAAUG,EACVilB,WAAU,UAAEt0J,EAAOk3J,cAAT,aAAE,EAAeC,qBAG/B,SAAC,GAAD,CACEtT,WAAS,EACTzjJ,MAAOu9G,QAAO,UAAC39G,EAAOk3J,cAAR,aAAC,EAAezvJ,WAC9B6sJ,WAAU,UAAEt0J,EAAOk3J,cAAT,aAAE,EAAezvJ,UAC3BrP,MAAK,UACHkgK,GAAAA,KAAAA,MArGS,GAqG0BT,YADhC,aACH,EApGQ,GAoG6CP,YAClD7vJ,UAELe,GAAG,mBACH3Y,KAAK,mBACLq/I,SAAUG,KAEZ,SAAC,GAAD,KACA,SAAC,GAAD,WACE,SAAC,GAAD,CACExrF,QAAQ,WACR/P,SACEkoJ,IACC7kC,IACAD,EAAOzvJ,WACRk2G,QAAO,UAAC39G,EAAOk3J,cAAR,aAAC,EAAezvJ,YACvBk2G,QAAO,UAAC39G,EAAOk3J,cAAR,aAAC,EAAeC,iBAEzBvqD,QAAS0sG,EATX,mBAWGhhD,GAAAA,KAAAA,MAzHQ,GAyH2BT,YAXtC,aAWG,EAxHO,GAwH8CJ,iBAlE9D,ECrCF,SAASmiD,GAASjwN,GAChB,MAAM,SAAEC,EAAF,MAAY5B,EAAZ,MAAmBQ,KAAU+pB,GAAU5oB,EAE7C,OACE,gBACEqrD,KAAK,WACLm4F,OAAQnlJ,IAAUQ,EAClBggB,GAAE,0BAAqBhgB,GACvB,uCAA+BA,MAC3B+pB,EALN,UAOE,SAAC,GAAD,CAAKo6C,GAAI,CAAE8rG,GAAI,GAAf,SAAqB7uK,KAG1B,CAED,MAAMiwN,GAA8ClwN,IAClD,MAAM,SAAEC,GAAaD,GACf,0BAAEspJ,GAA8BU,KAEhCmmE,GAAejyG,EAAAA,EAAAA,UAAQ,KAAO36E,OAAOsvK,UAAU,IAE/C9uL,GAAWm6F,EAAAA,EAAAA,UACf,KAAOiyG,GX/CoB,MAC7B,IAAK5sL,OAAOsvK,SACV,MAAM,IAAIh4L,MAAM,mCAGlB,OAAO,IAAIu1M,GAA8B7sL,OAAOsvK,SAAhD,EW0CyBwd,IACvB,CAACF,IAGH,OAAKpsM,GAKH,SAAC,GAAD,CACEulI,0BAA2BA,EAC3BvlI,SAAUA,EAFZ,SAIG9jB,KARI,SAAC,GAAD,CAAYi6D,QAAQ,QAApB,uCAGT,EAiHIo2J,GAAyB,CAC7BtmK,KAnEqB,KAAO,IAAD,QAC3B,MACEnwC,QACEi5L,YAAY,SAAE/gE,IAFZ,cAIJ0+C,GACEjE,KAEE9mC,GAAe5nC,EAAAA,EAAAA,cACnB,CAACw9B,EAA8BxmF,KAC7B27H,EAAc,sBAAuB37H,EAArC,GAEF,CAAC27H,IAGH,OACE,UAAC,GAAD,YACE,SAAC,GAAD,oBACG9hB,GAAAA,KAAAA,MAvGU,GAuGyBX,oBADtC,aACG,EAAiDzpK,KAAK+lE,IACrD,SAAC,GAAD,CAAyBshF,SAAS,OAAlC,SACGthF,GADSA,QAKhB,UAAC,GAAD,CAAMjsE,MAAO0zI,EAAUwT,SAAUG,EAAjC,WACE,SAAC,GAAD,CACEj3I,OACE,SAAC,GAAD,oBACGkgK,GAAAA,KAAAA,MAjHI,GAiH+BT,YADtC,aACG,EAA0C,GAAGhoK,UAIpD,SAAC,GAAD,CACEuI,OACE,SAAC,GAAD,oBACGkgK,GAAAA,KAAAA,MAxHI,GAwH+BT,YADtC,aACG,EAA0C,GAAGhoK,UAIpD,SAAC,GAAD,CACEuI,OACE,SAAC,GAAD,oBACGkgK,GAAAA,KAAAA,MA/HI,GA+H+BT,YADtC,aACG,EAA0C,GAAGhoK,aAKtD,SAAC,GAAD,WACE,UAAC,GAAD,CAAKgkH,GAAI,EAAT,WACE,SAAC+lG,GAAD,CAAU5xN,MAAO0zI,EAAUlzI,MAAO,EAAlC,UACE,SAACqxN,GAAD,WACE,SAAC,GAAD,SAGJ,SAACD,GAAD,CAAU5xN,MAAO0zI,EAAUlzI,MAAO,EAAlC,UACE,SAAC,GAAD,OAEF,SAACoxN,GAAD,CAAU5xN,MAAO0zI,EAAUlzI,MAAO,EAAlC,UACE,SAAC,GAAD,aA3CV,EAqDAgmE,UAvF0B,KAAO,IAAD,EAChC,MAAM,OAAEhrD,GAAW2yK,KAEnB,OAAI3yK,EAAOi5L,WAAWhjC,WAAaygD,EAAuB,MAGxD,UAAC,GAAD,CAAOvtJ,GAAI,CAAEs1B,GAAI,GAAjB,WACE,SAAC,GAAD,CAAOszD,SAAS,OAAhB,mBAEI+iB,GAAAA,KAAAA,MA3ES,GA2E0B9pG,UAAUyF,mBAFjD,aAEI,EACEzwD,EAAOi5L,WAAW/gE,aAIxB,SAAC,GAAD,CAAS1zI,MAAOwb,EAAOg5L,SAASl0L,YATpC,EAmFAlQ,MA1GsB,KACtB,MAAM,OAAEoL,GAAW2yK,KAEnB,OACE,SAAC,GAAD,CACEshB,cAAe,CACb31I,MAAO,CACLrQ,MAvDS,IAwDPjuC,EAAOi5L,WAAWhjC,WAA4B,UAAY,SAGhE9sG,GAAI,CAAE0rG,GAAI,EAAGz1E,GAAI,GAPnB,SASG01E,GAAAA,KAAAA,MA7DY,GA6DuBjB,kBAVxC,GA0GF,MCjLA,MACA,IADuBlmH,EAAAA,GAAAA,GAAuB,aAAc,CAAC,OAAQ,WAAY,YAAa,QAAS,SAAU,WAAY,QAAS,WAAY,eAAgB,uBAAwB,iBAAkB,gBAAiB,UAAW,oBCAxO,MACA,IAD4BA,EAAAA,GAAAA,GAAuB,kBAAmB,CAAC,OAAQ,wBCA/E,MACA,IAD4BA,EAAAA,GAAAA,GAAuB,kBAAmB,CAAC,OAAQ,YAAa,QAAS,QAAS,UAAW,cCHlH,SAASgpK,GAAwBlpK,GACtC,OAAOC,EAAAA,GAAAA,GAAqB,cAAeD,EAC5C,CACD,MACA,IADwBE,EAAAA,GAAAA,GAAuB,cAAe,CAAC,OAAQ,eAAgB,QAAS,WAAY,UAAW,UAAW,aCF5HC,GAAY,CAAC,YAAa,YAAa,QAAS,UAAW,iBAAkB,wBAAyB,OAAQ,YAwC9GgpK,IAAe9oK,EAAAA,GAAAA,IAAOopF,GAAY,CACtCrjI,kBAAmBR,IAAQymD,EAAAA,GAAAA,IAAsBzmD,IAAkB,YAATA,EAC1DhH,KAAM,cACNohD,KAAM,OACNM,kBA3B+B,CAAC5nD,EAAOgG,KACvC,MAAM,WACJ6hD,GACE7nD,EACJ,MAAO,CAACgG,EAAOnG,KAAMgoD,EAAW65G,OAAS17J,EAAO07J,MAAO75G,EAAW0E,SAAWvmD,EAAOumD,SAAU1E,EAAW48F,gBAAkBz+I,EAAO0+I,QAAlI,GAmBmB/8F,EAKlB,QAAC,MACF14C,EADE,WAEF44C,GAFC,SAGGn7C,EAAAA,EAAAA,GAAS,CAAC,EAAGuC,EAAMy6C,WAAWqH,MAAO,CACzC3H,QAAS,OACTqhF,eAAgB,aAChBZ,WAAY,SACZpqI,SAAU,WACVkxI,eAAgB,OAChB/kF,UAAW,GACXivG,WAAY,EACZsD,cAAe,EACfr/B,UAAW,aACXkpB,WAAY,WACVngG,EAAW48F,gBAAkB,CAC/Bva,YAAa,GACb8c,aAAc,IACbn/F,EAAW0E,SAAW,CACvBwS,aAAc,aAAF,QAAgB9vD,EAAM66C,MAAQ76C,GAAO86C,QAAQwC,SACzDmkK,eAAgB,eACf,CACD,UAAW,CACT//E,eAAgB,OAChB1R,iBAAkBhwH,EAAM66C,MAAQ76C,GAAO86C,QAAQE,OAAO0C,MAEtD,uBAAwB,CACtBsyE,gBAAiB,gBAGrB,CAAC,KAAD,OAAM0xF,GAAAA,WAA6B,CACjC1xF,gBAAiBhwH,EAAM66C,KAAN,eAAqB76C,EAAM66C,KAAKC,QAAQsC,QAAQioF,YAAhD,cAAiErlI,EAAM66C,KAAKC,QAAQE,OAAO6C,gBAA3F,MAAgHza,EAAAA,GAAAA,IAAMpjC,EAAM86C,QAAQsC,QAAQrC,KAAM/6C,EAAM86C,QAAQE,OAAO6C,iBACxL,CAAC,KAAD,OAAM6jK,GAAAA,eAAiC,CACrC1xF,gBAAiBhwH,EAAM66C,KAAN,eAAqB76C,EAAM66C,KAAKC,QAAQsC,QAAQioF,YAAhD,mBAAsErlI,EAAM66C,KAAKC,QAAQE,OAAO6C,gBAAhG,cAAqH79C,EAAM66C,KAAKC,QAAQE,OAAOiD,aAA/I,OAAkK7a,EAAAA,GAAAA,IAAMpjC,EAAM86C,QAAQsC,QAAQrC,KAAM/6C,EAAM86C,QAAQE,OAAO6C,gBAAkB79C,EAAM86C,QAAQE,OAAOiD,gBAGrR,CAAC,KAAD,OAAMyjK,GAAAA,SAAN,WAAyC,CACvC1xF,gBAAiBhwH,EAAM66C,KAAN,eAAqB76C,EAAM66C,KAAKC,QAAQsC,QAAQioF,YAAhD,mBAAsErlI,EAAM66C,KAAKC,QAAQE,OAAO6C,gBAAhG,cAAqH79C,EAAM66C,KAAKC,QAAQE,OAAO2C,aAA/I,OAAkKva,EAAAA,GAAAA,IAAMpjC,EAAM86C,QAAQsC,QAAQrC,KAAM/6C,EAAM86C,QAAQE,OAAO6C,gBAAkB79C,EAAM86C,QAAQE,OAAO2C,cAEjR,uBAAwB,CACtBqyE,gBAAiBhwH,EAAM66C,KAAN,eAAqB76C,EAAM66C,KAAKC,QAAQsC,QAAQioF,YAAhD,cAAiErlI,EAAM66C,KAAKC,QAAQE,OAAO6C,gBAA3F,MAAgHza,EAAAA,GAAAA,IAAMpjC,EAAM86C,QAAQsC,QAAQrC,KAAM/6C,EAAM86C,QAAQE,OAAO6C,mBAG5L,CAAC,KAAD,OAAM6jK,GAAAA,eAAiC,CACrC1xF,iBAAkBhwH,EAAM66C,MAAQ76C,GAAO86C,QAAQE,OAAOgD,OAExD,CAAC,KAAD,OAAM0jK,GAAAA,WAA6B,CACjCtnN,SAAU4F,EAAM66C,MAAQ76C,GAAO86C,QAAQE,OAAO+C,iBAEhD,CAAC,QAAD,OAAS4jK,GAAAA,OAAwB,CAC/B/rE,UAAW51I,EAAMivD,QAAQ,GACzB4mF,aAAc71I,EAAMivD,QAAQ,IAE9B,CAAC,QAAD,OAAS0yJ,GAAAA,QAAyB,CAChC3mF,WAAY,IAEd,CAAC,MAAD,OAAO4mF,GAAAA,OAA6B,CAClChsE,UAAW,EACXC,aAAc,GAEhB,CAAC,MAAD,OAAO+rE,GAAAA,QAA8B,CACnC3mF,YAAa,IAEf,CAAC,MAAD,OAAO4mF,GAAAA,OAA6B,CAClC3wJ,SAAU,MAEVtY,EAAW65G,OAAS,CACtB,CAACzyJ,EAAMw8C,YAAYI,GAAG,OAAQ,CAC5BD,UAAW,SAEZ/D,EAAW65G,QAASh1J,EAAAA,EAAAA,GAAS,CAC9Bk/C,UAAW,GAEXivG,WAAY,EACZsD,cAAe,GACdlvJ,EAAMy6C,WAAWsH,MAAO,CACzB,CAAC,MAAD,OAAO8/J,GAAAA,KAAP,SAAwC,CACtC9oK,SAAU,aA5EX,IA+EG+oK,GAAwB5pN,EAAAA,YAAiB,SAAkBkjD,EAASrjD,GACxE,MAAMhH,GAAQsqD,EAAAA,EAAAA,GAAc,CAC1BtqD,MAAOqqD,EACPnkD,KAAM,iBAGF,UACJk9G,GAAY,EADR,UAEJnmG,EAAY,KAFR,MAGJykJ,GAAQ,EAHJ,QAIJn1G,GAAU,EAJN,eAKJk4F,GAAiB,EALb,sBAMJzQ,EANI,KAOJ3oF,EAAO,WACP0mF,SAAUm2B,GACRloK,EACE4oB,GAAQ+hC,EAAAA,GAAAA,GAA8B3qD,EAAOynD,IAE7Cif,EAAUv/D,EAAAA,WAAiB26J,IAC3Bd,EAAe,CACnBU,MAAOA,GAASh7F,EAAQg7F,QAAS,EACjCjd,kBAEIusE,EAAc7pN,EAAAA,OAAa,OACjCo+D,EAAAA,GAAAA,IAAkB,KACZ69C,GACE4tG,EAAY/gN,SACd+gN,EAAY/gN,QAAQg9C,OAIvB,GACA,CAACm2D,IAEJ,MAAMv7D,GAAan7C,EAAAA,EAAAA,GAAS,CAAC,EAAG1M,EAAO,CACrC0hK,MAAOV,EAAaU,MACpBn1G,UACAk4F,mBAGI35F,EA5IkBjD,KACxB,MAAM,SACJsC,EADI,MAEJu3G,EAFI,QAGJn1G,EAHI,eAIJk4F,EAJI,SAKJ53F,EALI,QAMJ/B,GACEjD,EACEkD,EAAQ,CACZlrD,KAAM,CAAC,OAAQ6hK,GAAS,QAASv3G,GAAY,YAAas6F,GAAkB,UAAWl4F,GAAW,UAAWM,GAAY,aAErHonF,GAAkBjpF,EAAAA,GAAAA,GAAeD,EAAOylK,GAAyB1lK,GACvE,OAAOp+C,EAAAA,EAAAA,GAAS,CAAC,EAAGo+C,EAASmpF,EAA7B,EA+HgBhpF,CAAkBjrD,GAC5B+lI,GAAYvgE,EAAAA,GAAAA,GAAWwrJ,EAAahqN,GAC1C,IAAI+qI,EAMJ,OAJK/xI,EAAMmqD,WACT4nF,OAA4Bh2I,IAAjBmsK,EAA6BA,GAAgB,IAGtC58G,EAAAA,EAAAA,KAAKw2G,GAAAA,SAAsB,CAC7CzjK,MAAO2iK,EACP/gK,UAAuBqrD,EAAAA,EAAAA,KAAKmlK,IAAc/jN,EAAAA,EAAAA,GAAS,CACjD1F,IAAK++H,EACL16E,KAAMA,EACN0mF,SAAUA,EACV90H,UAAWA,EACX+2H,uBAAuB7oF,EAAAA,GAAAA,GAAKL,EAAQia,aAAcivE,IACjDprH,EAAO,CACRi/B,WAAYA,EACZiD,QAASA,MAGd,IAwFD,MC1PMmmK,GAAmC,KAAO,IAAD,EAC7C,MAAM,OAAEp3M,EAAF,cAAU42K,GAAkBjE,MAC5B,kBAAE2b,IAAsBlhM,EAAAA,EAAAA,YAAWghM,IAEnCipB,GAAkBpzG,EAAAA,EAAAA,cACrBnoD,IACC,MAAM76B,EAAUqtK,EAAkBz2K,MAC/BoJ,GAAYA,EAAQnc,UAAYg3C,EAAM/oD,OAAOvO,QAEhDoyL,EAAc,oBAAqB31J,GACnC21J,EAAc,gB1F4DlB8T,GAASkB,G0F5DuC9vI,EAAM/oD,OAAOvO,QAAzD,GAEF,CAACoyL,EAAe0X,IAGlB,OAAKA,EAAkB7sM,QAWrB,UAAC,GAAD,CAAa4+J,WAAS,EAAtB,WACE,SAAC,GAAD,CAAYr7I,GAAG,2BAAf,SACG8vJ,GAAAA,KAAAA,MA9BU,GA8ByBhB,YAAYC,oBAElD,SAAC,GAAD,CACEhG,QAAQ,2BACRvpK,OAAO,UAAAwb,EAAO+4L,UAAU93K,eAAjB,eAA0Bnc,UAAW,GAC5ClQ,MAAOkgK,GAAAA,KAAAA,MAnCI,GAmC+BhB,YAAYC,iBACtD/uJ,GAAG,4BACH3Y,KAAK,4BACLq/I,SAAU2rE,EANZ,SAQG/oB,EAAkB5jM,KAAKoa,IACtB,SAAC,GAAD,CAAgCtgB,MAAOsgB,EAAQA,QAA/C,UACE,UAAC,GAAD,YACE,SAAC,GAAD,CAAYu7C,QAAQ,QAApB,SAA6Bv7C,EAAQu7E,KAAKh0F,QAC1C,SAAC,GAAD,CAAY4hD,MAAM,UAAUoS,QAAQ,UAApC,SACGv7C,EAAQA,cAJAA,EAAQA,iBAtB3B,SAAC,GAAD,CACElQ,MAAOkgK,GAAAA,KAAAA,MApBI,GAoB+BhB,YAAYC,iBACtDvvK,MAAO,2CACPmxN,WAAY,6BAKlB,EA2GI2B,GAA0B,CAC9BnnK,KAjCqB,KACrB,MAAM,OAAEnwC,GAAW2yK,KAEnB,OACE,SAAC,GAAD,WACE,UAAC,GAAD,CAAO7sH,IAAK,EAAZ,WACE,SAAC,GAAD,CAAOisF,SAAS,OAAhB,SACG+iB,GAAAA,KAAAA,MA7GQ,GA6G2BrkG,eAEtC,SAAC2mJ,GAAD,IACCp3M,EAAO+4L,UAAUrqL,MAChB,SAAC,GAAD,CACE9Z,MACEkgK,GAAAA,KAAAA,MAnHK,GAmH8BhB,YAAYE,oBAEjDxvK,MAAOwb,EAAO+4L,UAAUrqL,IACxBinM,WAAY,mBAGhB,SAAC,GAAD,CACEt1D,WAAS,EACT/vG,UAAW6pE,QAAQn6G,EAAO+4L,UAAU93K,SACpCo/B,QAAQ,WACRn6D,KAAK,SAJP,SAMG4uK,GAAAA,KAAAA,MA/HQ,GA+H2Bb,iBAtB5C,EA+BAjpG,UA/D0B,KAAO,IAAD,EAChC,MAAM,OAAEhrD,EAAF,cAAU42K,GAAkBjE,KAE5B4kC,GAAatzG,EAAAA,EAAAA,cAAY,KAC7B2yE,EAAc,wBA7EC,EA6Ef,GACC,CAACA,IAEJ,OAhFiB,IAgFb52K,EAAOi5L,WAAWhjC,WAAkC,MAGtD,UAAC,GAAD,CAAO9sG,GAAI,CAAEs1B,GAAI,GAAjB,WACE,SAAC,GAAD,CAAOszD,SAAS,OAAhB,SACG+iB,GAAAA,KAAAA,MArFU,GAqFyB9pG,UAAUyF,eAGhD,SAAC,GAAD,CACEjsE,MAAK,UAAEwb,EAAO+4L,UAAU93K,eAAnB,aAAE,EAA0Bnc,QACjCm3K,YACmCy6B,IAAjC12M,EAAOi5L,WAAWhjC,YAChB,SAAC,GAAD,CAAQ51G,QAAQ,OAAO+oD,QAASmuG,EAAhC,SACGziD,GAAAA,KAAAA,MA7FI,GA6F+B9pG,UAAUkpG,yBAE9ChyK,MAbZ,EAuDA0S,MAlFsB,KACtB,MAAM,OAAEoL,GAAW2yK,KAEnB,OACE,SAAC,GAAD,CACEshB,cAAe,CACb31I,MAAO,CACLrQ,MA9DS,IA+DPjuC,EAAOi5L,WAAWhjC,WAA4B,UAAY,SAGhE9sG,GAAI,CAAE0rG,GAAI,EAAGz1E,GAAI,GAPnB,SASG01E,GAAAA,KAAAA,MApEY,GAoEuBjB,kBAVxC,GAkFF,MC3JA,IANuB/lH,EAAAA,GAAAA,GAAO,MAAPA,CAAc,CACnCgX,OAAQ,qBACRf,aAAc,MACdvrC,QAAS,SCEX,IALqBs1B,EAAAA,GAAAA,GAAO,MAAPA,CAAc,CACjCqX,WAAY,wBACZ3sC,QAAS,wBCmCLg/L,GAAyDrxN,IAC7D,MAAM,KAAEkG,EAAF,KAAQmR,EAAR,gBAAci6M,GAAoBtxN,EAExC,OACE,UAAC,GAAD,YACE,UAAC,GAAD,CAAYk6D,QAAQ,QAApB,UACGh0D,EADH,KACWorN,GAAmBj6M,EAAKk6M,gBAEnC,SAAC,GAAD,CAAYr3J,QAAQ,QAApB,SAA6B7iD,EAAK9P,eALtC,EAUIiqN,GAA8DxxN,IAClE,MAAM,IAAEuxM,EAAF,KAAOrrM,EAAP,KAAamR,EAAb,gBAAmBi6M,GAAoBtxN,EAE7C,OACE,UAAC,GAAD,YACE,UAAC,GAAD,CAAYk6D,QAAQ,QAApB,UACGh0D,EADH,KACWorN,GAAmBj6M,EAAKk6M,gBAEnC,SAAC,GAAD,CAAYr3J,QAAQ,QAApB,SACGu2I,GACCp5L,EACAk6L,EAAIG,SAASC,cAAc,GAC3BJ,EAAIG,SAASE,YAAY,QATjC,EAgBI6f,GAEDzxN,IACH,MAAM,KAAEkG,EAAF,KAAQmR,EAAR,gBAAci6M,GAAoBtxN,EACxC,OACE,UAAC,GAAD,YACE,UAAC,GAAD,CAAYk6D,QAAQ,QAApB,UACGh0D,EADH,KACWorN,GAAmBj6M,EAAKk6M,gBAEnC,yBAAM/+M,KAAK5Q,UAAUyV,EAAK6S,SAAU,KAAM,OAL9C,EAUIwnM,GAED1xN,IACH,MAAM,KAAEkG,EAAF,KAAQmR,EAAR,gBAAci6M,GAAoBtxN,EAExC,OACE,iCACE,UAAC,GAAD,CAAYk6D,QAAQ,QAApB,UACGh0D,EADH,KACWorN,GAAmBj6M,EAAKk6M,gBAEnC,SAAC,GAAD,WACE,SAAC,GAAD,CAAO5xJ,IAAK,EAAZ,SACGtoD,EAAK9S,KAAI,CAACotN,EAAS9yN,KAClB,SAAC,GAAD,WACE,UAAC,GAAD,YACE,UAAC,GAAD,CAAYq7D,QAAQ,QAApB,UACGr7D,EADH,KACY,0CAEZ,yBACG2T,KAAK5Q,UACJ,CACE8uM,QAASihB,EAAQjhB,QAAQkhB,UACzB3f,MAAO0f,EAAQ1f,MAAM2f,UACrB9f,QAAS6f,EAAQ7f,QAAQ8f,WAE3B,KACA,SAbED,EAAQ3vN,KAAKuF,oBARjC,EAiCIsqN,GAED7xN,IACH,MAAM,KAAEkG,EAAF,KAAQmR,EAAR,gBAAci6M,GAAoBtxN,EAExC,OACE,UAAC,GAAD,YACE,UAAC,GAAD,CAAYk6D,QAAQ,QAApB,UACGh0D,EADH,KACWorN,GAAmBj6M,EAAKk6M,gBAEnC,SAAC,GAAD,CAAYr3J,QAAQ,QAApB,SAA6B7iD,EAAK9P,eALtC,EAUIuqN,GAED9xN,IACH,MAAM,KAAEqX,EAAF,IAAQk6L,GAAQvxM,EAEhBgpB,EAAM3R,EAAKq8L,cAAcC,UACzB,KAAEP,EAAF,QAAQK,EAAR,OAAiB/yL,GAAW6wL,EAAIG,SAASkC,cAAc5qL,GAE7D,OACE,SAAC,GAAD,WACE,UAAC,GAAD,CAAO22C,IAAK,EAAZ,WACE,UAAC,GAAD,YACE,SAAC,GAAD,CAAYzF,QAAQ,QAApB,oDAGA,yBACG1nD,KAAK5Q,UACJ,CACE/C,MAAOwY,EAAKq8L,cAAcC,SAAS90M,MACnC4X,MAAOY,EAAKq8L,cAAcC,SAASl9L,OAErC,KACA,SAIN,UAAC,GAAD,YACE,SAAC,GAAD,CAAYyjD,QAAQ,QAApB,mBACA,UAAC,GAAD,CAAYA,QAAQ,QAApB,UACGu5I,EADH,IACa/yL,SAGf,UAAC,GAAD,YACE,SAAC,GAAD,CAAYw5C,QAAQ,QAApB,sBACA,SAAC,GAAD,CAAYA,QAAQ,QAApB,SAA6Bk5I,QAE/B,SAACqe,GAAD,CACEp6M,KAAMA,EAAK06M,aACX7rN,KAAK,eACLorN,gBAAgB,wCA/BxB,EAyCIU,GAA+ChyN,IACnD,MAAM,IAAEuxM,GAAQrkC,MACV,UAAE+kD,GAAcjyN,GACf0lB,EAAUwsM,IAAe7zG,EAAAA,EAAAA,WAAkB,GAE5C8zG,GAAgBr0G,EAAAA,EAAAA,cACpB,CAACnoD,EAA6By8J,KAC5BF,EAAYE,EAAZ,GAEF,IAGIhf,GAAOl1F,EAAAA,EAAAA,UACX,IAAM+zG,EAAUt8J,MAAMukC,KAAKk5G,KAAKwe,WAChC,CAACK,EAAUt8J,MAAMukC,KAAKk5G,OAElBrzM,GAAOm+G,EAAAA,EAAAA,UACX,cAAS+zG,EAAUt8J,MAAM89I,QAAzB,YAAoCwe,EAAUt8J,MAAMj1C,SACpD,CAACuxM,EAAUt8J,MAAMj1C,OAAQuxM,EAAUt8J,MAAM89I,UAGrC4e,GAAUn0G,EAAAA,EAAAA,UAAQ,KACtB,MAAa,2BAATn+G,GAEA,SAAC+xN,GAAD,CACEz6M,KAAM46M,EAAUt8J,MAAMt+C,KACtBk6L,IAAKA,IAIE,4BAATxxM,GAEA,SAAC0xN,GAAD,CACEp6M,KAAO46M,EAAUt8J,MAAMt+C,KAAkC06M,aACzD7rN,KAAI,UAAE+rN,EAAUt8J,MAAMt+C,KAAK4pC,aAAvB,aAAE,EAA6B,GACnCqwK,gBAAiB,oCAIhBW,EAAUt8J,MAAMt+C,KAAK9S,KAAI,CAAC8S,EAAMxY,KAAW,IAAD,EAC/C,MAAMqH,EAAI,UAAG+rN,EAAUt8J,MAAMt+C,KAAK4pC,aAAxB,aAAG,EAA6BpiD,GAE1C,IAAKqH,EAAM,OAAO,KAElB,OAAQmR,EAAKk6M,aACX,IAAK,YACH,OACE,SAACF,GAAD,CAEEh6M,KAAMA,EACNnR,KAAMA,EACNorN,gBAAgB,aAHXj6M,EAAKk6M,YAAc1yN,GAM9B,IAAK,UACH,OACE,SAACwyN,GAAD,CAEEh6M,KAAMA,EACNnR,KAAMA,EACNorN,gBAAgB,+CAHXj6M,EAAKk6M,YAAc1yN,GAM9B,IAAK,OACH,OACE,SAAC2yN,GAAD,CAEEn6M,KAAMA,EACNnR,KAAMA,EACNqrM,IAAKA,GAHAl6L,EAAKk6M,YAAc1yN,GAM9B,IAAK,kCACH,OACE,SAAC4yN,GAAD,CAEEp6M,KAAMA,EACNnR,KAAMA,GAFDmR,EAAKk6M,YAAc1yN,GAK9B,IAAK,2CACH,OACE,SAAC6yN,GAAD,CAEEr6M,KAAMA,EACNnR,KAAMA,GAFDmR,EAAKk6M,YAAc1yN,GAK9B,IAAK,oCACH,OACE,SAACgzN,GAAD,CAEEx6M,KAAMA,EACNnR,KAAMA,GAFDmR,EAAKk6M,YAAc1yN,GAK9B,QACE,OAAO,KArDX,IAduC,IAAD,CASxC,GA6DC,CAAC0yM,EAAK0gB,EAAUt8J,MAAMt+C,KAAMtX,IAE/B,OACE,UAAC,GAAD,CAAW2lB,SAAUA,EAAU6/H,SAAU4sE,EAAzC,WACE,SAAC,GAAD,CACE9rE,YAAY,SAAC+C,GAAA,EAAD,IACZ,gBAAc,UACdvqI,GAAG,SAHL,UAKE,UAAC,GAAD,YACE,SAAC,GAAD,CAAYq7C,QAAQ,QAApB,SAA6Bn6D,KAC7B,SAAC,GAAD,CAAYm6D,QAAQ,QAApB,gBAA6Bk5I,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAM7rM,mBAGvC,SAAC,GAAD,WACE,SAAC,GAAD,CAAOo4D,IAAK,EAAZ,SAAgB0yJ,QAbtB,EAiEF,GA9CqC,KACnC,MACEx4M,QAAQ,eAAE05L,IACR/mB,MACE,eAAE8lC,GAAmBtoE,KAE3B,OAAQupD,EAAej4M,QA6BrB,8BACGi4M,EAAehvM,KAAI,CAAC0tN,EAAWpzN,KAC9B,SAACmzN,GAAD,CAEEC,UAAWA,GADNpzN,EAAQb,OAAOi0N,EAAUjwN,YA/BpC,UAAC,GAAD,YACE,SAAC,GAAD,CAAO4pJ,SAAS,OAAhB,6CACA,UAAC,GAAD,CAAOA,SAAS,UAAhB,WACE,UAAC,GAAD,mEACwD,KACtD,SAAC,GAAD,CAAMh/I,OAAO,SAAS2lN,IAAI,aAAa9vK,KAAM6vK,EAA7C,2BAFF,QAOA,UAAC,GAAD,6FAEe,KACb,SAAC,GAAD,CACE1lN,OAAO,SACP2lN,IAAI,aACJ9vK,KAAK,8CAHP,mBAHF,WAaF,SAAC,GAAD,CAAUwrD,UAAU,OAAOn7E,MAAM,OAAjC,UACE,SAAC,GAAD,QAzBN,ECjQI0/L,GAAsC,CAC1CxoK,KAPqB,KACrB,SAAC,GAAD,WACE,SAAC,GAAD,MAMF6a,UAhC0B,KAAO,IAAD,QAChC,MAAM,OAAEhrD,EAAF,cAAU42K,GAAkBjE,KAElC,OAAI3yK,EAAOi5L,WAAWhjC,YAvBL,EAuBsC,MAGrD,iCACE,SAAC,GAAD,CACE5V,WAAS,EACThgG,QAAQ,WACR+oD,QAAS,IACPwtE,EAAc,uBAAwB52K,EAAOi5L,WAAW2f,UAE1DzvJ,GAAI,CAAEs1B,GAAI,GANZ,SAQGz+E,EAAOi5L,WAAW2f,SAAlB,UACG9jD,GAAAA,KAAAA,MApCO,UAmCV,iBACG,EAAoC9pG,UAAUspG,kBADjD,aACG,EAA2D,GAD9D,UAEGQ,GAAAA,KAAAA,MArCO,UAmCV,iBAEG,EAAoC9pG,UAAUspG,kBAFjD,aAEG,EAA2D,KAEhEt0J,EAAOi5L,WAAW2f,WAAY,SAAC,GAAD,MAdnC,EA4BAhkN,MAnDsB,KACtB,MAAM,OAAEoL,GAAW2yK,KAEnB,OACE,SAAC,GAAD,CACEshB,cAAe,CACb31I,MAAO,CACLrQ,MATS,IAUPjuC,EAAOi5L,WAAWhjC,WAA4B,UAAY,SAGhE9sG,GAAI,CAAE0rG,GAAI,EAAGz1E,GAAI,GAPnB,SASG01E,GAAAA,KAAAA,MAfY,GAeuBjB,kBAVxC,GCoBF,IAlBmBl7C,GAkBM,CACvB2+F,GACAb,GACA9d,GD4BF,GC1BEc,KAtBM/uM,KAAI,CAACmuN,EAAU7zN,KAAW,IAAD,EAC7B,MAAM8zN,EAAgBD,EAAS1oK,KACzB4oK,EAAQF,EAASjkN,MACjBokN,EAAkB,UAAGrgG,GAAM3zH,EAAQ,UAAjB,aAAG,EAAkBgmE,UAC7C,OACE,UAAC,GAAD,WACGguJ,IACC,SAAC,GAAD,WACE,SAACA,EAAD,OAGJ,SAACD,EAAD,KACA,SAACD,EAAD,MAPS9zN,EADb,IALe2zH,OC6CnB,MAAMsgG,GAAqB,KACzB,MAAM,OAAEj5M,EAAF,cAAU42K,GAAkBjE,MAC5B,IAAE+kB,GAAQrkC,MACT6lD,EAAaC,IAAkB30G,EAAAA,EAAAA,UAAS,KACzC,UAAE40G,GAAcvnB,KAEhBxD,GAAgBpqF,EAAAA,EAAAA,cACpB,KACEo1G,MtEjD4B,EAChC3hB,EACA4hB,EACA3lD,EACA1vJ,IAEA/f,GAAK8oM,GAAgBssB,EAAiBx0M,UAAUurL,KAC9CM,IAAW4oB,IACT7hB,EAAI8hB,UAAUD,EAASE,QAEhB/hB,EAAI1vL,GAAG0xM,YACXC,MAAMhmD,EAAiB1vJ,GACvB21M,YAAYN,EAAiBx0M,YAElCssL,IAAW,CAACx0L,EAAOi9M,KACjBx4E,GAAYzkI,GACLi9M,MsEiCPR,CACE3hB,EACA13L,EAAO+4L,UAAU93K,QACjBjhB,EAAOg5L,SAASl0L,QAChB9E,EAAOiE,WACPosL,KCeF,SAAwB1U,EAA6Dj9J,GAMzF,OAAOs8J,GAAQU,GAAcC,EAAaj9J,EAAW1rB,UAAUvR,QAAU,GAAG,GAC7E,CDrBOq4N,EAAK,CAAC3mM,EAAKua,KACT,MAAM7oB,EAASsO,EAAIpnB,OAAO2hC,EAAI7oB,QAG9B,OAFA+xK,EAAc,iBAAkB/xK,GAEzBA,CAAP,GACC,KExBkB6nK,EF0BlBqtC,GACCA,EAAa9iM,OAAO0iL,IACV,CAAC,kBAAmB,oBAAoBr9G,SAC9Cq9G,EAAY79I,MAAMj1C,eE7B4C,KAAAmzM,GFgCpE,KEhCoEA,GAAY,GACjFh/B,IAAQ,SAAC/nL,EAAQorI,GACtB,IAAIr5I,EAAQ,EACZiO,EAAOyrI,UACLy8C,GAAyB98C,GAAY,SAAC75I,GACpC,IAAM0N,EAASw6K,EAAUloL,EAAOQ,MAC/BkN,GAAU8nN,IAAc37E,EAAW73I,KAAKhC,IACxC0N,GAAUmsI,EAAWf,UACvB,IAEJ,MAVG,IAAuBovC,EAAiDstC,CFW3C,GAwB/B,CACEtiB,EACA9gB,EACA52K,EAAOg5L,SAASl0L,QAChB9E,EAAOiE,UACPjE,EAAO+4L,UAAU93K,WAIrBijF,EAAAA,EAAAA,YAAU,KtElDmBwzF,IAC7BjG,GAAeiG,EAAI31B,IAAIk4C,OAAOh6C,SAAS90J,MAAMmH,GAASA,EAAK5kB,asEkDzDwsN,CAAexiB,GAAKvsL,MAAM+tM,IACxBC,EAAeD,GhG1EUzyB,OAC7BiR,EAD6B,EAG7ByiB,KACI,IAFJ,KAAE9tN,EAAF,QAAQgK,EAAR,SAAiBwiK,GAEd,EACH,IAAKA,EAAU,OASf,UAPoBA,EAASxuK,OACTwtB,MACjB6V,GACCA,EAAIqxI,cAAgBo7C,EAAYp7C,aAChCrxI,EAAIyyI,cAAgBg6C,EAAYh6C,cAGzB,OACX,UAAYtH,EAASuhD,QAAQD,GAAe,OAE5C,MAAME,EAAQ,qBAAiB3iB,EAAI34B,YAAYzuJ,SACzCgqM,EAAgBr9F,KAAAA,IAAUo9F,EAAU,CAAC,GAE3CC,EAAcjuN,GAAQ,CACpBkuN,iBAAkBlkN,EAClB01L,WAAY2L,EAAIG,SAAS2iB,UACzBC,cAAe/iB,EAAIG,SAASC,cAAc,GAC1C4iB,YAAahjB,EAAIG,SAASE,YAAY,IAGxC96E,KAAAA,IAAUo9F,EAAUC,EAApB,EgGgDIK,CAAgBjjB,EAAK0hB,EAAW,CAC9Bn5C,MAAOi5C,EACP0B,UAAW,YACX77C,YAAa24B,EAAI34B,YAAYzuJ,QAC7BuqM,UAAW7vK,GAAa0sJ,EAAIojB,gBAAgBC,YAAYvF,SACxDr1C,YAAau3B,EAAIsjB,eAAe76C,YAAYvkK,WAC5CmwL,WAAYnsI,OAAO83I,EAAIG,SAAS2iB,WAChCC,cAAe/iB,EAAIG,SAASC,cAAc,GAC1C4iB,YAAahjB,EAAIG,SAASE,YAAY,GACtCh1L,MAAO09J,GACLi3B,EAAIG,SACJqhB,EACAxhB,EAAIsjB,eAAez6C,SACnBm3B,EAAIsjB,eAAe76C,aAErB3sH,KAAM,IAfR,GAFF,GAoBC,CAACkkJ,EAAK0hB,IAET,MAAM6B,GAAmBh3G,EAAAA,EAAAA,cACtBn/F,GtE/GoB,EACvB4yL,EACA/jC,IAEO+jC,EAAIwjB,MAAMxB,YAAYyB,OAAOxnD,GsE2GVs+B,CAAUyF,EAAK5yL,IACvC,CAAC4yL,IAGH,OACE,SAAC,GAAD,CACE/jC,gBAAiB3zJ,EAAOg5L,SAASl0L,QACjCmtL,UAAWgpB,EAFb,UAIE,SAAC,GAAD,CACElvB,WAAY2L,EAAIE,aAAaC,SAAS2iB,UACtCnsB,cAAeA,EAFjB,UAIE,SAAClV,GAAD,WACE,UAAC,GAAD,CAAOpkB,GAAI,EAAX,WACE,SAAC,GAAD,CAASngK,MAAM,aAAapQ,MAAO00N,KACnC,SAAC,GAAD,CACEjjD,WAAYj2J,EAAOi5L,WAAWhjC,WAC9BxsB,YAAY,WACZysB,UAAW,KACX/sG,GAAI,CAAElwC,MAAO,OAAQqtC,SAAU,QAASL,SAAU,SAJpD,SAMGm1J,aAlBb,EAoDF,GAjBqDj1N,IAEjD,SAAC,GAAD,WACE,SAAC,GAAD,WACE,SAAC4yL,GAAD,CACE/E,cAAe7tL,EAAMk1N,kBACrB1sL,SAAUxoC,EAAMwoC,SAChB2kJ,kBAAgB,EAChBS,SAAU5tL,EAAM4tL,SAJlB,UAME,SAACklC,GAAD,UG1JV,GAbqC,KACnC,MAAM,QAAEzpE,GAAYW,KASpB,OAPAjsC,EAAAA,EAAAA,YAAU,KACcuwD,GAA0B,kBAE9CA,GAA0B,gBAAiBjlB,EAC5C,GACA,CAACA,IAEG,IAAP,EC0DF,GA3DkCrpJ,IAChC,MAAM,SAAEC,EAAF,iBAAY8sK,EAAZ,QAA8BooD,GAAYn1N,GAEzC3B,EAAOw2D,IAAYwpD,EAAAA,EAAAA,UAAgB,CACxCljH,IAAK,SACLkc,KAAM,CAAE01J,sBAEJqoD,GAAch3G,EAAAA,EAAAA,QAA0B,MAiD9C,OA/CAL,EAAAA,EAAAA,YAAU,KACR,MAAM,SAAEh6F,KAAa1M,GAAS89M,IAC9BC,EAAYnlN,QAAU8T,EACtB8wC,EAAS,CACP15D,IAAK,eACLkc,KAAM,CAAEk6L,IAAKl6L,EAAKk6L,IAAKxkC,sBAGzB,IAAIlkJ,EAAMxR,EAAKk6L,IAAIh5D,UAAU,CAC3Bl4I,KAAOkxM,GACL18I,EAAS,CAAE15D,IAAK,QAASkc,KAAM,CAAEk6L,MAAKxkC,sBACxCt2J,MAAQA,GACNo+C,EAAS,CAAE15D,IAAK,QAASkc,KAAM,CAAEZ,QAAOs2J,wBAG5C,MAAO,KACLqoD,EAAYnlN,QAAQ8oJ,aACpBlwI,EAAIqtH,aAAJ,CAFF,GAIC,CAACi/E,EAASpoD,KAEbhvD,EAAAA,EAAAA,YAAU,KACR,MAAMs3G,EAAsB,KACR,UAAdh3N,EAAMlD,MACVkD,EAAMgZ,KAAKk6L,IAAIhuL,IAAI,eAAgB8xM,GACnCxgK,EAAS,CAAE15D,IAAK,eAAgBkc,KAAMhZ,EAAMgZ,OAA5C,EAEIi+M,EAAmB,KACL,iBAAdj3N,EAAMlD,MACVkD,EAAMgZ,KAAKk6L,IAAIhuL,IAAI,YAAa+xM,GAChCzgK,EAAS,CAAE15D,IAAK,QAASkc,KAAMhZ,EAAMgZ,OAArC,EASF,MANkB,UAAdhZ,EAAMlD,IACRkD,EAAMgZ,KAAKk6L,IAAIluL,GAAG,eAAgBgyM,GACX,iBAAdh3N,EAAMlD,KACfkD,EAAMgZ,KAAKk6L,IAAIluL,GAAG,YAAaiyM,GAG1B,KACa,UAAdj3N,EAAMlD,KACRkD,EAAMgZ,KAAKk6L,IAAIhuL,IAAI,eAAgB8xM,GACnB,iBAAdh3N,EAAMlD,KACRkD,EAAMgZ,KAAKk6L,IAAIhuL,IAAI,YAAa+xM,EAAhC,CAJJ,GAMC,CAACj3N,EAAMgZ,KAAMhZ,EAAMlD,OAEf,SAAC6xK,GAAWpmK,SAAZ,CAAqBvI,MAAOA,EAA5B,SAAoC4B,GAA3C,ECrEa,SAASs1N,GAAuBl5B,EAAUxlK,GACvD,IAAK14B,OAAO9B,UAAU0Q,eAAejI,KAAKu3L,EAAUxlK,GAClD,MAAM,IAAIlP,UAAU,kDAGtB,OAAO00K,CACT,CCNA,IAAIx9K,GAAK,EACM,SAAS22M,GAAsBtvN,GAC5C,MAAO,aAAe2Y,KAAO,IAAM3Y,CACrC,kCCCA,SAASglB,GAAQ7sB,GACf,OAAOA,EAAMkJ,WAAW61K,SAAS,EAAG,IACrC,CAOM,SAASq4C,GAAWpgK,GACzB,MAAMqgK,EAAOrgK,EAAKsgK,cAAcpuN,WAC1B+tD,EAAQpqC,GAAQmqC,EAAKugK,WAAa,GAClC7kB,EAAM7lL,GAAQmqC,EAAKwgK,WACnB7kB,EAAO9lL,GAAQmqC,EAAKygK,YACpB7kB,EAAS/lL,GAAQmqC,EAAK0gK,cACtB7kB,EAAShmL,GAAQmqC,EAAK2gK,cAC5B,MAAO,GAAP,OAAUN,EAAV,YAAkBpgK,EAAlB,YAA2By7I,EAA3B,YAAkCC,EAAlC,YAA0CC,EAA1C,YAAoDC,EACrD,CCFM,SAAS+kB,GAAK53N,GACnB,OAAO2pB,GAAAA,KAAQ3pB,EAChB,CCVD,MAAM63N,GAAQ,CACZn3L,MAAO,MACPtoB,MAAO,QACPlB,IAAK,MACLV,KAAM,QAiBD,SAASshN,GAAa93N,GAC3B,OAAIwG,MAAM4G,QAAQpN,GACTA,EAAMkG,IAAI4xN,IACRF,GAAK53N,GACPA,EAAMkJ,WACJw3K,GAAM1gL,IAAUwgL,GAASxgL,GAC3BkmM,GAASrlB,GAAS7gL,IApB7B,SAAqBA,GACnB,GAAIA,GAASu2H,GAASv2H,IAAUA,EAAMqT,cAAgBvT,OAAQ,CAC5D,MAAM4N,EAAS,CAAC,EAEhB,IAAK,MAAMzI,KAAKnF,OAAOihB,KAAK/gB,GAC1B0N,EAAOzI,GAAK6yN,GAAa93N,EAAMiF,IAGjC,OAAOyI,CACR,CAED,OAAO1N,CACR,CAWQ+3N,CAAY/3N,EACpB,CAED,SAASg4N,GAAiB/4K,GACxB,OAAO5hC,IACL,GAAI4hC,GAAa,EACf,OAAO5hC,EAGT,MAAM+P,EAAI,GAAH,OAAM/P,GACb,OAAO+P,EAAEnwB,OAASgiD,EAAY5hC,EAAvB,UAA8B+P,EAAEpX,UAAU,EAAGipC,GAA7C,OAAP,CAEH,CAED,SAAStwC,GAAMuI,EAAKxV,EAAM8Z,GAAsB,IAAdy8M,EAAc,wDAAH,EAC3C,GAAsB,IAAlBz8M,EAAOve,QAAgBq5H,GAAW96G,EAAO,IAAK,CAChD,MAAM08M,EAAW18M,EAAO,KACxB,OAAO7M,GAAMuI,EAAKxV,EAAM8E,MAAM4G,QAAQ8qN,GAAYA,EAAW,CAACA,GAAWD,EAC1E,CAEDhhN,QAAQ4gN,GAAM3gN,IAAMkgN,GAAW,IAAI33L,MAAS/9B,KAAS8Z,EAAOtV,IAAI4xN,IAAc5xN,IAAI8xN,GAAiBC,IACpG,CAED,SAAS5yF,KACR,CAED,SAAS8yF,GAAUh5N,EAAGuC,GACpB,QAASvC,IAAY,MAANA,GAAauC,IAASvC,GAAKA,EAAEmhJ,SAAS,MAAQ5+I,EAAKy9I,WAAWhgJ,EAAE0B,MAAM,GAAI,IAC1F,CAED,SAASu3N,GAAWj5N,EAAGuC,GACrB,QAASvC,GAAKA,EAAEggJ,WAAW,OAASz9I,IAASvC,EAAE0B,MAAM,IAAM1B,EAAEmhJ,SAAS,MAAQ5+I,EAAKy9I,WAAWhgJ,EAAE0B,MAAM,GAAI,IAC3G,CAED,SAASw3N,GAAalqI,EAAKzsF,GACzB,IAAI42N,GAAO,EAEX,IAAK,MAAMn5N,KAAKgvF,EACVgqI,GAAUh5N,EAAGuC,GACf42N,GAAO,EACEF,GAAWj5N,EAAGuC,KACvB42N,GAAO,GAIX,OAAOA,CACR,CAuBM,SAASxmN,GAAOymN,GACrB,MAAM72N,EAAO,UAAG62N,EAAMhxM,cAAT,KAA0Bw3J,SAAS,KACzCy5C,EAASP,GAvBlB,SAAkBv2N,GAChB,MAAMysF,GAAOoyF,GAAanhL,QAAU,CAAC,GAAG+uF,KAAO,CAAC,EAC1C8pI,EAAUvkN,SAASy6E,EAAIsqI,WAAa,KAAM,IAChD,MAAO,CAACJ,IAAclqI,EAAIxsD,OAAS,IAAIp1B,cAActF,MAAM,KAAMvF,GAAOq0F,MAAMkiI,IAAY,EAAIA,EAC/F,CAmB4BS,CAASH,EAAMhsN,eAC1C,MAAO,CACLm0B,MAAO83L,EAAU,sCAAIh9M,EAAJ,yBAAIA,EAAJ,uBAAe7M,GAAM,QAASjN,EAAM8Z,EAAQy8M,EAA5C,EAAuD5yF,GACxEjtH,MAAO,sCAAIoD,EAAJ,yBAAIA,EAAJ,uBAAe7M,GAAM,QAASjN,EAAM8Z,EAApC,EACPtE,IAAK,sCAAIsE,EAAJ,yBAAIA,EAAJ,uBAAe7M,GAAM,MAAOjN,EAAM8Z,EAAlC,EACL6pH,KAJK,GAKL7uH,KAAM,sCAAIgF,EAAJ,yBAAIA,EAAJ,uBAAe7M,GAAM,OAAQjN,EAAM8Z,EAAnC,EAET,CCtGM,SAASm9M,GAAY34N,GAC1B,YAAiBtC,IAAVsC,CACR,CCHM,SAAS44N,GAAO54N,GACrB,OAAiB,OAAVA,CACR,CCfM,MAAM64N,GAAY54C,GAAQ44C,UCa1B,SAASzrC,GAASptL,GACvB,MAAwB,kBAAVA,GAAsBA,aAAiBL,MACtD,CCFM,SAASm5N,GAAS94N,GACvB,MAAwB,kBAAVA,CACf,CChBD,MAAM+4N,IAAW,MAEjB,SAAShrH,GAAOirH,EAAMnxN,EAAM7H,GAC1BF,OAAOqR,eAAe6nN,EAAMnxN,EAAM,CAChCilC,cAAc,EACdrwB,YAAY,EACZzc,SAEH,CAiBc,MAAMi5N,WAAiBz8M,MACpCnJ,cAAgD,IAApCoF,EAAoC,uDAA1B,GAAI4D,EAAsB,uDAAf08M,GAAS//M,EAAM,uCAO9C,GANA4B,QACAmzF,GAAOnxG,KAAM,UAAW+C,OAAO8Y,IAC/Bs1F,GAAOnxG,KAAM,OAAQA,KAAKyW,YAAYxL,MACtCkmG,GAAOnxG,KAAM,OAAQoc,GACrB+0F,GAAOnxG,KAAM,OAAQyf,GAEjBi6G,GAAW95G,MAAM08M,mBACnB18M,MAAM08M,kBAAkBt8N,KAAMA,KAAKyW,iBAC9B,CACL,MAAM,MACJ+f,GACE,IAAI5W,MAAM/D,GACd2a,GAAS26E,GAAOnxG,KAAM,QAASw2B,EAChC,CACF,EC5BH,SAAS65L,GAAW70M,GAClB,GAAIA,EAAO,CACT,MAAM,KACJiE,EADI,KAEJrD,EAFI,QAGJP,GACEL,EACJ,MAAM,IAAI6gN,GAAJ,UAAgB58M,EAAhB,aAAyB5D,GAAzB,OAlBV,SAAyBO,GACvB,GAAI2/M,GAAY3/M,GACd,MAAO,GAGT,MAAM+pC,EAAY,KAAH,OAAQqqI,GAASp0K,GAAQA,EAAK/Y,QAAQ,YAAa,IAAIA,QAAQ,OAAQ,KAAKA,QAAQ,OAAQ,KAAKA,QAAQ,MAAO,MAAMA,QAAQ,MAAO,IAAMsD,GAAUyV,IAGpK,OAAO+pC,EAAU9lD,QAAU,IAAM8lD,EAA1B,UAAyCA,EAAU/sC,UAAU,EAAG,KAAhE,SACR,CAS4CmjN,CAAgBngN,IAASqD,EAAMrD,EACzE,CACF,IDGoBigN,GAAAA,QAkBJ,CACbG,QAAS,MACTC,iBAAkB,MAClBC,kBAAmB,MAEnBP,gCCtBG,MAAMQ,GAAS,4CACd,GADc,CAGpBC,eAAez0K,GACb,IAAKA,GAAiC,QAArBA,EAAS2pK,QACxB,MAAM,IAAIlyM,MAAM,2CAGlB,MAAMo7H,GAAkB+gF,GAAY5zK,EAASryC,UAAYimN,GAAY5zK,EAAS1iC,QAE9E,IAAKy2M,GAAS/zK,EAASvkC,OAASo3H,IAAmBkhF,GAAS/zK,EAASryC,OAAOspI,gBAAkBoxC,GAASroI,EAASryC,OAAOspI,eACrH,MAAM,IAAIx/H,MAAM,sCAKlB,GAFAywM,GAAWloK,EAAS3sC,YAEI1a,IAApBqnD,EAASr3C,SAAyBkqI,EACpC,MAAM,IAAIp7H,MAAM,uCAGlB,OAAIo7H,GACFq1E,GAAWloK,EAASryC,OAAO0F,OACpB2sC,EAASryC,OAAOhF,QAGlBq3C,EAASr3C,MACjB,CAED+rN,WAAWp3M,EAAQ3P,GACjB,MAAO8N,EAAIxH,GAAQpc,KAAK88N,aAAar3M,EAAQ3P,GAC7C,MAAO,CAAC8N,EAAIjd,GAAUyV,GACvB,CAED0gN,aAAar3M,EAAQ3P,GAAQ,MAC3B,MAAM8N,EAAK,GAAE5jB,KAAL,SAAKA,KAAL,UACR,MAAO,CAAC4jB,EAAI,CACVA,KACAkuM,QAAS,MACTrsM,SACA3P,UAEH,ECpEH,MAEA,GAFiB,wBAEjB,GADe,sBCMf,MAAMinN,GACJtmN,YAAYvV,GACVlB,KAAKkB,IAAMA,EACXlB,KAAKoF,KAAOpF,KAAKmF,KAAOnF,IACzB,EAKH,IAAIgc,GAAqBghN,GAA2B,QAEhDC,GAAqBD,GAA2B,QAEhDE,GAAuBF,GAA2B,UAElDG,GAAqBH,GAA2B,QAEhDI,GAAqBJ,GAA2B,QAEhDK,GAAuBL,GAA2B,UAE/C,MAAMM,GACX7mN,cAAyC,IAA7B8mN,EAA6B,uDAxBlB,IAyBrBr6N,OAAOqR,eAAevU,KAAMq9N,GAAS,CACnCj6N,MAAOo6N,KAETx9N,KAAKu9N,cAAW,EAChBr6N,OAAOqR,eAAevU,KAAMgc,GAAO,CACjC0oB,UAAU,EACVthC,MAAO,IAAI6hG,MAEb/hG,OAAOqR,eAAevU,KAAMi9N,GAAO,CACjCv4L,UAAU,EACVthC,MAAO,IAAI6hG,MAEb/hG,OAAOqR,eAAevU,KAAMk9N,GAAS,CACnCx4L,UAAU,EACVthC,MAAO,IAETF,OAAOqR,eAAevU,KAAMm9N,GAAO,CACjCz4L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAMo9N,GAAO,CACjC14L,UAAU,EACVthC,WAAO,IAETpD,KAAKu9N,SAAWA,EAChBE,GAA4Bz9N,KAAMm9N,IAAOA,IAASM,GAA4Bz9N,KAAMo9N,IAAOA,IAAS,IAAIL,GAAQ,UACjH,CAEG18N,aACF,OAAOo9N,GAA4Bz9N,KAAMk9N,IAASA,GACnD,CAEGQ,iBACF,OAAOD,GAA4Bz9N,KAAMgc,IAAOA,IAAO7T,IACxD,CAEGw1N,iBACF,OAAOF,GAA4Bz9N,KAAMi9N,IAAOA,IAAO90N,IACxD,CAEDo5D,UACE,MAAMp9C,EAAOnkB,KAAKmkB,OACZo9C,EAAU,IAAI33D,MAAMua,EAAK9jB,QAE/B,IAAK,IAAI4B,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAAK,CACpC,MAAMf,EAAMijB,EAAKliB,GACjBs/D,EAAQt/D,GAAK,CAACf,EAAKu8N,GAA4Bz9N,KAAMgc,IAAOA,IAAO/S,IAAI/H,GACxE,CAED,OAAOqgE,CACR,CAEDp9C,OACE,MAAMA,EAAO,GAEb,GAAIs5M,GAA4Bz9N,KAAMk9N,IAASA,IAAU,CACvD,IAAIx+C,EAAO++C,GAA4Bz9N,KAAMm9N,IAAOA,IAEpD,KAAOz+C,IAAS++C,GAA4Bz9N,KAAMo9N,IAAOA,KACvDj5M,EAAKvjB,KAAK89K,EAAKx9K,KACfw9K,EAAOA,EAAKt5K,KAGd+e,EAAKvjB,KAAK89K,EAAKx9K,IAChB,CAED,OAAOijB,CACR,CAEDlb,IAAI/H,GACF,MAAMkb,EAAOqhN,GAA4Bz9N,KAAMgc,IAAOA,IAAO/S,IAAI/H,GAEjE,OAAIkb,GACFqhN,GAA4Bz9N,KAAMq9N,IAASA,IAASn8N,GAE7Ckb,GAGF,IACR,CAEDlT,IAAIhI,EAAKkC,GACP,GAAIq6N,GAA4Bz9N,KAAMgc,IAAOA,IAAOma,IAAIj1B,GACtDu8N,GAA4Bz9N,KAAMq9N,IAASA,IAASn8N,OAC/C,CACL,MAAMyD,EAAO,IAAIo4N,GAAQ77N,GAEzBu8N,GAA4Bz9N,KAAMi9N,IAAOA,IAAO/zN,IAAIvE,EAAKzD,IAAKyD,GAE1C,IAAhB3E,KAAKK,OACPo9N,GAA4Bz9N,KAAMm9N,IAAOA,IAASM,GAA4Bz9N,KAAMo9N,IAAOA,IAASz4N,GAEpG84N,GAA4Bz9N,KAAMm9N,IAAOA,IAAOh4N,KAAOR,EACvDA,EAAKS,KAAOq4N,GAA4Bz9N,KAAMm9N,IAAOA,IACrDM,GAA4Bz9N,KAAMm9N,IAAOA,IAASx4N,GAGhD84N,GAA4Bz9N,KAAMk9N,IAASA,MAAal9N,KAAKu9N,UAC/DE,GAA4Bz9N,KAAMgc,IAAOA,IAAOspF,OAAOm4H,GAA4Bz9N,KAAMo9N,IAAOA,IAAOl8N,KAEvGu8N,GAA4Bz9N,KAAMi9N,IAAOA,IAAO33H,OAAOm4H,GAA4Bz9N,KAAMo9N,IAAOA,IAAOl8N,KAEvGu8N,GAA4Bz9N,KAAMo9N,IAAOA,IAASK,GAA4Bz9N,KAAMo9N,IAAOA,IAAOj4N,KAClGs4N,GAA4Bz9N,KAAMo9N,IAAOA,IAAOh4N,KAAOq4N,GAA4Bz9N,KAAMm9N,IAAOA,KAEhGM,GAA4Bz9N,KAAMk9N,IAASA,KAAY,CAE1D,CAEDO,GAA4Bz9N,KAAMgc,IAAOA,IAAO9S,IAAIhI,EAAKkC,EAC1D,EAIH,SAASo6N,GAASt8N,GAChB,MAAM6K,EAAM0xN,GAA4Bz9N,KAAMi9N,IAAOA,IAAOh0N,IAAI/H,GAE5D6K,GAAOA,IAAQ0xN,GAA4Bz9N,KAAMm9N,IAAOA,MAC1DpxN,EAAI5G,KAAKC,KAAO2G,EAAI3G,KACpB2G,EAAI3G,KAAKD,KAAO4G,EAAI5G,KACpB4G,EAAI3G,KAAOq4N,GAA4Bz9N,KAAMm9N,IAAOA,IACpDM,GAA4Bz9N,KAAMm9N,IAAOA,IAAOh4N,KAAO4G,EACvD0xN,GAA4Bz9N,KAAMm9N,IAAOA,IAASpxN,EAErD,CCzJD,MAAM6xN,GAAQ,CACZ,IAAM,iBACN,KAAM,aACN,KAAM,iBACN,KAAM,mBACN,KAAM,eACN,KAAM,qBACN,KAAM,mBACN,KAAM,6BACN,KAAM,mBACN,KAAM,kBACN,KAAM,oBACN,KAAM,iBACN,KAAM,kBACN,KAAM,kBACN,KAAM,cACN,KAAM,iBCLR,MAAMC,GAAU,CACdC,oBAAqB,sBACrBC,8BAA+B,gCAC/BC,gCAAiC,mCAM7Bj3L,GAAI7xB,GAAO,UAEjB,SAAS+oN,GAAYC,EAAQzhI,GAC3Bv5F,OAAOihB,KAAK+5M,GAAQ38N,SAAQL,IACtBu7F,GACFA,EAAGyhI,EAAOh9N,WAGLg9N,EAAOh9N,EAAd,GAEH,CAuBD,IAAIi9N,GAA0BnB,GAA2B,aAErDoB,GAAsBpB,GAA2B,SAEjDqB,GAA0BrB,GAA2B,aAErDsB,GAAwBtB,GAA2B,WAEnDuB,GAA6BvB,GAA2B,gBAExDwB,GAAyBxB,GAA2B,YAEpDyB,GAA+BzB,GAA2B,kBAE1D0B,GAAsB1B,GAA2B,SAEjD2B,GAA6B3B,GAA2B,gBAExD4B,GAA8B5B,GAA2B,iBAEzD6B,GAA8B7B,GAA2B,iBAEzD8B,GAA4B9B,GAA2B,eAEvD+B,GAA8B/B,GAA2B,iBAEzDgC,GAA0BhC,GAA2B,aAErDiC,GAA0BjC,GAA2B,aAErDkC,GAAwBlC,GAA2B,WAEnDmC,GAAqBnC,GAA2B,QAEhDoC,GAAqBpC,GAA2B,QAEhDqC,GAA8BrC,GAA2B,iBAEzDsC,GAA8BtC,GAA2B,iBAEzDuC,GAAgCvC,GAA2B,mBAE3DwC,GAAsCxC,GAA2B,yBAEjEyC,GAAyCzC,GAA2B,4BAEpE0C,GAA6B1C,GAA2B,gBAExD2C,GAA4B3C,GAA2B,eAEvD4C,GAAgC5C,GAA2B,mBAExD,MAAM6C,GAMXppN,cAA4F,eAAhFqpN,EAAgF,uDAArE11B,GAAiB21B,EAAoD,uDA/F1E,KA+FmDr4K,EAAuB,uDAAb,CAAC,EAAG6B,EAAS,uCAC1FrmD,OAAOqR,eAAevU,KAAMm/N,GAAO,CACjC/7N,MAAO48N,KAET98N,OAAOqR,eAAevU,KAAMm+N,GAAY,CACtCz5L,UAAU,EACVthC,MAAO,IAAIk6N,KAEbp6N,OAAOqR,eAAevU,KAAMo+N,GAAQ,CAClC15L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAMq+N,GAAY,CACtC35L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAMs+N,GAAU,CACpC55L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAMu+N,GAAe,CACzC75L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAMw+N,GAAW,CACrC95L,UAAU,EACVthC,MAAO,CAAC,IAEVF,OAAOqR,eAAevU,KAAMy+N,GAAiB,CAC3C/5L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAM0+N,GAAQ,CAClCh6L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAM2+N,GAAe,CACzCj6L,UAAU,EACVthC,MAAO,CAAC,IAEVF,OAAOqR,eAAevU,KAAM4+N,GAAgB,CAC1Cl6L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAM6+N,GAAgB,CAC1Cn6L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAM8+N,GAAc,CACxCp6L,UAAU,EACVthC,OAAO,IAETF,OAAOqR,eAAevU,KAAM++N,GAAgB,CAC1Cr6L,UAAU,EACVthC,MAAO,CAAC,IAEVF,OAAOqR,eAAevU,KAAMg/N,GAAY,CACtCt6L,UAAU,EACVthC,MAAO,OAETF,OAAOqR,eAAevU,KAAMi/N,GAAY,CACtCv6L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAMk/N,GAAU,CACpCx6L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAMo/N,GAAO,CACjC16L,UAAU,EACVthC,MAAO,SAAC0B,GAAkB,2BAAToM,EAAS,iCAATA,EAAS,kBACxBusN,GAA4B,EAAMc,IAAeA,IAAe74I,KAAK5gF,KAASoM,EAC/E,IAEHhO,OAAOqR,eAAevU,KAAMq/N,GAAgB,CAC1C36L,UAAU,EACVthC,MAAOs3D,IACL,MAAMl/C,EAAQ,IAAIoE,MAAJ,4BAA+B69M,GAA4Bz9N,KAAMq+N,IAAYA,IAAYZ,GAA4Bz9N,KAAM6+N,IAAgBA,KAA3I,aAAgKnkK,EAAMj7C,KAAtK,cAAgLi7C,EAAM53C,UD7J3KrD,EC6JsMi7C,EAAMj7C,OD5J/N,GAAKA,GAAQ,IAChB,WAGFm+M,GAAMn+M,IAjBf,SAAqBA,GACnB,OAAIA,GAAQ,KACH,2BACEA,GAAQ,KACV,6BACEA,GAAQ,KACV,iCACEA,GAAQ,KACV,0BADF,CAGR,CAOuBwgN,CAAYxgN,IAAS,eALtC,IAA0BA,EC+JrBg+M,GAA4Bz9N,KAAM4+N,IAAgBA,IAAkB,GACtE73L,GAAEvrB,MAAMA,EAAMK,SAGhB4hN,GAA4Bz9N,KAAM8+N,IAAcA,KAAgB,EAE5DrB,GAA4Bz9N,KAAMi/N,IAAYA,MAChDxB,GAA4Bz9N,KAAMi/N,IAAYA,IAAYiB,QAAU,KACpEzC,GAA4Bz9N,KAAMi/N,IAAYA,IAAYp9F,QAAU,KACpE47F,GAA4Bz9N,KAAMi/N,IAAYA,IAAYnqG,UAAY,KACtE2oG,GAA4Bz9N,KAAMi/N,IAAYA,IAAYkB,OAAS,KACnE1C,GAA4Bz9N,KAAMi/N,IAAYA,IAAc,MAG1DxB,GAA4Bz9N,KAAMg/N,IAAYA,MAChDpoE,cAAc6mE,GAA4Bz9N,KAAMg/N,IAAYA,KAC5DvB,GAA4Bz9N,KAAMg/N,IAAYA,IAAc,MAG9DvB,GAA4Bz9N,KAAMo/N,IAAOA,IAAO,gBAGhDnB,GAAYR,GAA4Bz9N,KAAMw+N,IAAWA,KAAYpyN,IACnE,IACEA,EAAE3F,SAAS+U,OAAO1a,EAInB,CAHC,MAAOg1B,GAEPiR,GAAEvrB,MAAMsa,EACT,KAEHmoM,GAAYR,GAA4Bz9N,KAAM2+N,IAAeA,KAEzDlB,GAA4Bz9N,KAAM4+N,IAAgBA,IAAkB,GACtEh2K,YAAW,KACT5oD,KAAKogO,mBAAmBx4M,OAAM,QAA9B,GAEC61M,GAA4Bz9N,KAAM4+N,IAAgBA,IACtD,IAGL17N,OAAOqR,eAAevU,KAAMs/N,GAAgB,CAC1C56L,UAAU,EACVthC,MAAOoY,IACLurB,GAAEjD,OAAM,IAAM,CAAC,eAAgBtoB,KAE/BiiN,GAA4Bz9N,KAAMo/N,IAAOA,IAAO,QAAS5jN,EAAzD,IAGJtY,OAAOqR,eAAevU,KAAMu/N,GAAkB,CAC5C76L,UAAU,EACVthC,MAAOyY,IACLkrB,GAAEjD,OAAM,IAAM,CAAC,WAAYjoB,EAAQO,QACnCqhN,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAMuuM,WAAaxkN,EAAQO,KAAK/b,OAClF,MAAM8nD,EAAW5wC,KAAKtQ,MAAM4U,EAAQO,MACpC,OAAO2/M,GAAY5zK,EAAS1iC,QAAUg4M,GAA4Bz9N,KAAMw/N,IAAwBA,IAAwBr3K,GAAYs1K,GAA4Bz9N,KAAMy/N,IAA2BA,IAA2Bt3K,EAA5N,IAGJjlD,OAAOqR,eAAevU,KAAMw/N,GAAwB,CAClD96L,UAAU,EACVthC,MAAO+kD,IACL,MAAM8/E,EAAUw1F,GAA4Bz9N,KAAMw+N,IAAWA,IAAWr2K,EAASvkC,IAEjF,GAAKqkH,EAAL,CAKA,IACE,MAAM,OACJxiH,EADI,OAEJ3P,EAFI,aAGJspI,GACEnX,EAEEn3H,EAAS2sN,GAA4Bz9N,KAAMo+N,IAAQA,IAAQxB,eAAez0K,GAMhF,GAFA8/E,EAAQxhI,SAAS,KAAMqK,GAEnBsuI,EAAc,CAChB,MAAMkhF,EAAQ,GAAH,OAAMlhF,EAAat6I,KAAnB,aAA4BgM,GACvC2sN,GAA4Bz9N,KAAM++N,IAAgBA,IAAgBuB,GAAStrD,GAAa,CAAC,EAAG51B,EAAc,CACxG35H,SACA3P,WAGE2nN,GAA4Bz9N,KAAM2+N,IAAeA,IAAe2B,IAClE7C,GAA4Bz9N,KAAMy/N,IAA2BA,IAA2BhC,GAA4Bz9N,KAAM2+N,IAAeA,IAAe2B,GAE3J,CAIF,CAHC,MAAO9kN,GACPiiN,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM1W,SACxD6sH,EAAQxhI,SAAS+U,OAAO1a,EACzB,QAEM28N,GAA4Bz9N,KAAMw+N,IAAWA,IAAWr2K,EAASvkC,GA/BvE,MAFCmjB,GAAEjD,OAAM,IAAM,iCAAN,OAAuCqkB,EAASvkC,KAiC1D,IAGJ1gB,OAAOqR,eAAevU,KAAMy/N,GAA2B,CACrD/6L,UAAU,EACVthC,MAAO+kD,IACL,MAAM1iC,EAASo4M,GAAQ11K,EAAS1iC,SAAW0iC,EAAS1iC,QAAU,UACxD66M,EAAQ,GAAH,OAAM76M,EAAN,aAAiB0iC,EAASryC,OAAOspI,cAEtCnX,EAAUw1F,GAA4Bz9N,KAAM++N,IAAgBA,IAAgBuB,GAElF,IAAKr4F,EAIH,OAFAw1F,GAA4Bz9N,KAAM2+N,IAAeA,IAAe2B,GAASn4K,OACzEphB,GAAEjD,OAAM,IAAM,2CAAN,OAAiDw8L,YAKpD7C,GAA4Bz9N,KAAM2+N,IAAeA,IAAe2B,GAEvE,IACE,MAAMxvN,EAAS2sN,GAA4Bz9N,KAAMo+N,IAAQA,IAAQxB,eAAez0K,GAEhF8/E,EAAQxhI,SAAS,KAAMqK,EAIxB,CAHC,MAAO0K,GACPiiN,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM1W,SACxD6sH,EAAQxhI,SAAS+U,OAAO1a,EACzB,KAGLoC,OAAOqR,eAAevU,KAAM0/N,GAAe,CACzCh7L,UAAU,EACVthC,MAAO,KACL,GAAkE,OAA9Dq6N,GAA4Bz9N,KAAMi/N,IAAYA,IAChD,MAAM,IAAIr/M,MAAM,sCAUlB,OAPAmnB,GAAEjD,OAAM,IAAM,CAAC,eAAgB25L,GAA4Bz9N,KAAMq+N,IAAYA,IAAYZ,GAA4Bz9N,KAAM6+N,IAAgBA,QAC3IpB,GAA4Bz9N,KAAM8+N,IAAcA,KAAgB,EAEhErB,GAA4Bz9N,KAAMo/N,IAAOA,IAAO,aAEhD3B,GAA4Bz9N,KAAM2/N,IAAcA,OAEzC,CAAP,IAGJz8N,OAAOqR,eAAevU,KAAM2/N,GAAc,CACxCj7L,UAAU,EACVthC,MAAO,KACL,MAAMm9N,EAAgB9C,GAA4Bz9N,KAAM++N,IAAgBA,IAExEtB,GAA4Bz9N,KAAM++N,IAAgBA,IAAkB,CAAC,EACrEn1M,QAAQC,IAAI3mB,OAAOihB,KAAKo8M,GAAej3N,KAAI+7L,UACzC,MAAM,SACJ5+L,EADI,OAEJgf,EAFI,OAGJ3P,EAHI,KAIJhR,GACEy7N,EAAc38M,GAIlB,IAAI9e,EAAKy9I,WAAW,WAIpB,UACQviJ,KAAKs9I,UAAUx4I,EAAM2gB,EAAQ3P,EAAQrP,EAG5C,CAFC,MAAO+U,GACPurB,GAAEvrB,MAAMA,EACT,MACCoM,MAAMmf,GAAEvrB,MAnBZ,IAsBJtY,OAAOqR,eAAevU,KAAM4/N,GAAkB,CAC5Cl7L,UAAU,EACVthC,MAAO,KACL,MAAMw/B,EAAMC,KAAKD,MACX49L,EAAMt9N,OAAOihB,KAAKs5M,GAA4Bz9N,KAAMw+N,IAAWA,KAErE,IAAK,IAAIv8N,EAAI,EAAGA,EAAIu+N,EAAIngO,OAAQ4B,IAAK,CACnC,MAAMgmI,EAAUw1F,GAA4Bz9N,KAAMw+N,IAAWA,IAAWgC,EAAIv+N,IAE5E,GAAI2gC,EAAMqlG,EAAQj4G,MAAQytM,GAA4Bz9N,KAAMk/N,IAAUA,IAAW,CAC/E,IACEj3F,EAAQxhI,SAAS,IAAImZ,MAAJ,oDAAuD69M,GAA4Bz9N,KAAMk/N,IAAUA,IAAY,IAA/G,WAAyHp+N,EAE3I,CADC,MACD,CAED28N,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAMy3B,iBACjDk0K,GAA4Bz9N,KAAMw+N,IAAWA,IAAWgC,EAAIv+N,GACpE,CACF,KAGL,MAAMw+N,EAAY72N,MAAM4G,QAAQsvN,GAAYA,EAAW,CAACA,GAExD,GAAyB,IAArBW,EAAUpgO,OACZ,MAAM,IAAIuf,MAAM,6CAGlB6gN,EAAUl/N,SAAQu+N,IAChB,IAAK,iBAAiB5tN,KAAK4tN,GACzB,MAAM,IAAIlgN,MAAJ,wDAA2DkgN,EAA3D,KACP,IAEHrC,GAA4Bz9N,KAAMu+N,IAAeA,IAAiB,IAAIn5I,GACtEq4I,GAA4Bz9N,KAAM4+N,IAAgBA,IAAkBmB,GAAiB,EACrFtC,GAA4Bz9N,KAAMo+N,IAAQA,IAAU,IAAIzB,GACxDc,GAA4Bz9N,KAAM6+N,IAAgBA,KAAmB,EACrEpB,GAA4Bz9N,KAAMq+N,IAAYA,IAAcoC,EAC5DhD,GAA4Bz9N,KAAMs+N,IAAUA,IAAY52K,EACxD+1K,GAA4Bz9N,KAAMi/N,IAAYA,IAAc,KAC5DxB,GAA4Bz9N,KAAM0+N,IAAQA,IAAU,CAClDzvK,OAAQ,CACNyxK,SAAU,EACVH,cAAe,GAEjBzuM,MAAO,CACLuuM,UAAW,EACXM,UAAW,EACX5vN,OAAQ,EACRqK,OAAQ,EACRslN,SAAU,EACVH,cAAe,EACfh3K,QAAS,IAGbk0K,GAA4Bz9N,KAAMk/N,IAAUA,IAAY31K,GA/YjC,IAiZnBw2K,EAAgB,GAClB//N,KAAKogO,mBAAmBx4M,OAAM,SAIhC61M,GAA4Bz9N,KAAMy+N,IAAiBA,IAAmB,IAAI70M,SAAQE,IAChF2zM,GAA4Bz9N,KAAMu+N,IAAeA,IAAe9yK,KAAK,aAAa,KAChF3hC,EAAQ9pB,KAAR,GADF,GAIH,CAMG4gO,uBACF,OAAO,CACR,CAOGC,kBACF,OAAOpD,GAA4Bz9N,KAAM8+N,IAAcA,GACxD,CAMG31B,cACF,OAAOs0B,GAA4Bz9N,KAAMy+N,IAAiBA,GAC3D,CAMD9zL,QACE,OAAO,IAAIk1L,GAAWpC,GAA4Bz9N,KAAMq+N,IAAYA,IACrE,CASY,gBACX,IACEZ,GAA4Bz9N,KAAM6+N,IAAgBA,KAAmBpB,GAA4Bz9N,KAAM6+N,IAAgBA,IAAkB,GAAKpB,GAA4Bz9N,KAAMq+N,IAAYA,IAAYh+N,OAExMo9N,GAA4Bz9N,KAAMi/N,IAAYA,IAA2C,qBAAtB57C,GAAQ44C,YC3cpD6E,ED2c8Fz9C,GAAQ44C,WC3c9F8E,ED2cyG9E,MCxc1I6E,IAAWC,GAASD,EAAOE,cAAcD,KDwc8G,IAAI9E,GAAUwB,GAA4Bz9N,KAAMq+N,IAAYA,IAAYZ,GAA4Bz9N,KAAM6+N,IAAgBA,MAE7Q,IAAI5C,GAAUwB,GAA4Bz9N,KAAMq+N,IAAYA,IAAYZ,GAA4Bz9N,KAAM6+N,IAAgBA,UAAkB/9N,OAAWA,EAAW28N,GAA4Bz9N,KAAMs+N,IAAUA,SAAWx9N,EAAW,CAEpOmgO,0BAA0B,EAE1BC,uBAAwB,QAExBC,qBAAsB,SAEtBC,uBAAwB,WAGtB3D,GAA4Bz9N,KAAMi/N,IAAYA,MAChDxB,GAA4Bz9N,KAAMi/N,IAAYA,IAAYiB,QAAUzC,GAA4Bz9N,KAAMq/N,IAAgBA,IACtH5B,GAA4Bz9N,KAAMi/N,IAAYA,IAAYp9F,QAAU47F,GAA4Bz9N,KAAMs/N,IAAgBA,IACtH7B,GAA4Bz9N,KAAMi/N,IAAYA,IAAYnqG,UAAY2oG,GAA4Bz9N,KAAMu/N,IAAkBA,IAC1H9B,GAA4Bz9N,KAAMi/N,IAAYA,IAAYkB,OAAS1C,GAA4Bz9N,KAAM0/N,IAAeA,KAItHjC,GAA4Bz9N,KAAMg/N,IAAYA,IAAcroE,aAAY,IAAM8mE,GAA4Bz9N,KAAM4/N,IAAkBA,OA7d/G,IAoepB,CANC,MAAOpkN,GAKP,MAJAurB,GAAEvrB,MAAMA,GAERiiN,GAA4Bz9N,KAAMo/N,IAAOA,IAAO,QAAS5jN,GAEnDA,CACP,CCveE,IAAsBslN,EAAQC,CDwelC,CAMqB,yBACpB,GAAItD,GAA4Bz9N,KAAM4+N,IAAgBA,IAAkB,EACtE,UACQ5+N,KAAK6mD,SAMZ,CALC,MAAOrrC,GACPotC,YAAW,KACT5oD,KAAKogO,mBAAmBx4M,OAAM,QAA9B,GAEC61M,GAA4Bz9N,KAAM4+N,IAAgBA,IACtD,CAEJ,CAOe,mBAEdnB,GAA4Bz9N,KAAM4+N,IAAgBA,IAAkB,EAEpE,IACMnB,GAA4Bz9N,KAAMi/N,IAAYA,KAEhDxB,GAA4Bz9N,KAAMi/N,IAAYA,IAAYhhG,MAAM,IAQnE,CANC,MAAOziH,GAKP,MAJAurB,GAAEvrB,MAAMA,GAERiiN,GAA4Bz9N,KAAMo/N,IAAOA,IAAO,QAAS5jN,GAEnDA,CACP,CACF,CAMG6lN,YACF,MAAO,CACLpyK,OAAQ,CACNyxK,SAAUx9N,OAAOihB,KAAKs5M,GAA4Bz9N,KAAMw+N,IAAWA,KAAYn+N,OAC/EkgO,cAAer9N,OAAOihB,KAAKs5M,GAA4Bz9N,KAAM++N,IAAgBA,KAAiB1+N,QAEhGyxB,MAAO2rM,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAE5D,CASD1J,GAAGtjB,EAAM8oB,GAGP,OAFA6vM,GAA4Bz9N,KAAMu+N,IAAeA,IAAen2M,GAAGtjB,EAAM8oB,GAElE,KACL6vM,GAA4Bz9N,KAAMu+N,IAAeA,IAAel2M,eAAevjB,EAAM8oB,EAArF,CAEH,CASDqyL,KAAKx6L,EAAQ3P,EAAQwrN,EAAaliF,GAChCq+E,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM4uM,WAExD,MAAO98M,EAAI+jC,GAAQ81K,GAA4Bz9N,KAAMo+N,IAAQA,IAAQvB,WAAWp3M,EAAQ3P,GAExF,IAAIyrN,EAAgBD,EAAc7D,GAA4Bz9N,KAAMm+N,IAAYA,IAAYl1N,IAAI0+C,GAAQ,KAYxG,OAVK45K,EAOH9D,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM/gB,UANxDwwN,EAAgB9D,GAA4Bz9N,KAAMm/N,IAAOA,IAAOv7M,EAAI+jC,EAAMliC,EAAQ3P,EAAQspI,GAEtFkiF,GACF7D,GAA4Bz9N,KAAMm+N,IAAYA,IAAYj1N,IAAIy+C,EAAM45K,IAMjEA,CACR,CAoBDjkF,UAAUx4I,EAAM2gB,EAAQ3P,EAAQrP,GAG9B,OAFAg3N,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAMyuM,gBAEjDvgO,KAAKigN,KAAKx6L,EAAQ3P,GAAQ,EAAO,CACtCrP,WACA3B,QAEH,CAMgB,kBAACA,EAAM2gB,EAAQ7B,GAC9B,MAAMw7H,EAAe,GAAH,OAAMt6I,EAAN,aAAe8e,GAKjC,GAAIm4M,GAAY0B,GAA4Bz9N,KAAM++N,IAAgBA,IAAgB3/E,IAEhF,OADAr4G,GAAEjD,OAAM,IAAM,sCAAN,OAA4Cs7G,MAC7C,SAGFq+E,GAA4Bz9N,KAAM++N,IAAgBA,IAAgB3/E,GAEzE,IACE,QAAOp/I,KAAK6gO,cAAgB7E,GAAOyB,GAA4Bz9N,KAAMi/N,IAAYA,OAAej/N,KAAKigN,KAAKx6L,EAAQ,CAAC7B,GAGpH,CAFC,MAAOpI,GACP,OAAO,CACR,CACF,EAIH6pL,eAAe26B,GAAOp8M,EAAI+jC,EAAMliC,EAAQ3P,EAAQspI,GAC9C,OAAO,IAAIx1H,SAAQ,CAACE,EAASkW,KAC3B,IACE,IAAKhgC,KAAK6gO,aAA6E,OAA9DpD,GAA4Bz9N,KAAMi/N,IAAYA,IACrE,MAAM,IAAIr/M,MAAM,8BAGlB,MAAMnZ,EAAW,CAAC+U,EAAO1K,KACvB0K,EAAQwkB,EAAOxkB,GAASsO,EAAQhZ,EAAhC,EAGFi2B,GAAEjD,OAAM,IAAM,CAAC,UAAWre,EAAQkiC,KAClC81K,GAA4Bz9N,KAAMw+N,IAAWA,IAAW56M,GAAM,CAC5Dnd,WACAgf,SACA3P,SACAka,MAAO6S,KAAKD,MACZw8G,gBAEFq+E,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM6uM,WAAah5K,EAAKtnD,OAE1Eo9N,GAA4Bz9N,KAAMi/N,IAAYA,IAAYhf,KAAKt4J,EAIhE,CAHC,MAAOnsC,GACPiiN,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM1W,SACxD4kB,EAAOxkB,EACR,IAEJ,CExqBM,MAAM4sC,GAAQi7H,GAAQj7H,MCKvBo5K,GAAkB,oEAClBz6L,GAAI7xB,GAAO,YAsBjB,IAAIipN,GAA0BnB,GAA2B,aAErDoB,GAAsBpB,GAA2B,SAEjDyE,GAAyBzE,GAA2B,YAEpDsB,GAAwBtB,GAA2B,WAEnD0B,GAAsB1B,GAA2B,SAEjDmC,GAAqBnC,GAA2B,QAE7C,MAAM0E,GAIXjrN,cAAwD,IAA5CqpN,EAA4C,uDAAjC11B,GAAmB1iJ,EAAc,uDAAJ,CAAC,EAyBnD,GAxBAxkD,OAAOqR,eAAevU,KAAMm/N,GAAO,CACjC/7N,MAAO48N,KAET98N,OAAOqR,eAAevU,KAAMm+N,GAAY,CACtCz5L,UAAU,EACVthC,MAAO,IAAIk6N,KAEbp6N,OAAOqR,eAAevU,KAAMo+N,GAAQ,CAClC15L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAMyhO,GAAW,CACrC/8L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAMs+N,GAAU,CACpC55L,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAM0+N,GAAQ,CAClCh6L,UAAU,EACVthC,WAAO,KAGJ,qBAAqB8O,KAAK4tN,GAC7B,MAAM,IAAIlgN,MAAJ,wEAA2EkgN,EAA3E,MAGRrC,GAA4Bz9N,KAAMo+N,IAAQA,IAAU,IAAIzB,GACxDc,GAA4Bz9N,KAAMyhO,IAAWA,IAAa3B,EAC1DrC,GAA4Bz9N,KAAMs+N,IAAUA,IAAY52K,EACxD+1K,GAA4Bz9N,KAAM0+N,IAAQA,IAAU,CAClDzvK,OAAQ,CACNyxK,SAAU,EACVH,cAAe,GAEjBzuM,MAAO,CACLuuM,UAAW,EACXM,UAAW,EACX5vN,OAAQ,EACRqK,OAAQ,EACRslN,SAAU,EACVH,cAAe,EACfh3K,QAAS,GAGd,CAMGq3K,uBACF,OAAO,CACR,CAMDj2L,QACE,OAAO,IAAI+2L,GAAajE,GAA4Bz9N,KAAMyhO,IAAWA,IAAYhE,GAA4Bz9N,KAAMs+N,IAAUA,IAC9H,CAMY,gBACZ,CAMe,mBACf,CAMG+C,YACF,OAAO5D,GAA4Bz9N,KAAM0+N,IAAQA,GAClD,CAOGmC,kBACF,OAAO,CACR,CAQDz4M,GAAGtjB,EAAM8oB,GAEP,OADAmZ,GAAEvrB,MAAM,qEACD,MAER,CAMS,WAACiK,EAAQ3P,EAAQwrN,GACzB7D,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM4uM,WAExD,MAAO,CAAE/4K,GAAQ81K,GAA4Bz9N,KAAMo+N,IAAQA,IAAQvB,WAAWp3M,EAAQ3P,GAEtF,IAAIyrN,EAAgBD,EAAc7D,GAA4Bz9N,KAAMm+N,IAAYA,IAAYl1N,IAAI0+C,GAAQ,KAYxG,OAVK45K,EAOH9D,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM/gB,UANxDwwN,EAAgB9D,GAA4Bz9N,KAAMm/N,IAAOA,IAAOx3K,GAE5D25K,GACF7D,GAA4Bz9N,KAAMm+N,IAAYA,IAAYj1N,IAAIy+C,EAAM45K,IAMjEA,CACR,CAMc,gBAAC5/M,EAAO8D,EAAQ3P,EAAQ2mF,GAErC,MADA11D,GAAEvrB,MAAMgmN,IACF,IAAI5hN,MAAM4hN,GACjB,CAOgB,kBAAC18N,EAAM2gB,EAAQ7B,GAE9B,MADAmjB,GAAEvrB,MAAMgmN,IACF,IAAI5hN,MAAM4hN,GACjB,EAIHn8B,eAAe26B,GAAOr4K,GACpB81K,GAA4Bz9N,KAAM0+N,IAAQA,IAAQzvK,OAAOyxK,WACzDjD,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM6uM,WAAah5K,EAAKtnD,OAE1E,IACE,MAAM8nD,QAAiBC,GAAMq1K,GAA4Bz9N,KAAMyhO,IAAWA,IAAY,CACpF95K,OACAD,QAAS,CACPi6K,OAAQ,mBACR,iBAAkB,GAAlB,OAAqBh6K,EAAKtnD,QAC1B,eAAgB,sBACbo9N,GAA4Bz9N,KAAMs+N,IAAUA,KAEjD74M,OAAQ,SAGV,IAAK0iC,EAASyiE,GACZ,MAAM,IAAIhrG,MAAJ,WAAcuoC,EAASI,OAAvB,cAAmCJ,EAASM,aAGpD,MAAM33C,QAAeq3C,EAASj3B,OAC9BusM,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAMuuM,WAAavvN,EAAOzQ,OAE5E,MAAM6oC,EAAUu0L,GAA4Bz9N,KAAMo+N,IAAQA,IAAQxB,eAAerlN,KAAKtQ,MAAM6J,IAG5F,OADA2sN,GAA4Bz9N,KAAM0+N,IAAQA,IAAQzvK,OAAOyxK,WAClDx3L,CAKR,CAJC,MAAO3mC,GAGP,MAFAk7N,GAA4Bz9N,KAAM0+N,IAAQA,IAAQzvK,OAAOyxK,WACzDjD,GAA4Bz9N,KAAM0+N,IAAQA,IAAQ5sM,MAAM1W,SAClD7Y,CACP,CACF,CCtOM,MAAMq/N,GACL,gBADKA,IAE8B,IAAIjzE,IAAIkzE,wGAAiBrgF,SAASpoI,UAAU,EAAG,IAAIu1I,IAAIkzE,wGAAiBrgF,SAAS5rH,YAAY,KAAO,GAEpI,SCJJ,SAASksM,GAASrrB,EAAUsrB,GACjC,OAAOtrB,EAASurB,aAAa/9C,GAAS89C,GACvC,CACM,SAASE,GAAUxrB,EAAUyrB,GAClC,OAAOzrB,EAASkC,cAAc10B,GAASi+C,GACxC,CCLK,SAAUC,GAAY/+N,GAC1B,OAAOA,GAASs2H,GAAWt2H,EAAMwrM,SAClC,CCDD,SAAS73K,GAAQxF,GACf,OAAOA,EAAIA,EAAIlxB,OAAS,EACzB,CAEK,SAAU+hO,GAAkBlxN,GAChC,OAAOwoH,GAAW3iG,GAAK7lB,IAASA,EAAK6U,WAAQjlB,CAC9C,CAEK,SAAUuhO,GAAanxN,GAC3B,OAAOixN,GAAYprM,GAAK7lB,IAASA,EAAK6U,WAAQjlB,CAC/C,CCiEK,SAAUizG,SAAM,oCAAA7iG,EAAAA,GAAAA,UAAAA,GACpB,IAAMu9L,EAAY4zB,GAAanxN,GAC/B,OAAOpO,GAAKoO,EAAau9L,EAC1B,CCnCK,SAAUnlM,GAAUkmM,EAAyC7wE,GACjE,OAAOi7D,IAAQ,SAAC/nL,EAAQorI,GAEtB,IAAIr5I,EAAQ,EAGZiO,EAAOyrI,UACLy8C,GAAyB98C,GAAY,SAAC75I,GAGpC65I,EAAW73I,KAAKoqM,EAAQ3lM,KAAK80H,EAASv7H,EAAOQ,KAC9C,IAEJ,GACF,CCtDM,SAAS0+N,GAAelG,EAAMl7N,EAAKy/H,EAAQ4hG,GAAoB,IAAX3+N,EAAW,uDAAH,EACjE,MAAMqH,EAAOs3N,EAAUA,EAAQrhO,EAAK0C,GAAS1C,EAOvC+J,KAAQmxN,GACZl5N,OAAOqR,eAAe6nN,EAAMnxN,EAAM,CAChC4U,YAAY,EAGZ5W,IAAK,WACH,OAAO03H,EAAOz/H,EAAK0C,EAAO5D,KAC3B,GAGN,CAMM,SAASwiO,GAAiBpG,EAAMj4M,EAAMw8G,EAAQ4hG,GACnD,IAAK,IAAItgO,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAC/BqgO,GAAelG,EAAMj4M,EAAKliB,GAAI0+H,EAAQ4hG,EAAStgO,EAElD,CChCM,SAASwgO,GAAMzhL,GAEpB,OAAO04E,GAAW14E,EAAEpyB,GACrB,CCOD,SAAS8zM,GAAgB5vM,EAAGC,GAE1B,OAAOD,EAAE3qB,OAAS4qB,EAAE1yB,SAAW0yB,EAAE6vG,MAAKrgI,IAAKogO,OAN3Bv/N,EAMoCb,GAL5CqH,MAAM4G,QAAQpN,IAA2B,IAAjBA,EAAM/C,QALxC,SAAqByyB,EAAGC,GACtB,OAAOgpM,GAAYjpM,KAAO2vM,GAAM3vM,IAAMA,EAAElE,GAAGmE,GAAKD,IAAMC,EACvD,CAQ2D6vM,CAAY9vM,EAAE7pB,IAAI1G,EAAE,IAAKA,EAAE,IANvF,IAAkBa,CAMe,GAChC,CAIM,SAASy/N,GAAW/vM,EAAGC,GAC5B,OAAInpB,MAAM4G,QAAQuiB,GACT2vM,GAAgB5vM,EAAGC,GACjBA,aAAakyE,IACfy9H,GAAgB5vM,EAAG,IAAIC,EAAEwuC,cACvBo4D,GAAS5mG,IACX2vM,GAAgB5vM,EAAG5vB,OAAOq+D,QAAQxuC,GAI5C,CCXM,MAAM+vM,WAAa79H,IACxBxuF,YAAYggM,EAAUrzM,GACpB,MAAM8lC,EAfV,SAAoB9lC,GAClB,OAAOF,OAAOq+D,QAAQn+D,GAAS,CAAC,EACjC,CAamB2/N,CAAW3/N,GAC3B4a,MAAMkrB,GACNlpC,KAAKy2M,SAAWA,EAChB+rB,GAAiBxiO,KAAMkpC,EAAQ5/B,KAAI,QAAEjB,GAAF,SAASA,CAAT,KAAaA,GAAKrI,KAAKiJ,IAAIZ,IAC/D,CAMG26N,oBACF,OAAO,CACR,CAMGj8N,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAmC,IAA5B,IAAI/+D,KAAKmkB,QAAQ9jB,MACzB,CAMDuuB,GAAGjB,GACD,OAAOk1M,GAAW7iO,KAAM2tB,EACzB,CAMDs1M,KAAK/hO,GACH,OAAOlB,KAAKiJ,IAAI/H,EACjB,CAMDwzC,UACE,MAAM,IAAI90B,MAAM,gBACjB,CAMDsP,QACE,MAAM,IAAItP,MAAM,gBACjB,CAMD+2M,UACE,MAAO,IAAI32N,KAAKuhE,WAAW5hD,QAAO,CAACtJ,EAAD,KAAwB,IAAhBnV,EAAKkC,GAAW,EAExD,OADAiT,EAAKnV,GAAOw4H,GAAWt2H,EAAMuzN,SAAWvzN,EAAMuzN,UAAYvzN,EACnDiT,CAAP,GACC,CAAC,EACL,CAMD4Y,SACE,MAAO,IAAIjvB,KAAKuhE,WAAW5hD,QAAO,CAACtJ,EAAD,KAAwB,IAAhBnV,EAAKkC,GAAW,EAExD,OADAiT,EAAKnV,GAAOkC,EACLiT,CAAP,GACC,CAAC,EACL,CAMD6sN,cACE,MAAO,IAAIljO,KAAKuhE,WAAW5hD,QAAO,CAACtJ,EAAD,KAAwB,IAAhBnV,EAAKkC,GAAW,EAExD,OADAiT,EAAKnV,GAAOw4H,GAAWt2H,EAAMuzN,SAAWvzN,EAAM8/N,cAAgB9/N,EACvDiT,CAAP,GACC,CAAC,EACL,CAMDigN,YACE,MAAO,MACR,CAMDhqN,WACE,OAAO3F,GAAU3G,KAAKivB,SACvB,CAODmlM,MAAM+O,GACJ,MAAM,IAAIvjN,MAAM,gBACjB,ECpHH,SAASwjN,GAAar/C,GACpB,MAAMj+K,EAAqB,EAAbi+K,EAAI1jL,OAElB,IAAK,IAAI4B,EAAI,EAAGA,EAAI6D,EAAO7D,IAAK,CAC9B,MAAM8wB,EAAa,EAATgxJ,EAAI9hL,GAEd,GAAI8wB,EAAI,IAAMA,EAAI,IAChB,OAAO,CAEV,CAED,OAAO,CACR,CASM,SAASswM,GAAQjgO,GACtB,OAAOotL,GAASptL,GAAS+xK,GAAM/xK,GAASggO,GAAan/C,GAAS7gL,IAtChE,SAAoB+I,GAClB,MAAMrG,EAAqB,EAAbqG,EAAI9L,OAElB,IAAK,IAAI4B,EAAI,EAAGA,EAAI6D,EAAO7D,IAAK,CAC9B,MAAM8wB,EAAI5mB,EAAItI,WAAW5B,GAEzB,GAAI8wB,EAAI,IAAMA,EAAI,IAChB,OAAO,CAEV,CAED,OAAO,CACR,CA0ByEuwM,CAAWlgO,KAASA,GAAQggO,GAAahgO,EAClH,CCjCM,MAAMmgO,WAAYpnN,WAKJqnN,WAAPxvJ,OAAOwvJ,WACjB,OAAOrnN,UACR,CAED1F,YAAYggM,EAAUrzM,EAAOqgO,GAC3BzlN,MAAMimK,GAAS7gL,IACfpD,KAAKy2M,SAAWA,EAChBz2M,KAAKyjO,iBAAmBA,CACzB,CAMGT,oBACF,OAAOhjO,KAAKK,MACb,CAMG0G,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGiP,cACF,OAAOA,GAAQrjO,KAChB,CAMG++D,cACF,OAAQ/+D,KAAKK,QAAU07N,GAAY/7N,KAAKy2B,MAAK1D,KAAOA,IACrD,CAMG2wM,aACF,OCrDG,SAAgBtgO,GACrB,IAAKA,EACH,OAAOotL,GAASptL,GAGlB,MAAM2gL,EAAME,GAAS7gL,GACfiJ,EAAM03K,EAAI1jL,OAChB,IAAI4B,EAAI,EAER,KAAOA,EAAIoK,GACT,GAAI03K,EAAI9hL,IAAM,IAGVA,GAAK,OACA,GAAI8hL,EAAI9hL,IAAM,KAAQ8hL,EAAI9hL,IAAM,IAEvC,CACE,KAAIA,EAAI,EAAIoK,GAWV,OAAO,EARL,GAAI03K,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAQbA,GAAK,CACN,MAAM,GAAe,MAAX8hL,EAAI9hL,GAEf,CACE,KAAIA,EAAI,EAAIoK,GAiBV,OAAO,EAdL,GAAI03K,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAQbA,GAAK,CACN,MAAM,GAAI8hL,EAAI9hL,IAAM,KAAQ8hL,EAAI9hL,IAAM,IAEvC,CACE,KAAIA,EAAI,EAAIoK,GAiBV,OAAO,EAdL,GAAI03K,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAQbA,GAAK,CACN,MAAM,GAAe,MAAX8hL,EAAI9hL,GAEf,CACE,KAAIA,EAAI,EAAIoK,GAiBV,OAAO,EAdL,GAAI03K,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAQbA,GAAK,CACN,MAAM,GAAI8hL,EAAI9hL,IAAM,KAAQ8hL,EAAI9hL,IAAM,IAEvC,CACE,KAAIA,EAAI,EAAIoK,GAiBV,OAAO,EAdL,GAAI03K,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAQbA,GAAK,CACN,MAAM,GAAe,MAAX8hL,EAAI9hL,GAEf,CACE,KAAIA,EAAI,EAAIoK,GAuBV,OAAO,EApBL,GAAI03K,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAQbA,GAAK,CACN,MAAM,GAAI8hL,EAAI9hL,IAAM,KAAQ8hL,EAAI9hL,IAAM,IAEvC,CACE,KAAIA,EAAI,EAAIoK,GAuBV,OAAO,EApBL,GAAI03K,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAQbA,GAAK,CACN,KAAM,IAAe,MAAX8hL,EAAI9hL,GAiCf,OAAO,EA9BL,KAAIA,EAAI,EAAIoK,GAuBV,OAAO,EApBL,GAAI03K,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAGT,GAAI8hL,EAAI9hL,EAAI,GAAK,KAAQ8hL,EAAI9hL,EAAI,GAAK,IAGpC,OAAO,EAQbA,GAAK,CAKR,CAGH,OAAO,CACR,CD7KUyhO,CAAO1jO,KACf,CAMDyqC,YACE,OAAqB,EAAdzqC,KAAKK,MACb,CAMDuuB,GAAGjB,GACD,OAAIA,aAAiBxR,WACZnc,KAAKK,SAAWstB,EAAMttB,SAAWL,KAAK4iI,MAAK,CAAC7vG,EAAGnvB,IAAUmvB,IAAMpF,EAAM/pB,KAGvE5D,KAAK4uB,GAAGq1J,GAASt2J,GACzB,CAMD+mB,UACE,MAAO,CACLsyC,MAAO,CAAChnF,KAAKo0N,SAEhB,CAMDllM,QACE,OAAOo6K,GAAStpM,KACjB,CAMD22N,UACE,OAAO32N,KAAKkjO,aACb,CAMDj0M,SACE,OAAOjvB,KAAKkvB,OACb,CAMDg0M,cACE,GAAIljO,KAAKqjO,QAAS,CAChB,MAAMnyM,EAAOlxB,KAAK2jO,SAElB,GAAIN,GAAQnyM,GACV,OAAOA,CAEV,CAED,OAAOlxB,KAAKivB,QACb,CAMDqnM,YACE,MAAO,KACR,CAMDhqN,WACE,OAAOtM,KAAKkvB,OACb,CAQDklM,MAAM+O,GACJ,OAAOhnN,WAAWrZ,KAAK9C,KACxB,CAMD2jO,SACE,IAAK3jO,KAAK0jO,OACR,MAAM,IAAI9jN,MAAM,qDAGlB,OAAO4hL,GAAYxhM,KACpB,qBEtKI,MAAM4jO,GAGXntN,YAAYggM,GAAuC,IAA7BotB,EAA6B,uDAAlB,iBAG/B,MAHiD,uCACjD7jO,KAAKy2M,SAAWA,EAChB,GAAAz2M,KAAA,GAAmB,IAAI4f,MAAJ,wDAA2DikN,KACxE,GAAA7jO,KAAN,GACD,CAEU,YAAC6jO,GACV,OAAO,cAAcD,GACnBntN,YAAYggM,GACVz4L,MAAMy4L,EAAUotB,EACjB,EAGJ,CAMGb,oBACF,MAAM,GAAAhjO,KAAN,GACD,CAMG+G,WACF,MAAM,GAAA/G,KAAN,GACD,CAMG++D,cACF,MAAM,GAAA/+D,KAAN,GACD,CAED4uB,KACE,MAAM,GAAA5uB,KAAN,GACD,CAED00C,UACE,MAAM,GAAA10C,KAAN,GACD,CAEDkvB,QACE,MAAM,GAAAlvB,KAAN,GACD,CAED22N,UACE,MAAM,GAAA32N,KAAN,GACD,CAEDivB,SACE,MAAM,GAAAjvB,KAAN,GACD,CAEDkjO,cACE,MAAM,GAAAljO,KAAN,GACD,CAEDs2N,YACE,MAAM,GAAAt2N,KAAN,GACD,CAEDsM,WACE,MAAM,GAAAtM,KAAN,GACD,CAEDo0N,QACE,MAAM,GAAAp0N,KAAN,GACD,EC9DI,SAAS8jO,GAAQ1gO,GAGhB,IAHuB,KAC7BmyK,GAAO,EADsB,WAE7BnnJ,GAAa,GACP,uDAAJ,CAAC,EACH,MAAMtoB,EAAQ1C,EAAM/C,OAGpB,GAAIyF,GAAS,EAAG,CACd,GAAIsoB,EAAY,CACd,IAAItd,EAAS,EAEb,GAAIykK,EAIF,OAAQzvK,GACN,KAAK,EACH,OAAO,IAAIinB,GAAG,GAEhB,KAAK,EACHjc,EAAoB,IAAX1N,EAAM,GACf,MAEF,KAAK,EACH0N,EAAS1N,EAAM,IAAMA,EAAM,IAAM,GAAK,MACtC,MAEF,KAAK,EACH0N,EAAS1N,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAM,SACzD,MAEF,KAAK,EAGH0N,EAAS1N,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAiB,SAAXA,EAAM,GAAiB,WAChF,MAEF,KAAK,EACH0N,GAAU1N,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAiB,SAAXA,EAAM,GAAiB,YAAkC,YAAR,IAAXA,EAAM,IACtG,MAEF,QAEE0N,GAAU1N,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAiB,SAAXA,EAAM,GAAiB,YAA0D,YAA3CA,EAAM,IAAMA,EAAM,IAAM,GAAK,YAIjI,IAAK,IAAInB,EAAI,EAAGA,EAAI6D,EAAO7D,IACzB6O,EAAkB,IAATA,GAA6B,IAAX1N,EAAMnB,IAIrC,OAAe,IAAI8qB,GAAZjnB,GAAyB,EAAVgL,EAAc,EAAY,EACjD,CAAM,IAAIykK,EA+BJ,CACL,IAAIzkK,EAAS,EAEb,IAAK,IAAI7O,EAAI,EAAGA,EAAI6D,EAAO7D,IACzB6O,EAAkB,IAATA,EAAiB1N,EAAMnB,GAGlC,OAAO,IAAI8qB,GAAGjc,EACf,CAjCC,OAAQhL,GACN,KAAK,EACH,OAAO,IAAIinB,GAAG,GAEhB,KAAK,EACH,OAAO,IAAIA,GAAG3pB,EAAM,IAEtB,KAAK,EACH,OAAO,IAAI2pB,GAAG3pB,EAAM,IAAMA,EAAM,IAAM,IAExC,KAAK,EACH,OAAO,IAAI2pB,GAAG3pB,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,KAE1D,KAAK,EAGH,OAAO,IAAI2pB,GAAG3pB,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAiB,SAAXA,EAAM,IAEtE,KAAK,EACH,OAAO,IAAI2pB,GAAG3pB,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAqC,UAA9BA,EAAM,IAAMA,EAAM,IAAM,KAEzF,QAEE,OAAO,IAAI2pB,GAAG3pB,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAwD,UAAjDA,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,MAWhH,CAED,OAAOgrB,EAAa,IAAIrB,GAAG3pB,EAAOmyK,EAAO,KAAO,MAAMj0J,SAAwB,EAAfle,EAAM/C,QAAc,IAAI0sB,GAAG3pB,EAAOmyK,EAAO,KAAO,KAChH,CCnGM,SAASwuD,GAAexqN,GAC7B,MAAMwqK,EAAME,GAAS1qK,GAGrB,OAAiB,EAATwqK,EAAI,IACV,KAAK,EACH,MAAO,CAAC,EAAG,IAAIh3J,GAAGg3J,EAAI,KAAO,IAE/B,KAAK,EACH,MAAO,CAAC,EAAG,IAAIh3J,GAAGg3J,EAAI,IAAMA,EAAI,IAAM,KAAO,IAE/C,KAAK,EAGH,MAAO,CAAC,EAAG,IAAIh3J,GAAGg3J,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAe,SAATA,EAAI,KAAmB,IAGrF,QACE,CAEE,MAAMx8K,EAA0B,GAAhBw8K,EAAI,KAAO,GAE3B,OAAQx8K,GAEN,KAAK,EAGH,MAAO,CAAC,EAAG,IAAIwlB,GAAGg3J,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAe,SAATA,EAAI,KAElE,KAAK,EACH,MAAO,CAAC,EAAG,IAAIh3J,GAAGg3J,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAiC,UAA1BA,EAAI,IAAMA,EAAI,IAAM,MAGnF,KAAK,EACH,MAAO,CAAC,EAAG,IAAIh3J,GAAGg3J,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAkD,UAA3CA,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,OAGnG,QACE,MAAO,CAACx8K,EAAQu8N,GAAQ//C,EAAI7B,SAAS,EAAG36K,KAE7C,EAEN,CAMM,SAASy8N,GAAkBjgD,GAGhC,OAAiB,EAATA,EAAI,IACV,KAAK,EACH,MAAO,CAAC,EAAGA,EAAI,KAAO,GAExB,KAAK,EACH,MAAO,CAAC,EAAGA,EAAI,IAAMA,EAAI,IAAM,KAAO,GAExC,KAAK,EAGH,MAAO,CAAC,EAAGA,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAe,SAATA,EAAI,KAAmB,GAG9E,QAII,OAAyB,GAAhBA,EAAI,KAAO,IAElB,KAAK,EACH,MAAO,CAAC,EAAGA,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAe,SAATA,EAAI,IAE3D,KAAK,EACH,MAAO,CAAC,EAAGA,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAiC,UAA1BA,EAAI,IAAMA,EAAI,IAAM,KAG5E,KAAK,EACH,MAAO,CAAC,EAAGA,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAkD,UAA3CA,EAAI,IAAMA,EAAI,IAAM,IAAMA,EAAI,IAAM,MAG5F,QACE,MAAM,IAAInkK,MAAM,+CAI3B,CCjGM,MAAMqkN,GAAU,IAAIl3M,GAAG,GAMjBm3M,GAAS,IAAIn3M,GAAG,GAMhBo3M,GAAS,IAAIp3M,GAAG,GAsDhBq3M,IAhDW,IAAIr3M,GAAG,GAMR,IAAIA,GAAG,GAMP,IAAIA,GAAG,GAMR,IAAIA,GAAG,GAML,IAAIA,GAAG,GAMP,IAAIA,GAAG,GAMR,IAAIA,GAAG,GAMR,IAAIA,GAAG,IAMH,IAAIA,GAAG,MAYpBs3M,IANc,IAAIt3M,GAAG,KAMR,IAAIA,GAAG,MAMpBu3M,GAAa,IAAIv3M,GAAG,KAMpBw3M,GAAcD,GAAWpjN,IAAIojN,IAM7BE,GAAiB,IAAIz3M,GAAGyxC,OAAOimK,kBCrGtCC,GAAe,CACnBj6L,WAAY,EACZ8qI,MAAM,EACNnnJ,YAAY,GAiBP,SAASu2M,GAAQvhO,GAIN,IAJa,UAC7BqnC,GAAY,EADiB,KAE7B8qI,GAAO,EAFsB,WAG7BnnJ,GAAa,GACG,uDAAds2M,GACF,MAAME,EAAU7uD,GAAO3yK,GACjB+rC,GAA4B,IAAf1E,EAAmB5nC,KAAK8a,KAAKinN,EAAQn6L,YAAc,GAAK5nC,KAAK8a,MAAM8sB,GAAa,GAAK,GAExG,IAAKrnC,EACH,OAAsB,IAAfqnC,EAAmB,IAAItuB,WAAe,IAAIA,WAAWgzB,GAG9D,MAAMzoC,EAAS,IAAIyV,WAAWgzB,GACxBsmI,EAAKrnJ,EAAaw2M,EAAQvjN,OAAoB,EAAb8tB,GAAkBy1L,EAEzD,OADAl+N,EAAOwC,IAAIusK,EAAG1rI,QAAQwrI,EAAO,KAAO,KAAMpmI,GAAa,GAChDzoC,CACR,CCnCD,MAAMm+N,GAASV,GAAOj2M,IAAI,IAAInB,GAAG,IAAQ0pD,KAAKytJ,IACxCY,GAAUX,GAAOj2M,IAAI,IAAInB,GAAG,KAAS0pD,KAAKytJ,IAC1Ca,GAAUZ,GAAOj2M,IAAI,IAAInB,GAAG,KAAS0pD,KAAKytJ,IAC1Cc,GAAQ,CACZv6L,UAAW,IAEPw6L,GAAQ,CACZx6L,UAAW,IAeN,SAASy6L,GAAa9hO,GAC3B,MAAMqyK,EAAKM,GAAO3yK,GAElB,GAAIqyK,EAAG5mJ,IAAIg2M,IACT,OAAO,IAAI1oN,WAAW,CAACs5J,EAAGj7J,YAAc,IACnC,GAAIi7J,EAAG5mJ,IAAIi2M,IAChB,OAAOH,GAAQlvD,EAAGhnJ,KAAK,GAAG8pB,KAAK2rL,IAASc,IACnC,GAAIvvD,EAAG5mJ,IAAIk2M,IAChB,OAAOJ,GAAQlvD,EAAGhnJ,KAAK,GAAG8pB,KAAK4rL,IAASc,IAG1C,MAAMlhD,EAAM4gD,GAAQlvD,GACpB,IAAIp1K,EAAS0jL,EAAI1jL,OAEjB,KAA2B,IAApB0jL,EAAI1jL,EAAS,IAClBA,IAGF,GAAIA,EAAS,EACX,MAAM,IAAIuf,MAAM,iEAGlB,OAAO+7K,GAAgB,CACvB,IAAIx/K,WAAW,CAAqB,GAAnB9b,EAAS,GAAK,KAAa0jL,EAAI7B,SAAS,EAAG7hL,IAC7D,CC5CM,SAAS8kO,GAAaryM,EAAGC,GAC9B,QAAInpB,MAAM4G,QAAQuiB,KACTD,EAAEzyB,SAAW0yB,EAAE1yB,QAAU07N,GAAYjpM,EAAE2D,MAAK,CAAChW,EAAG7c,IAAU6+N,GAAMhiN,IAAMA,EAAEmO,GAAGmE,EAAEnvB,IAAU6c,IAAMsS,EAAEnvB,MAIzG,CCAM,MAAMwhO,WAAsBx7N,MAKd45N,WAAPxvJ,OAAOwvJ,WACjB,OAAO55N,KACR,CAED6M,YAAYggM,EAAUp2M,GACpB2d,MAAM3d,GACNL,KAAKy2M,SAAWA,CACjB,CAMGusB,oBAGF,IAAIlxM,EAAQozM,GAAallO,KAAKK,QAAQA,OAEtC,IAAK,IAAI4B,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC/B6vB,GAAS9xB,KAAKiC,GAAG+gO,cAGnB,OAAOlxM,CACR,CAMG/qB,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAuB,IAAhB/+D,KAAKK,MACb,CAMGA,aAEF,OAAO2d,MAAM3d,MACd,CAMDuuB,GAAGjB,GACD,OAAOw3M,GAAanlO,KAAM2tB,EAC3B,CAMD+mB,UACE,MAAO,CACLqyC,MAAO/mF,KAAKqlO,eACZr+I,MAAO,CAACk+I,GAAallO,KAAKK,SAE7B,CAEDglO,eACE,MAAMt+I,EAAQ,IAAIn9E,MAAM5J,KAAKK,QAE7B,IAAK,IAAI4B,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC/B8kF,EAAM9kF,GAAKjC,KAAKiC,GAAGyyC,UAGrB,OAAOqyC,CACR,CAMDh9C,UACE,OAAOngC,MAAM9G,KAAK9C,KACnB,CAMDkvB,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDuC,QAAQ2O,GACN,MAAMx0N,EAAS,IAAIlH,MAAM5J,KAAKK,QAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC/B6O,EAAO7O,GAAKjC,KAAKiC,IAAMjC,KAAKiC,GAAG00N,QAAQ2O,GAGzC,OAAOx0N,CACR,CAMDme,SACE,MAAMne,EAAS,IAAIlH,MAAM5J,KAAKK,QAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAG/B6O,EAAO7O,GAAKjC,KAAKiC,IAAMjC,KAAKiC,GAAGgtB,SAGjC,OAAOne,CACR,CAMDoyN,cACE,MAAMpyN,EAAS,IAAIlH,MAAM5J,KAAKK,QAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC/B6O,EAAO7O,GAAKjC,KAAKiC,IAAMjC,KAAKiC,GAAGihO,cAGjC,OAAOpyN,CACR,CASDxE,WACE,MAAMwE,EAAS,IAAIlH,MAAM5J,KAAKK,QAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC/B6O,EAAO7O,GAAKjC,KAAKiC,GAAGqK,WAGtB,MAAO,IAAP,OAAWwE,EAAOjK,KAAK,MAAvB,IACD,CAODutN,MAAM+O,GACJ,MAAM14B,EAAUzqM,KAAKulO,aACrB,OAAgB5pC,GAATwnC,EAAyB14B,EAA2B,CAACy6B,GAAallO,KAAKK,WAAYoqM,GAC3F,CAED86B,WAAWpC,GACT,MAAM14B,EAAU,IAAI7gM,MAAM5J,KAAKK,QAE/B,IAAK,IAAI4B,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC/BwoM,EAAQxoM,GAAKjC,KAAKiC,GAAGmyN,MAAM+O,GAG7B,OAAO14B,CACR,EC7LI,MAAM+6B,GAAW,IAAI57N,MAAM,KACrB67N,GAAW,IAAI77N,MAAM,KAElC,IAAK,IAAI3H,GAAI,EAAGA,GAAIujO,GAASnlO,OAAQ4B,KACnCwjO,GAASxjO,IAAKc,OAAOC,aAAaf,IAAG0N,cACrC61N,GAASvjO,IAAKc,OAAOC,aAAaf,IAAG0oB,cAKvC,SAAS+6M,GAAchyM,GACrB,OAAOA,EAAEzvB,MAAM,EAAGyvB,EAAErzB,OAAS,GAAGsP,cAAgB61N,GAAS9xM,EAAE7vB,WAAW6vB,EAAErzB,OAAS,GAClF,CAiBD,SAASslO,GAAUvuN,GACjB,OAAOhU,IACL,MAAMwiO,EAAQxiO,EACbC,QAAQ,YAAa,KACrBF,OACAkH,MAAM,KACDvE,EAAQ8/N,EAAMvlO,OACpB,IAAIyQ,EAAS,GAEb,IAAK,IAAI7O,EAAI,EAAGA,EAAI6D,EAAO7D,IAAK,CAC9B,MAAMyxB,EAAIkyM,EAAM3jO,GAEhB6O,GAAUsG,EAAO,aAAalF,KAAKwhB,GACjCA,EAAE/jB,cAEF+jB,EAAErwB,QAAQ,qBAAsBqiO,IAAgBzjO,EACnD,CAED,OAAO6O,CAAP,CAEH,CAOM,MAAM+0N,GAAkBF,IAAU,CAACjyM,EAAGzxB,KAC5CA,EAAIujO,GAAS9xM,EAAE7vB,WAAW,IAAM4hO,GAAS/xM,EAAE7vB,WAAW,KAAO6vB,EAAEzvB,MAAM,KAMzD6hO,GAAmBH,IAAUjyM,GAC1C8xM,GAAS9xM,EAAE7vB,WAAW,IAAM6vB,EAAEzvB,MAAM,KC/D7B,SAAS8hO,GAAkBtvB,EAAU3xM,GAC1C,OAAO0rL,GAAS1rL,GAAQ2xM,EAASuvB,kBAAkBlhO,GAAQA,CAC5D,CCEM,SAASmhO,GAAaxvB,EAAUl9L,GACrC,MAAMgoD,EAAUr+D,OAAOq+D,QAAQhoD,GACzBzT,EAAQy7D,EAAQlhE,OAChBqG,EAAS,CAAC,IAAIkD,MAAM9D,GAAQ,IAAI8D,MAAM9D,IAE5C,IAAK,IAAI7D,EAAI,EAAGA,EAAI6D,EAAO7D,IACzByE,EAAO,GAAGzE,GAAKs/D,EAAQt/D,GAAG,GAC1ByE,EAAO,GAAGzE,GAAK8jO,GAAkBtvB,EAAUl1I,EAAQt/D,GAAG,IAGxD,OAAOyE,CACR,CChBM,SAASw/N,GAAWzvB,EAApB,GAA6C,IAAd0vB,EAAOhiN,GAAO,EAClD,MAAMrT,EAAS,CAAC,EAEhB,IAAK,IAAI7O,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAC/B6O,EAAOqT,EAAKliB,IAAMw0M,EAAS2vB,aAAaD,EAAMlkO,KAAO,IAAIkkO,EAAMlkO,GAAGw0M,GAAU6f,YAG9E,OAAOxlN,CACR,CCDM,MAAMu1N,GAMX5vN,YAAYggM,GAAU,wBALN,GAKM,mBAJZ,GAIY,2BAFH,GAGjBz2M,KAAKy2M,SAAWA,CACjB,CAMG1vM,WACF,MAAM,IAAI6Y,MAAM,mCACjB,CAMDgP,GAAGjB,GACD,OAAOA,aAAiB04M,IAAQrK,GAAOruM,EACxC,CAMD+mB,UACE,MAAO,CAAC,CACT,CAMDxlB,QACE,MAAO,IACR,CAMDynM,UACE,OAAO32N,KAAKivB,QACb,CAMDA,SACE,OAAO,IACR,CAMDi0M,cACE,OAAO,IACR,CAMD5M,YACE,MAAO,MACR,CAMDhqN,WACE,MAAO,EACR,CAQD8nN,MAAM+O,GACJ,OAAO,IAAIhnN,UACZ,EC7FH,SAASmqN,GAAkBtvL,GACzB,OAAOA,CACR,CAgBD,SAASuvL,GAAW9vB,EAAU+vB,GAC5B,MAAMzlG,EAAM,CAAC,EACb,IAAI0lG,EACAC,EAEJ,GAAI98N,MAAM4G,QAAQg2N,GAAO,CACvB,IAAK,IAAIvkO,EAAI,EAAGA,EAAIukO,EAAKnmO,OAAQ4B,IAC/B8+H,EAAIylG,EAAKvkO,IAAM,CACb0kO,KAAMN,GACNziO,MAAO3B,GAIXwkO,GAAU,EACVC,GAAY,CACb,MAAM,GA7BT,SAAoB3lG,GAClB,MAAM6lG,EAAY1jO,OAAO0b,OAAOmiH,GAEhC,GAAI6lG,EAAUhkG,MAAKniH,GAAKy7M,GAASz7M,KAAK,CACpC,IAAKmmN,EAAU/wM,OAAMpV,GAAKy7M,GAASz7M,IAAMA,GAAK,GAAKA,GAAK,MACtD,MAAM,IAAIb,MAAM,0CAGlB,OAAO,CACR,CAED,OAAO,CACR,CAiBYinN,CAAWL,GAAO,CAC3B,MAAOL,EAAOhiN,GAAQ8hN,GAAaxvB,EAAU+vB,GAE7C,IAAK,IAAIvkO,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAC/B8+H,EAAI58G,EAAKliB,IAAM,CACb0kO,KAAMR,EAAMlkO,GACZ2B,MAAO3B,GAIXwkO,GAAWvjO,OAAO0b,OAAOmiH,GAAK6B,MAAK,QAAC,KAClC+jG,GADiC,SAE7BA,IAASN,EAFoB,IAGnCK,GAAY,CACb,KAAM,CACL,MAAMnlK,EAAUr+D,OAAOq+D,QAAQilK,GAE/B,IAAK,IAAIvkO,EAAI,EAAGA,EAAIs/D,EAAQlhE,OAAQ4B,IAAK,CACvC,MAAOf,EAAK0C,GAAS29D,EAAQt/D,GAC7B8+H,EAAI7/H,GAAO,CACTylO,KAAMN,GACNziO,QAEH,CAED6iO,GAAU,EACVC,GAAY,CACb,CAED,MAAO,CACL3lG,MACA0lG,UACAC,YAEH,CAED,SAASI,GAAa/lG,EAAKgmG,GACzB,MAAMnoN,EAAS1b,OAAO0b,OAAOmiH,GAE7B,IAAK,IAAI9+H,EAAI,EAAGA,EAAI2c,EAAOve,OAAQ4B,IAAK,CACtC,MAAM,KACJ0kO,EADI,MAEJ/iO,GACEgb,EAAO3c,GAEX,GAAI2B,IAAUmjO,EACZ,OAAOJ,CAEV,CAED,MAAM,IAAI/mN,MAAJ,0CAA6CmnN,EAA7C,gBAA6D7jO,OAAOihB,KAAK48G,GAAKl6H,KAAK,OAC1F,CAED,SAASmgO,GAAcvwB,EAAU11E,EAAKn9H,EAAOR,GAE3C,MAAO,CACLQ,QACAR,MAAO,IAHI0jO,GAAa/lG,EAAKn9H,GAGtB,CAAS6yM,EAAUrzM,GAE7B,CAED,SAAS6jO,GAAgBxwB,EAAU11E,GAAuB,IAAlBn9H,EAAkB,uDAAV,EAAGR,EAAO,uCACxD,MAAMujO,EAAOG,GAAa/lG,EAAKn9H,GAC/B,MAAO,CACLA,QACAR,MAAOA,aAAiBujO,EAAOvjO,EAAQ,IAAIujO,EAAKlwB,EAAUrzM,GAE7D,CAED,SAAS8jO,GAAezwB,EAAU11E,EAAK7/H,EAAKkC,GAG1C,MAAM+gB,EAAOjhB,OAAOihB,KAAK48G,GAAKz3H,KAAIjB,GAAKA,EAAEsH,gBACnCw3N,EAAWjmO,EAAIyO,cACf/L,EAAQugB,EAAKzgB,QAAQyjO,GAE3B,IAAe,IAAXvjO,EACF,MAAM,IAAIgc,MAAJ,gDAAmD1e,EAAnD,gBAA8DijB,EAAKtd,KAAK,QAGhF,IACE,OAAOogO,GAAgBxwB,EAAU11E,EAAK79H,OAAO0b,OAAOmiH,GAAKn9H,GAAOA,MAAOR,EAGxE,CAFC,MAAOoY,GACP,MAAM,IAAIoE,MAAJ,eAAkB1e,EAAlB,eAA4Bsa,EAAMK,SACzC,CACF,+FAmCM,MAAMurN,GAQX3wN,YAAYggM,EAAU0vB,EAAO/iO,EAAOQ,GAG5B,IAHmC,WACzC67D,EADyC,cAEzC4nK,EAAgBf,IACV,uDAAJ,CAAC,EAAG,0OACN,MAAM,IACJvlG,EADI,QAEJ0lG,EAFI,UAGJC,GACEjnK,GAAc4nK,EAAcd,GAAW9vB,EAAU0vB,IAE/Cj9L,EAAU46I,GAAM1gL,IAAUA,EAAM/C,SAAW67N,GAASt4N,GAASojO,GAAcvwB,EAAU11E,EAAK39H,EAAM,GAAIA,EAAM8+K,SAAS,IAnD7H,SAAoBu0B,EAAU11E,EAAK39H,EAAOQ,GAGxC,GAAIs4N,GAASt4N,GACX,OAAOqjO,GAAgBxwB,EAAU11E,EAAKn9H,EAAOR,GACxC,GAAI0gL,GAAM1gL,IAAU+xK,GAAM/xK,GAAQ,CACvC,MAAM2gL,EAAME,GAAS7gL,GAErB,GAAI2gL,EAAI1jL,OACN,OAAO2mO,GAAcvwB,EAAU11E,EAAKgjD,EAAI,GAAIA,EAAI7B,SAAS,GAE5D,KAAM,IAAI9+K,aAAiBgkO,GAC1B,OAAOH,GAAgBxwB,EAAU11E,EAAK39H,EAAMQ,MAAOR,EAAMA,OACpD,GAAI84N,GAAS94N,GAClB,OAAO6jO,GAAgBxwB,EAAU11E,EAAK39H,GACjC,GAAIotL,GAASptL,GAClB,OAAO8jO,GAAezwB,EAAU11E,EAAK39H,EAAMkJ,YACtC,GAAIqtH,GAASv2H,GAAQ,CAC1B,MAAMlC,EAAMgC,OAAOihB,KAAK/gB,GAAO,GAC/B,OAAO8jO,GAAezwB,EAAU11E,EAAK7/H,EAAKkC,EAAMlC,GACjD,EAGD,OAAO+lO,GAAgBxwB,EAAU11E,EAAK79H,OAAO0b,OAAOmiH,GAAK,GAAGn9H,MAC7D,CA2BkI0jO,CAAW7wB,EAAU11E,EAAK39H,EAAOQ,GAChK5D,KAAKy2M,SAAWA,EAChB,GAAAz2M,KAAA,GAAY+gI,GACZ,GAAA/gI,KAAA,GAAgBymO,GAChB,GAAAzmO,KAAA,GAAkB0mO,GAClB,GAAA1mO,KAAA,GAAgBkD,OAAO0b,OAAOmiH,GAAKz3H,KAAI,QAAC,MACtC1F,GADqC,SAEjCA,CAFiC,KAGvC,GAAA5D,KAAA,GAAmB,GAAAA,KAAA,IAAc0D,QAAQwlC,EAAQtlC,QACjD,GAAA5D,KAAA,GAAYkpC,EAAQ9lC,OAEhB,GAAApD,KAAA,IAAUyjO,mBACZzjO,KAAKyjO,iBAAmB,EAAI,GAAAzjO,KAAA,IAAUyjO,iBAEzC,CAEU,YAAC0C,GACV,IAAIoB,EAEJ,IAAI9nK,EAEJ,MAAM4nK,EAAgBrwL,GAAKyoB,EAAazoB,EAExC,OAAOuwL,EAAS,cAAcH,GAC5B3wN,YAAYggM,EAAUrzM,EAAOQ,GAC3Boa,MAAMy4L,EAAU0vB,EAAO/iO,EAAOQ,EAAO,CACnC67D,aACA4nK,iBAEH,GAEA,MACD,MAAMljN,EAAOva,MAAM4G,QAAQ21N,GAASA,EAAQjjO,OAAOihB,KAAKgiN,GAClDqB,EAAS,IAAI59N,MAAMua,EAAK9jB,QACxBonO,EAAS,IAAI79N,MAAMua,EAAK9jB,QAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAAK,CACpC,MAAMgJ,EAAO66N,GAAiB3hN,EAAKliB,IACnCulO,EAAOvlO,GAAP,YAAiBgJ,GACjBw8N,EAAOxlO,GAAP,YAAiBgJ,EAClB,CAEDu3N,GAAiB+E,EAAOnmO,UAAWqmO,GAAQ,CAAC/iN,EAAGziB,EAAGomC,IAASA,EAAKvjC,OAASqf,EAAKliB,KAC9EugO,GAAiB+E,EAAOnmO,UAAWomO,GAAQ,CAACn/N,EAAGpG,EAAGomC,KAChD,GAAIA,EAAKvjC,OAASqf,EAAKliB,GACrB,MAAM,IAAI2d,MAAJ,0BAA6ByoB,EAAKvjC,KAAlC,iBAA+CuD,IAGvD,OAAOggC,EAAKjlC,KAAZ,GAjBD,KAmBGmkO,CACP,CAMGvE,oBACF,OAAO,EAAI,GAAAhjO,KAAA,IAAUgjO,aACtB,CAMGj8N,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGxwN,YACF,OAAO,GAAA5D,KAAA,OAAcA,KAAd,IACR,CAMG+mF,YACF,OAAO,GAAA/mF,KAAP,GACD,CAMGymO,cACF,OAAO,GAAAzmO,KAAP,GACD,CAMG++D,cACF,OAAO,GAAA/+D,KAAA,IAAU++D,OAClB,CAMG2oK,aACF,OAAO,GAAA1nO,KAAA,cAAqBqmO,EAC7B,CAMGsB,iBACF,OAAO,GAAA3nO,KAAP,GACD,CAMG4nO,cACF,OAAO1kO,OAAOihB,KAAP,GAAYnkB,KAAZ,IACR,CAMG8E,WACF,OAAO9E,KAAK4nO,QAAL,GAAa5nO,KAAb,IACR,CAMGoD,YACF,OAAO,GAAApD,KAAP,GACD,CAMD4uB,GAAGjB,GAED,OAAIm2J,GAAMn2J,IACA3tB,KAAKo0N,QAAQxxF,MAAK,CAAC6jD,EAAO7iL,IAAU6iL,IAAU94J,EAAM/pB,KACnDs4N,GAASvuM,GACX3tB,KAAKwa,aAAemT,EAClB,GAAA3tB,KAAA,KAAiBwwL,GAAS7iK,GAC5B3tB,KAAK8E,OAAS6oB,EACZwnJ,GAAMxnJ,GACR3tB,KAAKkvB,UAAYvB,EACfA,aAAiBy5M,GACnBpnO,KAAK4D,QAAU+pB,EAAM/pB,OAAS5D,KAAKoD,MAAMwrB,GAAGjB,EAAMvqB,OAChDu2H,GAAShsG,GACX3tB,KAAKoD,MAAMwrB,GAAGjB,EAAM3tB,KAAK8E,OAI3B9E,KAAKoD,MAAMwrB,GAAGjB,EACtB,CAMD+mB,UACE,GAAI,GAAA10C,KAAJ,IACE,MAAO,CACLgnF,MAAO,CAAC,IAAI7qE,WAAW,CAACnc,KAAK4D,UAIjC,MAAM,MACJmjF,EADI,MAEJC,EAAQ,IACN,GAAAhnF,KAAA,IAAU00C,UACd,MAAO,CACLqyC,QACAC,MAAO,CAAC,IAAI7qE,WAAW,CAACnc,KAAK4D,WAAYojF,GAE5C,CAMD93D,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDuC,QAAQ2O,GACN,OAAO,GAAAtlO,KAAA,KAAiBA,KAAK0nO,OAAS1nO,KAAK8E,KAAO,CAChD,CAAC9E,KAAK8E,MAAO,GAAA9E,KAAA,IAAU22N,QAAQ2O,GAElC,CAMDr2M,SACE,OAAO,GAAAjvB,KAAA,IAAgBA,KAAK8E,KAAO,CACjC,CAAC+gO,GAAgB7lO,KAAK8E,OAAQ,GAAA9E,KAAA,IAAUivB,SAE3C,CAMDzU,WACE,OAAOxa,KAAK4D,KACb,CAMDs/N,cACE,OAAO,GAAAljO,KAAA,IAAgBA,KAAK8E,KAAO,CACjC,CAAC+gO,GAAgB7lO,KAAK8E,OAAQ,GAAA9E,KAAA,IAAUkjO,cAE3C,CAMD2E,eACE,GAAI,GAAA7nO,KAAJ,IACE,OAAO,GAAAA,KAAA,IAAkBA,KAAK4nO,QAAQjoN,QAAO,CAACy0D,EAAKlzE,EAAK0C,KACtDwwE,EAAIlzE,GAAO,GAAAlB,KAAA,IAAc4D,GAClBwwE,IACN,CAAC,GAAKp0E,KAAK4nO,QAGhB,MAAMrmK,EAAUr+D,OAAOq+D,QAAP,GAAevhE,KAAf,KAChB,OAAOkmO,GAAWlmO,KAAKy2M,SAAUl1I,EAAQ5hD,QAAO,CAACy0D,EAAD,EAE5CnyE,KAAM,IAF6Cf,GAAK,KAC1DylO,IACQ,EAGR,OAFAvyJ,EAAI,GAAGnyE,GAAK0kO,EACZvyJ,EAAI,GAAGnyE,GAAKf,EACLkzE,CAAP,GACC,CAAC,IAAIxqE,MAAM23D,EAAQlhE,QAAS,IAAIuJ,MAAM23D,EAAQlhE,UAClD,CAMDi2N,YACE,OAAO3vN,GAAU,CACf2xK,MAAOt4K,KAAK6nO,gBAEf,CAMDv7N,WACE,OAAOtM,KAAK0nO,OAAS1nO,KAAK8E,KAAO6B,GAAU3G,KAAKivB,SACjD,CAODmlM,MAAM+O,GACJ,OAAOA,EAAS,GAAAnjO,KAAA,IAAUo0N,MAAM+O,GAAUxnC,GAAgB,CAAC,IAAIx/K,WAAW,CAACnc,KAAK4D,QAAS,GAAA5D,KAAA,IAAUo0N,MAAM+O,IAC1G,ECncH,SAAS2E,GAAcrxB,EAAU3lM,EAAjC,EAEGizK,EAAK9hL,EAAG6D,EAAO6gO,EAAMzlO,GAAK,IAFY,QACvC2a,GAC2B,EACvB/W,EAAO,GAEX,IACEA,EAAO,KAAH,OAAQ,IAAI6hO,EAAKlwB,GAAU6f,YAEhC,CADC,MACD,CAGD,MAAO,wBAAP,OAA+BhtB,GAASvlB,EAAI7B,SAAS,EAAG,KAAxD,iBAAgEhhL,EAAM,OAAH,OAAUA,GAAQ,GAArF,mBAAkGe,EAAlG,YAAuG6D,EAAvG,YAAgHhB,EAAhH,cAA0H+W,EAC3H,CAaM,SAASksN,GAAUtxB,EAAU3lM,EAAQizK,EAArC,GAAyD,IAAdoiD,EAAOhiN,GAAO,EAC9D,MAAMre,EAAQgL,EAAOzQ,OACrB,IAAIkH,EAAS,EACTtF,EAAI,EAER,IACE,KAAOA,EAAI6D,GAAO,CAChB,MAAM1C,EAAQ,IAAI+iO,EAAMlkO,GAAGw0M,EAAU1yB,EAAI7B,SAAS36K,IAClDA,GAAUnE,EAAMqgO,kBAAoBrgO,EAAM4/N,cAC1ClyN,EAAO7O,GAAKmB,EACZnB,GACD,CAGF,CAFC,MAAOuZ,GACP,MAAM,IAAIoE,MAAMkoN,GAAcrxB,EAAU3lM,EAAQ0K,EAAOuoK,EAAI7B,SAAS36K,GAAStF,EAAG6D,EAAOqgO,EAAMlkO,GAAIkiB,EAAKliB,IACvG,CAED,MAAO,CAAC6O,EAAQvJ,EACjB,CAiCM,SAASygO,GAAavxB,EAAU3lM,EAAQizK,EAAKkkD,EAAStB,GAC3D,MAAM7gO,EAAQgL,EAAOzQ,OACrB,IAAIkH,EAAS0gO,EACThmO,EAAI,EAER,IACE,KAAOA,EAAI6D,GAAO,CAChB,MAAM1C,EAAQ,IAAIujO,EAAKlwB,EAAU1yB,EAAI7B,SAAS36K,IAC9CA,GAAUnE,EAAMqgO,kBAAoBrgO,EAAM4/N,cAC1ClyN,EAAO7O,GAAKmB,EACZnB,GACD,CAGF,CAFC,MAAOuZ,GACP,MAAM,IAAIoE,MAAMkoN,GAAcrxB,EAAU3lM,EAAQ0K,EAAOuoK,EAAI7B,SAAS36K,GAAStF,EAAG6D,EAAO6gO,GACxF,CAED,MAAO,CAACp/N,EAAQA,EAAS0gO,EAC1B,CC5FD,SAAS3B,GAAkBtvL,GACzB,OAAOA,CACR,mCAwEM,MAAMkxL,WAAejjI,IAI1BxuF,YAAYggM,EAAU0vB,EAAO/iO,GAGrB,IAH4B+kO,EAG5B,uDAHsC,IAAIljI,KAAO,WACvDxlC,EADuD,cAEvD4nK,EAAgBf,IACV,uDAAJ,CAAC,EACH,MAAM8B,EAAU3oK,GAAc4nK,EAAcpB,GAAaxvB,EAAU0vB,KAC5Dj9L,EAASm/L,GAAiBvkD,GAAM1gL,IAAU+xK,GAAM/xK,GDjCpD,SAAyBqzM,EAAU3lM,EAAQizK,EAA3C,GAA+D,IAAdoiD,EAAOhiN,GAAO,EACpE,MAAMre,EAAQgL,EAAOzQ,OACrB,IAAIkH,EAAS,EACTtF,EAAI,EAER,IACE,KAAOA,EAAI6D,GAAO,CAChB,MAAM1C,EAAQ,IAAI+iO,EAAMlkO,GAAGw0M,EAAU1yB,EAAI7B,SAAS36K,IAClDA,GAAUnE,EAAMqgO,kBAAoBrgO,EAAM4/N,cAC1ClyN,EAAO7O,GAAK,CAACkiB,EAAKliB,GAAImB,GACtBnB,GACD,CAGF,CAFC,MAAOuZ,GACP,MAAM,IAAIoE,MAAMkoN,GAAcrxB,EAAU3lM,EAAQ0K,EAAOuoK,EAAI7B,SAAS36K,GAAStF,EAAG6D,EAAOqgO,EAAMlkO,GAAIkiB,EAAKliB,IACvG,CAED,MAAO,CAAC6O,EAAQvJ,EACjB,CCgBmE+gO,CAAgB7xB,EAAU,IAAI7sM,MAAMw+N,EAAQ,GAAG/nO,QAAS4jL,GAAS7gL,GAAQglO,GAAWhlO,aAAiB8kO,GAAS,CAAC9kO,EAAO,GA7E1L,SAAgCqzM,EAAhC,EAAyDrzM,EAAO+kO,GAAS,IACnEI,GADqCpC,EAAOhiN,GAAuB,EAEvE,MAAMqkN,EAAc5+N,MAAM4G,QAAQpN,GAC5BqlO,EAAYrlO,aAAiB6hG,IAEnC,KAAKujI,GAAgBC,GAAc9uG,GAASv2H,IAC1C,MAAM,IAAIwc,MAAJ,sCAAyCjZ,GAAUvD,GAAnD,2BAA4EA,EAA5E,8CACD,GAAIolO,GAAeplO,EAAM/C,SAAW8jB,EAAK9jB,OAC9C,MAAM,IAAIuf,MAAJ,gCAAmCjZ,GAAUvD,GAA7C,4CAAuF+gB,EAAKtd,KAAK,QAGzG,MAAMwK,EAAM,IAAIzH,MAAMua,EAAK9jB,QAE3B,IAAK,IAAI4B,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAAK,CACpC,MAAMf,EAAMijB,EAAKliB,GACXymO,EAAUP,EAAQl/N,IAAI/H,IAAQA,EAC9BylO,EAAOR,EAAMlkO,GACnB,IAAIgB,EAEJ,IACE,GAAIulO,EACFvlO,EAASG,EAAMnB,QACV,GAAIwmO,EACTxlO,EAASylO,GAAWtlO,EAAM6F,IAAIy/N,QAI9B,GAFAzlO,EAASylO,GAAWtlO,EAAMslO,GAEtB3M,GAAY94N,GAAS,CACvB,GAAI84N,GAAYwM,GAAU,CACxB,MAAMhnK,EAAUr+D,OAAOq+D,QAAQn+D,GAC/BmlO,EAAU,CAAC,EAEX,IAAK,IAAIhmO,EAAI,EAAGA,EAAIg/D,EAAQlhE,OAAQkC,IAClCgmO,EAAQ1C,GAAgBtkK,EAAQh/D,GAAG,KAAOg/D,EAAQh/D,GAAG,EAExD,CAEDU,EAASylO,GAAWH,EAAQG,EAC7B,CAGHr3N,EAAIpP,GAAK,CAACf,EAAK+B,aAAkB0jO,EAAO1jO,EAAS,IAAI0jO,EAAKlwB,EAAUxzM,GAUrE,CATC,MAAOuY,GACP,IAAI1W,EAAO6hO,EAAK17N,KAEhB,IACEnG,EAAO,IAAI6hO,EAAKlwB,GAAU6f,WAE3B,CADC,MAAO96M,GACR,CAED,MAAM,IAAIoE,MAAJ,4BAA+B8oN,EAA/B,aAA2C5jO,EAA3C,cAAqD0W,EAAMK,SAClE,CACF,CAED,MAAO,CAACxK,EAAK,EACd,CAsB8Ls3N,CAAuBlyB,EAAU2xB,EAAShlO,GAAS,CAAC,EAAG+kO,GAClPnqN,MAAMkrB,GAHA,8EAINlpC,KAAKyjO,iBAAmB4E,EACxBroO,KAAKy2M,SAAWA,EAChB,GAAAz2M,KAAA,GAAgBmoO,GAChB,GAAAnoO,KAAA,GAAcooO,EACf,CAEU,YAACjC,EAAOgC,GACjB,IAAIZ,EAEJ,IAAI9nK,EAEJ,MAAM4nK,EAAgBrwL,GAAKyoB,EAAazoB,EAExC,OAAOuwL,EAAS,cAAcW,GAC5BzxN,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU0vB,EAAO/iO,EAAO+kO,EAAS,CACrC1oK,aACA4nK,iBAEH,GAEA,MACD,MAAMljN,EAAOjhB,OAAOihB,KAAKgiN,GACzB3D,GAAiB+E,EAAOnmO,UAAW+iB,GAAM,CAAC9b,EAAGqc,EAAG2jB,IAASA,EAAKp/B,IAAIZ,IAFjE,KAGGk/N,CACP,CAMGK,cACF,OAAO,GAAA5nO,KAAA,IAAY,EACpB,CAMG++D,cACF,IAAK,MAAMt+C,KAAKzgB,KAAK4e,SACnB,IAAK6B,EAAEs+C,QACL,OAAO,EAIX,OAAO,CACR,CAMGikK,oBACF,IAAIlxM,EAAQ,EAEZ,IAAK,MAAMrR,KAAKzgB,KAAK4e,SACnBkT,GAASrR,EAAEuiN,cAGb,OAAOlxM,CACR,CAMG/qB,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGuS,WACF,MAAM71N,EAAS,CAAC,GACTq1N,EAAOhiN,GAAR,GAAgBnkB,KAAhB,IAEN,IAAK,IAAIiC,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAC/B6O,EAAOqT,EAAKliB,IAAM,IAAIkkO,EAAMlkO,GAAGjC,KAAKy2M,UAAU6f,YAGhD,OAAOxlN,CACR,CAMD8d,GAAGjB,GACD,OAAOk1M,GAAW7iO,KAAM2tB,EACzB,CAOD1kB,IAAI/H,GACF,OAAO8c,MAAM/U,IAAI/H,EAClB,CAMD0nO,WAAWhlO,GACT,OAAO5D,KAAK+pC,UAAUnmC,EACvB,CAMDq/N,KAAK/hO,GACH,OAAO8c,MAAM/U,IAAI/H,EAClB,CAMDwzC,QAAQyuL,GACN,MAAMp8I,EAAQ,IAAIn9E,MAElB,IAAK,MAAOvB,EAAGoY,KAAMzgB,KAAKuhE,UACxBwlB,EAAMnmF,KAAK,IAAK6f,EAAEi0B,SAASyuL,GAAUnvB,GAAUmvB,GAAUA,EAASA,EAAO96N,IACvE4C,KAAM46N,GAAgBx9N,KAI1B,MAAO,CACL0+E,QAEH,CAMDh9C,UACE,MAAO,IAAI/pC,KAAK4e,SACjB,CAMDsQ,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDuC,QAAQ2O,GACN,MAAMjvN,EAAO,CAAC,EAEd,IAAK,MAAOhO,EAAGoY,KAAMzgB,KAAKuhE,UACxBlrD,EAAKhO,GAAKoY,GAAKA,EAAEk2M,QAAQ2O,GAG3B,OAAOjvN,CACR,CAMD4Y,SACE,MAAM5Y,EAAO,CAAC,EAEd,IAAK,MAAOhO,EAAGoY,KAAMzgB,KAAKuhE,UAAW,CAInClrD,EAHgB,GAAArW,KAAA,IAAciJ,IAAIZ,IAAMA,GAGxBoY,GAAKA,EAAEwO,QACxB,CAED,OAAO5Y,CACR,CAMD6sN,cACE,MAAM7sN,EAAO,CAAC,EAEd,IAAK,MAAOhO,EAAGoY,KAAMzgB,KAAKuhE,UAAW,CAInClrD,EAHgB,GAAArW,KAAA,IAAciJ,IAAIZ,IAAMA,GAGxBoY,GAAKA,EAAEyiN,aACxB,CAED,OAAO7sN,CACR,CAMDigN,YACE,OAAO3vN,GAAUu/N,GAAWlmO,KAAKy2M,SAAN,GAAgBz2M,KAAhB,KAC5B,CAMDsM,WACE,OAAO3F,GAAU3G,KAAKivB,SACvB,CAODmlM,MAAM+O,GACJ,MAAM14B,EAAU,GAEhB,IAAK,MAAOpiM,EAAGoY,KAAMzgB,KAAKuhE,UACpB9gD,GAAKi5G,GAAWj5G,EAAE2zM,QACpB3pB,EAAQ7pM,KAAK6f,EAAE2zM,OAAO+O,GAAUnvB,GAAUmvB,GAAUA,EAASA,EAAO96N,KAIxE,OAAOszL,GAAgB8O,EACxB,EC7TH,SAAS5f,GAAYx/K,GACnB,OAAOA,aAAe8Q,YAAcvS,MAAM4G,QAAQnF,EACnD,CAID,SAASw9N,GAAQx9N,GACf,OAAOquH,GAAWruH,GAAOA,EAAI+oN,MAC9B,CAID,SAAS0U,GAAOz9N,GACd,OAAOw9N,GAAQx9N,IAAQ6wN,GAAS7wN,EAAIzH,QAAUilO,GAAQx9N,EAAIjI,MAC3D,CAID,SAAS2lO,GAAa19N,GACpB,OAAO6wN,GAAS7wN,IAAQ2vN,GAAK3vN,IAAQqqK,GAASrqK,EAC/C,CA0BM,SAAS29N,GAAQl2M,EAAGC,GACzB,GAAIg2M,GAAaj2M,IAAMi2M,GAAah2M,GAClC,OAAOgjJ,GAAOjjJ,GAAG+b,IAAIknI,GAAOhjJ,IACvB,GAAID,aAAamyE,KAAOlyE,aAAakyE,IAC1C,OAAO+jI,GAAQp/N,MAAM9G,KAAKgwB,EAAElU,UAAWhV,MAAM9G,KAAKiwB,EAAEnU,WAC/C,GAAIkqN,GAAOh2M,IAAMg2M,GAAO/1M,GAC7B,OAAOi2M,GAAQl2M,EAAElvB,MAAOmvB,EAAEnvB,QAAUolO,GAAQl2M,EAAE1vB,MAAO2vB,EAAE3vB,OAClD,GAAIynL,GAAY/3J,IAAM+3J,GAAY93J,GACvC,OA9BJ,SAAmBD,EAAGC,GAEpB,IAAIk2M,EAAU,EACd,MAAMC,EAASrmO,KAAKg7D,IAAI/qC,EAAEzyB,OAAQ0yB,EAAE1yB,QAEpC,IAAK,IAAI4B,EAAI,EAAGA,EAAIinO,IAAUjnO,EAG5B,GAFAgnO,EAAUD,GAAQl2M,EAAE7wB,GAAI8wB,EAAE9wB,IAEV,IAAZgnO,EACF,OAAOA,EAIX,OAAOn2M,EAAEzyB,OAAS0yB,EAAE1yB,MACrB,CAgBU8oO,CAAUr2M,EAAGC,GACf,GAAI81M,GAAQ/1M,IAAM+1M,GAAQ91M,GAE/B,OAAOi2M,GAAQl2M,EAAEshM,OAAM,GAAOrhM,EAAEqhM,OAAM,IAGxC,MAAM,IAAIx0M,MAAJ,kDAAqDjZ,GAAUmsB,GAA/D,2BAAoFA,EAApF,iBAA8FnsB,GAAUosB,GAAxG,2BAA6HA,EAA7H,KACP,CC1DD,MAAMgU,GAAI7xB,GAAO,OAuBjB,SAASk0N,GAAiB3yB,EAAU4yB,EAAUC,EAAUlmO,GACtD,MAAMsD,EAAS,IAAIu+F,IAEnB,IAAK,MAAO/jG,EAAKswB,KAAQpuB,EAAMm+D,UAAW,CACxC,MAAMgoK,EAAYF,EAASjoO,qBAAqBgkO,IAAiBiE,EAASjoO,qBAAqB8mO,IAAUmB,EAASjoO,qBAAqBgmO,GAEvI,IACE1gO,EAAOwC,IAAIhI,aAAemoO,EAAWnoO,EAAM,IAAImoO,EAAS5yB,EAAU8yB,GAA4B,kBAARroO,EAAmBqW,KAAKtQ,MAAM/F,GAAOA,GAAMswB,aAAe83M,EAAW93M,EAAM,IAAI83M,EAAS7yB,EAAUjlL,GAIzL,CAHC,MAAOhW,GAEP,MADAurB,GAAEvrB,MAAM,iCAAkCA,EAAMK,SAC1CL,CACP,CACF,CAED,MAAO,CAAC6tN,EAAUC,EAAU5iO,EAAQ,EACrC,CAkBD,SAAS8iO,GAAU/yB,EAAUgzB,EAASC,EAAStmO,GAC7C,MAAMimO,EAAWtD,GAAkBtvB,EAAUgzB,GACvCH,EAAWvD,GAAkBtvB,EAAUizB,GAE7C,IAAKtmO,EACH,MAAO,CAACimO,EAAUC,EAAU,IAAIrkI,IAAO,GAClC,GAAI6+E,GAAM1gL,IAAU+xK,GAAM/xK,GAC/B,OA5DJ,SAA0BqzM,EAAU4yB,EAAUC,EAAUvlD,GACtD,MAAMr9K,EAAS,IAAIu+F,KACZ19F,EAAQzB,GAASk+N,GAAkBjgD,GACpCpiK,EAAQ,GAEd,IAAK,IAAI1f,EAAI,EAAGA,EAAI6D,EAAO7D,IACzB0f,EAAM/gB,KAAKyoO,EAAUC,GAGvB,MAAO1qN,EAAQypN,GAAiBN,GAAUtxB,EAAU,IAAI7sM,MAAM+X,EAAMthB,QAAS0jL,EAAI7B,SAAS36K,GAAS,CAACoa,EAAO,KAE3G,IAAK,IAAI1f,EAAI,EAAGA,EAAI2c,EAAOve,OAAQ4B,GAAK,EACtCyE,EAAOwC,IAAI0V,EAAO3c,GAAI2c,EAAO3c,EAAI,IAGnC,MAAO,CAAConO,EAAUC,EAAU5iO,EAAQa,EAAS8gO,EAC9C,CA4CUsB,CAAiBlzB,EAAU4yB,EAAUC,EAAUrlD,GAAS7gL,IAC1D,GAAIA,aAAiB6hG,IAC1B,OAAOmkI,GAAiB3yB,EAAU4yB,EAAUC,EAAUlmO,GACjD,GAAIu2H,GAASv2H,GAClB,OAAOgmO,GAAiB3yB,EAAU4yB,EAAUC,EAAU,IAAIrkI,IAAI/hG,OAAOq+D,QAAQn+D,KAG/E,MAAM,IAAIwc,MAAM,0BACjB,kDAEM,MAAMgqN,WAAiB3kI,IAK5BxuF,YAAYggM,EAAUgzB,EAASC,EAASG,GAA4B,IAAlB/kO,EAAkB,uDAAX,UACvD,MAAOukO,EAAUC,EAAUpgM,EAASm/L,GAAiBmB,GAAU/yB,EAAUgzB,EAASC,EAASG,GAC3F7rN,MAAe,aAATlZ,EDlBH,SAAiBwE,GACtB,OAAO,IAAI27F,IAAIr7F,MAAM9G,KAAKwG,EAAIi4D,WAAW1sC,MAAK,CAAC,EAAD,SAAEi1M,GAAF,GAAUC,GAAV,SAAoBf,GAAQc,EAAMC,EAAlC,IAC/C,CCgB+BC,CAAQ9gM,GAAWA,GAFmB,qHAGlElpC,KAAKy2M,SAAWA,EAChBz2M,KAAKyjO,iBAAmB4E,EACxB,GAAAroO,KAAA,GAAiBqpO,GACjB,GAAArpO,KAAA,GAAiBspO,GACjB,GAAAtpO,KAAA,GAAa8E,EACd,CAMGk+N,oBACF,IAAI32N,EAAM64N,GAAallO,KAAKmI,MAAM9H,OAElC,IAAK,MAAOgI,EAAGoY,KAAMzgB,KAAKuhE,UACxBl1D,GAAOhE,EAAE26N,cAAgBviN,EAAEuiN,cAG7B,OAAO32N,CACR,CAMGtF,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAqB,IAAd/+D,KAAKmI,IACb,CAMDymB,GAAGjB,GACD,OAAOk1M,GAAW7iO,KAAM2tB,EACzB,CAMD+mB,UACE,MAAMqyC,EAAQ,IAAIn9E,MAElB,IAAK,MAAOvB,EAAGoY,KAAMzgB,KAAKuhE,UACxBwlB,EAAMnmF,KAAKyH,EAAEqsC,WACbqyC,EAAMnmF,KAAK6f,EAAEi0B,WAGf,MAAO,CACLqyC,QACAC,MAAO,CAACk+I,GAAallO,KAAKmI,OAE7B,CAMD+mB,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDuC,QAAQ2O,GACN,MAAMjvN,EAAO,CAAC,EAEd,IAAK,MAAOhO,EAAGoY,KAAMzgB,KAAKuhE,UACxBlrD,EAAKhO,aAAak7N,IAAOl7N,EAAEg7N,QAAUh7N,EAAEs7N,SAAWt7N,EAAEiE,YAAcmU,EAAEk2M,QAAQ2O,GAG9E,OAAOjvN,CACR,CAMD4Y,SACE,MAAM5Y,EAAO,CAAC,EAEd,IAAK,MAAOhO,EAAGoY,KAAMzgB,KAAKuhE,UACxBlrD,EAAKhO,EAAEiE,YAAcmU,EAAEwO,SAGzB,OAAO5Y,CACR,CAMD6sN,cACE,MAAM7sN,EAAO,CAAC,EAEd,IAAK,MAAOhO,EAAGoY,KAAMzgB,KAAKuhE,UACxBlrD,EAAKhO,aAAak7N,IAAOl7N,EAAEg7N,QAAUh7N,EAAEs7N,SAAWt7N,EAAEiE,YAAcmU,EAAEyiN,cAGtE,OAAO7sN,CACR,CAMDigN,YACE,MAAO,GAAP,UAAUt2N,KAAV,gBAAwBA,KAAKy2M,SAAS2vB,aAAd,GAA2BpmO,KAA3B,MAA8C,OAAIA,KAAJ,KAAmBA,KAAKy2M,UAAU6f,YAAxG,YAAuHt2N,KAAKy2M,SAAS2vB,aAAd,GAA2BpmO,KAA3B,MAA8C,OAAIA,KAAJ,KAAmBA,KAAKy2M,UAAU6f,YAAvM,IACD,CAMDhqN,WACE,OAAO3F,GAAU3G,KAAKivB,SACvB,CAODmlM,MAAM+O,GACJ,MAAM14B,EAAU,IAAI7gM,MAEfu5N,GACH14B,EAAQ7pM,KAAKskO,GAAallO,KAAKmI,OAGjC,IAAK,MAAOE,EAAGoY,KAAMzgB,KAAKuhE,UACxBkpI,EAAQ7pM,KAAKyH,EAAE+rN,MAAM+O,GAAS1iN,EAAE2zM,MAAM+O,IAGxC,OAAOxnC,GAAgB8O,EACxB,ECxOI,MAAMw/B,WAAiBL,GACjB,YAACH,EAASC,GACnB,OAAO,cAAcO,GACnBxzN,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUgzB,EAASC,EAAStmO,EAAO,WAC1C,EAGJ,ECPH,SAAS8mO,GAAgBp3M,EAAGC,GAE1B,OAAOD,EAAE3qB,OAAS4qB,EAAE1yB,SAAW0yB,EAAE6vG,MAAKrgI,IAAMuwB,EAAEqD,IAAI5zB,IACnD,CCHD,MAAMwkC,GAAI7xB,GAAO,YA8CjB,SAASi1N,GAAU1zB,EAAUizB,EAAStmO,GACpC,MAAMkmO,EAAWvD,GAAkBtvB,EAAUizB,GAE7C,IAAKtmO,EACH,MAAO,CAACkmO,EAAU,IAAIj1M,IAAO,GACxB,GAAIyvJ,GAAM1gL,IAAU+xK,GAAM/xK,GAC/B,OAjDJ,SAA0BqzM,EAAU6yB,EAAUvlD,GAC5C,MAAMr9K,EAAS,IAAI2tB,KACZ9sB,EAAQzB,GAASk+N,GAAkBjgD,GACpCjzK,EAAS,IAAIlH,MAAM9D,IAClBuiO,GAAiBL,GAAavxB,EAAU3lM,EAAQizK,EAAKx8K,EAAQ+hO,GAEpE,IAAK,IAAIrnO,EAAI,EAAGA,EAAI6D,EAAO7D,IACzByE,EAAOsa,IAAIlQ,EAAO7O,IAGpB,MAAO,CAACqnO,EAAU5iO,EAAQ2hO,EAC3B,CAsCU+B,CAAiB3zB,EAAU6yB,EAAUrlD,GAAS7gL,IAChD,GAAIwG,MAAM4G,QAAQpN,IAAUA,aAAiBixB,IAClD,OApCJ,SAA0BoiL,EAAU6yB,EAAUlmO,GAC5C,MAAMsD,EAAS,IAAI2tB,IASnB,OARAjxB,EAAM7B,SAAQiwB,IACZ,IACE9qB,EAAOsa,IAAIwQ,aAAe83M,EAAW93M,EAAM,IAAI83M,EAAS7yB,EAAUjlL,GAInE,CAHC,MAAOhW,GAEP,MADAurB,GAAEvrB,MAAM,iCAAkCA,EAAMK,SAC1CL,CACP,KAEI,CAAC8tN,EAAU5iO,EAAQ,EAC3B,CAyBU2jO,CAAiB5zB,EAAU6yB,EAAUlmO,GAG9C,MAAM,IAAIwc,MAAM,+BACjB,oBAEM,MAAM0qN,WAAiBj2M,IAG5B5d,YAAYggM,EAAUizB,EAASG,GAC7B,MAAOP,EAAU1qN,EAAQypN,GAAiB8B,GAAU1zB,EAAUizB,EAASG,GJDpE,IAAiB3gO,EIEpB8U,OJFoB9U,EIEN0V,EJDT,IAAIyV,IAAIzqB,MAAM9G,KAAKoG,GAAK2rB,KAAKm0M,OIDK,uCAGvChpO,KAAKy2M,SAAWA,EAChBz2M,KAAKyjO,iBAAmB4E,EACxB,GAAAroO,KAAA,GAAiBspO,EAClB,CAEU,YAACI,GACV,OAAO,cAAcY,GACnB7zN,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUizB,EAAStmO,EAC1B,EAGJ,CAMG4/N,oBACF,IAAI32N,EAAM64N,GAAallO,KAAKmI,MAAM9H,OAElC,IAAK,MAAMogB,KAAKzgB,KAAK4e,SACnBvS,GAAOoU,EAAEuiN,cAGX,OAAO32N,CACR,CAMGtF,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAqB,IAAd/+D,KAAKmI,IACb,CAMGiJ,cACF,MAAO,IAAI4M,MAAMY,UAAUtV,KAAImX,GAAKA,EAAEnU,YACvC,CAMDsiB,GAAGjB,GACD,ODpHuBmF,ECoHL9yB,KDpHQ+yB,ECoHFpF,EDnHtB/jB,MAAM4G,QAAQuiB,GACTm3M,GAAgBp3M,EAAGC,GACjBA,aAAasB,IACf61M,GAAgBp3M,EAAG,IAAIC,EAAEnU,aACvB+6G,GAAS5mG,IACXm3M,GAAgBp3M,EAAG5vB,OAAO0b,OAAOmU,IANrC,IAAoBD,EAAGC,CCqH3B,CAMD2hB,UACE,MAAMqyC,EAAQ,IAAIn9E,MAElB,IAAK,MAAM6W,KAAKzgB,KAAK4e,SACnBmoE,EAAMnmF,KAAK6f,EAAEi0B,WAGf,MAAO,CACLqyC,QACAC,MAAO,CAACk+I,GAAallO,KAAKmI,OAE7B,CAMD+mB,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDuC,QAAQ2O,GACN,MAAMjvN,EAAO,GAEb,IAAK,MAAMoK,KAAKzgB,KAAK4e,SACnBvI,EAAKzV,KAAK6f,EAAEk2M,QAAQ2O,IAGtB,OAAOjvN,CACR,CAMD4Y,SACE,MAAM5Y,EAAO,GAEb,IAAK,MAAMoK,KAAKzgB,KAAK4e,SACnBvI,EAAKzV,KAAK6f,EAAEwO,UAGd,OAAO5Y,CACR,CAMDigN,YACE,MAAO,YAAP,OAAmBt2N,KAAKy2M,SAAS2vB,aAAd,GAA2BpmO,KAA3B,MAA8C,OAAIA,KAAJ,KAAmBA,KAAKy2M,UAAU6f,YAAnG,IACD,CAMD4M,cACE,MAAM7sN,EAAO,GAEb,IAAK,MAAMoK,KAAKzgB,KAAK4e,SACnBvI,EAAKzV,KAAK6f,EAAEyiN,eAGd,OAAO7sN,CACR,CAMD/J,WACE,OAAO3F,GAAU3G,KAAKivB,SACvB,CAODmlM,MAAM+O,GACJ,MAAM14B,EAAU,IAAI7gM,MAEfu5N,GACH14B,EAAQ7pM,KAAKskO,GAAallO,KAAKmI,OAGjC,IAAK,MAAMsY,KAAKzgB,KAAK4e,SACnB6rL,EAAQ7pM,KAAK6f,EAAE2zM,MAAM+O,IAGvB,OAAOxnC,GAAgB8O,EACxB,ECjOH,SAAS67B,GAAkBtvL,GACzB,OAAOA,CACR,mCAyBM,MAAMuzL,GAIX9zN,YAAYggM,EAAUkwB,GAGd,IAHoBvjO,EAGpB,uDAH4B,GAAG,WACrCq8D,EADqC,cAErC4nK,EAAgBf,IACV,uDAAJ,CAAC,EAAG,8EACNtmO,KAAKy2M,SAAWA,EAChB,GAAAz2M,KAAA,GAAay/D,GAAc4nK,EAActB,GAAkBtvB,EAAUkwB,KACrE,MAAOt1N,EAAKg3N,GAjChB,SAAuB5xB,EAAUkwB,EAAMvjO,GACrC,GAAI0gL,GAAM1gL,GAAQ,CAChB,MAAOilO,EAAe5yD,IAAkB,EAAXryK,EAAM,IAAa,EAAO4gO,GAAkB5gO,GAAS2gO,GAAe3gO,GACjG,MAAO,CAAC,IAAIujO,EAAKlwB,EAAUhhC,GAAK4yD,EACjC,CAAM,GAAIjlO,aAAiBmnO,GAAS,CACnC,MAAMl5N,EAAMjO,EAAMonO,SAClB,OAAOn5N,aAAes1N,EAAO,CAACt1N,EAAK,GAAK,CAAC,IAAIs1N,EAAKlwB,EAAUplM,GAAM,EACnE,CAAM,OAAIjO,aAAiBujO,EACnB,CAACvjO,EAAO,GAGV,CAAC,IAAIujO,EAAKlwB,EAAUrzM,GAAQ,EACpC,CAqBgCqnO,CAAch0B,EAAD,GAAWz2M,KAAX,IAAuBoD,GACjEpD,KAAKyjO,iBAAmB4E,EACxB,GAAAroO,KAAA,GAAYqR,EACb,CAEU,YAACs1N,GACV,IAAIlnK,EAEJ,MAAM4nK,EAAgBrwL,GAAKyoB,EAAazoB,EAExC,OAAO,cAAcuzL,GACnB9zN,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUkwB,EAAMvjO,EAAO,CAC3Bq8D,aACA4nK,iBAEH,EAGJ,CAMGrE,oBACF,OAAOhjO,KAAKo0N,QAAQ/zN,MACrB,CAMG0G,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAO,GAAA/+D,KAAA,IAAU++D,OAClB,CAMDt0B,YACE,OAAO,GAAAzqC,KAAA,IAAUyqC,WAClB,CAMD7b,GAAGjB,GACD,OAAO,GAAA3tB,KAAA,IAAU4uB,GAAGjB,aAAiB48M,GAAjB,GAA2B58M,EAA3B,IAAwCA,EAC7D,CAMD+mB,UACE,MAAO,CACLsyC,MAAO,CAAChnF,KAAKo0N,SAEhB,CAMDrlM,WACE,OAAO,GAAA/uB,KAAA,IAAU+uB,UAClB,CAMDinJ,OACE,OAAO,GAAAh2K,KAAA,IAAUg2K,MAClB,CAMD9mJ,MAAMqmJ,GACJ,OAAO,GAAAv1K,KAAA,IAAUkvB,MAAMqmJ,EACxB,CAMDohD,QAAQ2O,GACN,OAAO,GAAAtlO,KAAA,IAAU22N,QAAQ2O,EAC1B,CAMDr2M,SACE,OAAO,GAAAjvB,KAAA,IAAUivB,QAClB,CAMDzU,WACE,OAAO,GAAAxa,KAAA,IAAUwa,UAClB,CAMD0oN,cACE,OAAO,GAAAljO,KAAA,IAAUkjO,aAClB,CAMD5M,YACE,MAAO,WAAP,OAAkBt2N,KAAKy2M,SAAS2vB,aAAd,GAA2BpmO,KAA3B,MAA0C,GAAAA,KAAA,IAAUs2N,YAAtE,IACD,CAMDhqN,WACE,OAAO,GAAAtM,KAAA,IAAUsM,UAClB,CAQD8nN,MAAM+O,GACJ,OAAO+B,GAAa,GAAAllO,KAAA,IAAUg2K,OAC/B,CAMDw0D,SACE,OAAO,GAAAxqO,KAAP,GACD,ECtMI,MAAM0qO,WAAgBd,GAChB,YAACH,EAASC,GACnB,OAAO,cAAcgB,GACnBj0N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUgzB,EAASC,EAAStmO,EACnC,EAGJ,ECPH,MAAMunO,GAAW,OCKV,SAASnoL,GAAap/C,GAC3B,OAAO8wM,GAAcn+B,GAAO3yK,GAAOkJ,WACpC,CCRM,MAIDs+N,GAAQ,IAAI79M,GAAG,KACf89M,GAAa,CAAC,CAAC,cAAetG,IAAc,CAAC,UAAWD,IAAa,CAAC,UAAWD,IAAa,CAAC,UAAWD,KAQhH,SAAS0G,GAAkB1nO,EAAOgrB,GAChC,GAAI8tM,GAAS94N,GAAQ,CACnB,IAAKo7D,OAAOhvC,UAAUpsB,IAAUA,EAAQo7D,OAAOimK,kBAAoBrhO,EAAQo7D,OAAOusK,iBAChF,MAAM,IAAInrN,MAAM,6EAGlB,OAAOxc,CACR,CAAM,GAAIotL,GAASptL,GAAQ,CAC1B,GAAI+xK,GAAM/xK,GAAQ,GAAG,GACnB,OAAOkyK,GAAQlyK,EAAO,CACpBmyK,MAAM,EACNnnJ,eACC9hB,WAGL,GAAIlJ,EAAM83F,SAAS,MAAQ93F,EAAM83F,SAAS,MAAQ93F,EAAM83F,SAAS,KAC/D,MAAM,IAAIt7E,MAAM,mEAGlB,OAAOxc,CACR,CAAM,GAAI43N,GAAK53N,GACd,OAAOA,EAAMkJ,WACR,GAAIqtH,GAASv2H,KAAWs2H,GAAWt2H,EAAM4yK,MAAO,CAIrD,MAAM7xJ,EAAOjhB,OAAOihB,KAAK/gB,GAEzB,GAAoB,IAAhB+gB,EAAK9jB,OACP,MAAM,IAAIuf,MAAM,oDAGlB,MAAMmnE,EAAQ3jF,EAAM+gB,EAAK,IAEzB,IAAKqsK,GAASzpG,KAAWm1I,GAASn1I,GAChC,MAAM,IAAInnE,MAAM,oEAGlB,OAAOkrN,GAAkB/jJ,EAAO34D,EACjC,CAED,OAAO2nJ,GAAO3yK,GAAOkJ,UACtB,oBAQM,MAAM0+N,WAAoBj+M,GAG/BtW,YAAYggM,GAAsE,IAA5DrzM,EAA4D,uDAApD,EAAGqnC,EAAiD,uDAlEnD,GAkEiCwgM,EAAkB,wDAIhFjtN,MACA8lK,GAAM1gL,GAASqnC,GAAa,GCnEzB,SAAqBrnC,GAEpB,IAF2B,WACjCgrB,GAAa,GACP,uDAAJ,CAAC,EACH,MAAMtoB,EAAQ1C,EAAM/C,OAEpB,GAAI+tB,EAAY,CACd,IAAItd,EAAS,EAEb,OAAQhL,GACN,KAAK,EACH,OAAO,EAET,KAAK,EACHgL,EAAoB,IAAX1N,EAAM,GACf,MAEF,KAAK,EACH0N,EAAS1N,EAAM,IAAMA,EAAM,IAAM,GAAK,MACtC,MAEF,KAAK,EACH0N,EAAS1N,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAM,SACzD,MAEF,KAAK,EAGH0N,EAAS1N,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAiB,SAAXA,EAAM,GAAiB,WAChF,MAEF,KAAK,EACH0N,GAAU1N,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAiB,SAAXA,EAAM,GAAiB,YAAkC,YAAR,IAAXA,EAAM,IACtG,MAEF,KAAK,EACH0N,GAAU1N,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAiB,SAAXA,EAAM,GAAiB,YAA0D,YAA3CA,EAAM,IAAMA,EAAM,IAAM,GAAK,OAC7H,MAEF,QACE,MAAM,IAAIwc,MAAM,wDAGpB,OAAiB,EAAV9O,EAAc,CACtB,CAED,OAAQhL,GACN,KAAK,EACH,OAAO,EAET,KAAK,EACH,OAAO1C,EAAM,GAEf,KAAK,EACH,OAAOA,EAAM,IAAMA,EAAM,IAAM,GAEjC,KAAK,EACH,OAAOA,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAEnD,KAAK,EAGH,OAAOA,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAiB,SAAXA,EAAM,GAE/D,KAAK,EACH,OAAOA,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAqC,UAA9BA,EAAM,IAAMA,EAAM,IAAM,IAElF,KAAK,EACH,OAAOA,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAwD,UAAjDA,EAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,IAAM,KAEpG,QACE,MAAM,IAAIwc,MAAM,wDAErB,CDLoCsrN,CAAY9nO,EAAM8+K,SAAS,EAAGz3I,EAAY,GAAI,CAC7Erc,WAAY68M,IACTnH,GAAQ1gO,EAAM8+K,SAAS,EAAGz3I,EAAY,GAAI,CAC7C8qI,MAAM,EACNnnJ,WAAY68M,IACX3+N,WAAaw+N,GAAkB1nO,EAAO6nO,IAVuC,uCAWhFjrO,KAAKy2M,SAAWA,EAChB,GAAAz2M,KAAA,GAAkByqC,GAClBzqC,KAAKgjO,cAAgB,GAAAhjO,KAAA,IAAkB,EACvCA,KAAKmrO,YAAcF,EACnB,MAAM78M,EAAapuB,KAAKguB,QAClBo9M,EAAU3gM,GAAawgM,IAAa78M,EAAa,EAAI,GAE3D,GAAIA,IAAe68M,EACjB,MAAM,IAAIrrN,MAAJ,UAAa5f,KAAKs2N,YAAlB,8CACD,GAAIt4M,MAAMysB,YAAc2gM,EAC7B,MAAM,IAAIxrN,MAAJ,UAAa5f,KAAKs2N,YAAlB,+CAAoEt4M,MAAMysB,YAA1E,2BAAwG2gM,GAEjH,CAMGrkO,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAO/+D,KAAKkgB,QACb,CAMDuqB,YACE,OAAO,GAAAzqC,KAAP,GACD,CAOD4uB,GAAGjB,GAGD,OAAO3P,MAAM4Q,GAAGumJ,GAAMxnJ,GAAS2nJ,GAAQ3nJ,EAAMrhB,WAAY,CACvDipK,MAAM,EACNnnJ,YAAapuB,KAAKmrO,aACfp1D,GAAOpoJ,GACb,CAMD+mB,UACE,MAAO,CACLsyC,MAAO,CAAChnF,KAAKo0N,SAEhB,CAMDiX,QAEE,OADYrrO,KAAKo0N,QAAQhxM,QAAO2P,GAAW,MAANA,IAC1B1yB,SAAW,GAAAL,KAAA,IAAkB,CACzC,CAMD+uB,WACE,OAAOC,OAAOhvB,KAAKsM,WACpB,CAMD0pK,OACE,OAAOh2K,IACR,CAMDkvB,QAAoB,IAAdqmJ,EAAc,wDAElB,OFxJG,SAAiBnyK,GAIhB,IAJuB,UAC7BqnC,GAAY,EADiB,KAE7B8qI,GAAO,EAFsB,WAG7BnnJ,GAAa,GACP,uDAAJ,CAAC,EACH,OAAQhrB,EAAmBkmM,GAASq7B,GAAQvhO,EAAO,CACjDqnC,YACA8qI,OACAnnJ,gBAHcu8M,EAKjB,CE8IUW,CAAQtrO,KAAM,CACnByqC,UAAWzqC,KAAKyqC,YAChB8qI,OACAnnJ,YAAapuB,KAAKmrO,YAErB,CAODxU,QAAQQ,GACN,MAAMoU,EAAUvrO,KAAKs2N,YAErB,GAAgB,YAAZiV,EACF,OAAOvrO,KAAKqrO,QAAU,aAEpBn2B,GAAcl1M,KAAM,CACpB+jD,SAAU/jD,KAAKy2M,SAASC,cAAc,GACtC5B,QAAQ,EACRE,SAAUh1M,KAAKy2M,SAASE,YAAY,KAIxC,MAAO,CAAE60B,GAAWX,GAAWp0M,MAAK,QAAE3xB,GAAF,SAAYA,IAASymO,CAArB,KAAiC,GACrE,OAAOC,EA7LX,SAAsBpoO,EAAOooO,GAC3B,MAAO,GAAP,QAAWpoO,EAAM8d,IAAI0pN,IAAO/8M,IAAI29M,GAAShxN,WAAa,KAAKikD,QAAQ,GAAnE,IACD,CA2LoBgtK,CAAazrO,KAAMwrO,GAAWhpL,GAAaxiD,KAC7D,CAMDivB,SAKE,OALsB,yDAKJjR,MAAMysB,YA7MJ,GA6MoCzqC,KAAKkvB,QAAUlvB,KAAKwa,UAC7E,CAMD0oN,cACE,OAAOllN,MAAMysB,YArNO,GAqNyBzqC,KAAKsM,WAAatM,KAAKwa,UACrE,CAMD87M,YAIE,OAAOt2N,gBAAgBA,KAAKy2M,SAASuvB,kBAAkB,WAAa,UAA7D,UAA4EhmO,KAAKmrO,WAAa,IAAM,KAApG,OAA0GnrO,KAAKyqC,YACvH,CAODn+B,SAASigB,GAEP,OAAOvO,MAAM1R,SAASigB,EACvB,CAQD6nM,MAAM+O,GACJ,OAAOwB,GAAQ3kO,KAAM,CACnByqC,UAAWzqC,KAAKyqC,YAChB8qI,MAAM,EACNnnJ,YAAapuB,KAAKmrO,YAErB,EEjPI,MAAMO,WAAYV,GACvBv0N,YAAYggM,GACVz4L,MAAMy4L,EADoC,uDAAd,EAAc,wCACR,EACnC,CAEU,YAAChsK,EAAWo5L,GACrB,OAAO,cAAc6H,GACnBj1N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUrzM,EAAOqnC,EACxB,CAED6rL,YACE,OAAOuN,GAAY7lN,MAAMs4M,WAC1B,EAGJ,EC3BH,MAAMqV,GAAa/1D,GAAW,QAAS,SACjCg2D,GAAgBh2D,GAAW,OAC1B,SAASizD,GAAQzlO,GACtB,OAAOuoO,GAAWvoO,IAAUwoO,GAAcxoO,EAAMqzM,SACjD,CCDD,SAAS6vB,GAAkBtvL,GACzB,OAAOA,CACR,CAED,MAAM60L,WAAaxF,GAIjB/P,YACE,MAAO,MACR,oCA0CI,MAAMwV,GAIXr1N,YAAYggM,EAAUotB,EAAUzgO,GAGxB,IAH+B,WACrCq8D,EADqC,cAErC4nK,EAAgBf,IACV,uDAAJ,CAAC,EAAG,8EACN,MAAMK,EAAOlnK,GAAc4nK,EAActB,GAAkBtvB,EAAUotB,IAC/D36L,EAAU46I,GAAM1gL,IAAUA,EAAM/C,SAAWwoO,GAAQzlO,GAAsB,IAAbA,EAAM,GAAW,IAAIyoO,GAAKp1B,GAAY,IAAIkwB,EAAKlwB,EAAUrzM,EAAM8+K,SAAS,IA7C9I,SAAsBu0B,EAAUkwB,EAAMvjO,GACpC,OAAIA,aAAiBujO,EAEZvjO,EACEA,aAAiB0oO,GACtB1oO,EAAMA,iBAAiBujO,EAElBvjO,EAAMA,MACJA,EAAMskO,OAER,IAAImE,GAAKp1B,GAIX,IAAIkwB,EAAKlwB,EAAUrzM,EAAMA,OACvB44N,GAAO54N,IAAU24N,GAAY34N,IAAoB,OAAVA,GAAkBA,aAAiByoO,GAE5E,IAAIA,GAAKp1B,GACP3yB,GAAM1gL,GAGPA,EAAM/C,QAAuB,IAAb+C,EAAM,GAAgC,IAAIujO,EAAKlwB,EAAUrzM,EAAM8+K,SAAS,IAAvD,IAAI2pD,GAAKp1B,GAG7C,IAAIkwB,EAAKlwB,EAAUrzM,EAC3B,CAoBmJ2oO,CAAat1B,EAAUkwB,EAAMvjO,GAC7KpD,KAAKy2M,SAAWA,EAChB,GAAAz2M,KAAA,GAAa2mO,GACb,GAAA3mO,KAAA,GAAYkpC,GAERA,GAAWA,EAAQu6L,mBACrBzjO,KAAKyjO,iBAAmB,EAAIv6L,EAAQu6L,iBAEvC,CAEU,YAACkD,GACV,IAAIlnK,EAEJ,MAAM4nK,EAAgBrwL,IACpByoB,EAAazoB,EACNA,GAGT,OAAO,cAAc80L,GACnBr1N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUkwB,EAAMvjO,EAAO,CAC3Bq8D,aACA4nK,iBAEH,EAGJ,CAMGrE,oBAEF,OAAO,EAAI,GAAAhjO,KAAA,IAAUgjO,aACtB,CAMGj8N,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAO/+D,KAAK0nO,MACb,CAMGA,aACF,OAAO,GAAA1nO,KAAA,cAAqB6rO,EAC7B,CAMGG,aACF,OAAQhsO,KAAK0nO,MACd,CAMGtkO,YACF,OAAO,GAAApD,KAAP,GACD,CAMD4uB,GAAGjB,GACD,OAAIA,aAAiBm+M,GACZ9rO,KAAKgsO,SAAWr+M,EAAMq+M,QAAUhsO,KAAKoD,MAAMwrB,GAAGjB,EAAMvqB,OAGtDpD,KAAKoD,MAAMwrB,GAAGjB,EACtB,CAMD+mB,UACE,GAAI10C,KAAK0nO,OACP,MAAO,CACL1gJ,MAAO,CAAC,IAAI7qE,WAAW,CAAC,MAI5B,MAAM,MACJ4qE,EADI,MAEJC,EAAQ,IACN,GAAAhnF,KAAA,IAAU00C,UACd,MAAO,CACLqyC,QACAC,MAAO,CAAC,IAAI7qE,WAAW,CAAC,OAAQ6qE,GAEnC,CAMD93D,QAGE,OAAOlvB,KAAK0nO,OAAS,KAAOp+B,GAAStpM,KAAKo0N,QAAQlyC,SAAS,GAC5D,CAMDy0C,QAAQ2O,GACN,OAAO,GAAAtlO,KAAA,IAAU22N,QAAQ2O,EAC1B,CAMDr2M,SACE,OAAOjvB,KAAK0nO,OAAS,KAAO,GAAA1nO,KAAA,IAAUivB,QACvC,CAMDi0M,cACE,OAAOljO,KAAK0nO,OAAS,KAAO,GAAA1nO,KAAA,IAAUkjO,aACvC,CAMD5M,UAAU6M,GACR,MAAM3jB,EAAUx/M,KAAKy2M,SAAS2vB,aAAd,GAA2BpmO,KAA3B,MAA0C,OAAIA,KAAJ,KAAeA,KAAKy2M,UAAU6f,YACxF,OAAO6M,EAAS3jB,EAAH,iBAAuBA,EAAvB,IACd,CAMDlzM,WACE,OAAO,GAAAtM,KAAA,IAAUsM,UAClB,CAOD8nN,MAAM+O,GACJ,GAAIA,EACF,OAAO,GAAAnjO,KAAA,IAAUo0N,OAAM,GAGzB,MAAMrwC,EAAM,IAAI5nK,WAAWnc,KAAKgjO,eAOhC,OALIhjO,KAAKgsO,SACPjoD,EAAI76K,IAAI,CAAC,IACT66K,EAAI76K,IAAI,GAAAlJ,KAAA,IAAUo0N,QAAS,IAGtBrwC,CACR,CAMDymD,SACE,GAAIxqO,KAAK0nO,OACP,MAAM,IAAI9nN,MAAM,mCAGlB,OAAO,GAAA5f,KAAP,GACD,CAODisO,SAAShuN,GACP,OAAOje,KAAKgsO,OAAShsO,KAAKwqO,SAAWvsN,CACtC,CAODiuN,kBACE,OAAOlsO,KAAKgsO,OAAShsO,KAAKwqO,SAAW,OAAIxqO,KAAJ,KAAeA,KAAKy2M,SAC1D,EC/QH,SAAS6vB,GAAkBtvL,GACzB,OAAOA,CACR,oBA8BM,MAAMm1L,WAAc/G,GAGzB3uN,YAAYggM,EAAU0vB,EAAO/iO,GAGrB,IAH4B,WAClCq8D,EADkC,cAElC4nK,EAAgBf,IACV,uDAAJ,CAAC,EACH,MAAM8F,EAAU3sK,GAAc4nK,EAAcz9N,MAAM4G,QAAQ21N,GAAS,CAACA,EAAM78N,KAAIqvB,GAAKotM,GAAkBtvB,EAAU99K,KAAK,IAAM+gG,GAAWysG,IAAU31C,GAAS21C,GAAS,CAAC,CAACJ,GAAkBtvB,EAAU0vB,IAAS,IAAMF,GAAaxvB,EAAU0vB,IACrOnoN,MAAMy4L,EAAU21B,EAAQ,GAAG/rO,QAFrB,uCAGNL,KAAKyjO,kBAAoB3/C,GAAM1gL,GAAS2kO,GAAUtxB,EAAUz2M,KAAMoD,EAAOgpO,GAnC7E,SAAqB31B,EAAU3lM,EAAQ1N,EAAOgpO,GAC5C,GAAItoD,GAAM1gL,IAAU+xK,GAAM/xK,GACxB,OAAO2kO,GAAUtxB,EAAU3lM,EAAQmzK,GAAS7gL,GAAQgpO,GAGtD,MAAMjG,EAAQiG,EAAQ,GAEtB,IAAK,IAAInqO,EAAI,EAAGA,EAAIkkO,EAAM9lO,OAAQ4B,IAChC,IACE,MAAMwkL,EAAkB,OAAVrjL,QAA4B,IAAVA,OAAmB,EAASA,EAAMnB,GAClE6O,EAAO7O,GAAKwkL,aAAiB0/C,EAAMlkO,GAAKwkL,EAAQ,IAAI0/C,EAAMlkO,GAAGw0M,EAAUhwB,EAGxE,CAFC,MAAOjrK,GACP,MAAM,IAAIoE,MAAJ,2BAA8B3d,EAA9B,cAAqCuZ,EAAMK,SAClD,CAGH,MAAO,CAAC/K,EAAQ,EACjB,CAkBuFu7N,CAAY51B,EAAUz2M,KAAMoD,EAAOgpO,IAAU,GACjI,GAAApsO,KAAA,GAAcosO,EACf,CAEU,YAACjG,GACV,IAAI1mK,EAEJ,MAAM4nK,EAAgBrwL,GAAKyoB,EAAazoB,EAExC,OAAO,cAAcm1L,GACnB11N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU0vB,EAAO/iO,EAAO,CAC5Bq8D,aACA4nK,iBAEH,EAGJ,CAMGrE,oBACF,IAAIlxM,EAAQ,EAEZ,IAAK,IAAI7vB,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC/B6vB,GAAS9xB,KAAKiC,GAAG+gO,cAGnB,OAAOlxM,CACR,CAMGq0M,YACF,OAAO,GAAAnmO,KAAA,IAAY,GAAGK,OAAS,GAAAL,KAAA,IAAY,GAAK,GAAAA,KAAA,IAAY,GAAGsJ,KAAI49B,GAAK,IAAIA,EAAElnC,KAAKy2M,UAAU6f,aAC9F,CAMD5hL,UACE,MAAO,CACLqyC,MAAO/mF,KAAKqlO,eAEf,CAMD/O,YACE,MAAM30M,EAAQ,GAAA3hB,KAAA,IAAY,GAAGsJ,KAAI49B,GAAKlnC,KAAKy2M,SAAS2vB,aAAal/L,IAAM,IAAIA,EAAElnC,KAAKy2M,UAAU6f,cAC5F,MAAO,IAAP,OAAW30M,EAAM9a,KAAK,KAAtB,IACD,CAMDyF,WAEE,OAAO3F,GAAU3G,KAAKivB,SACvB,CAODmlM,MAAM+O,GACJ,OAAOxnC,GAAgB37L,KAAKulO,WAAWpC,GACxC,qBCnHI,MAAMmJ,WAAcH,GAGzB11N,YAAYggM,EAAUkwB,EAAMvjO,GAEpB,IAF2B,UACjCmpO,EAAY,SACN,uDAAJ,CAAC,EACHvuN,MAAMy4L,EAAU,CAACkwB,EAAMA,GAAOvjO,GADxB,uCAEN,GAAApD,KAAA,GAAkBusO,EACnB,CAEU,YAAC5F,GACV,OAAO,cAAc2F,GACnB71N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUkwB,EAAMvjO,EACvB,EAGJ,CAMG4sB,YACF,OAAOhwB,KAAK,EACb,CAMGgE,UACF,OAAOhE,KAAK,EACb,CAMDs2N,YACE,MAAO,GAAP,UAAUt2N,KAAV,gBAA6BA,KAAKgwB,MAAMsmM,YAAxC,IACD,EC/CI,MAAMkW,WAAuBF,GAClC71N,YAAYggM,EAAUkwB,EAAMvjO,GAC1B4a,MAAMy4L,EAAUkwB,EAAMvjO,EAAO,CAC3BmpO,UAAW,kBAEd,CAEU,YAAC5F,GACV,OAAO,cAAc6F,GACnB/1N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUkwB,EAAMvjO,EACvB,EAGJ,ECRI,MAAMqpO,WAAerF,GAC1B3wN,YAAYggM,EAAU3pF,EAAI4/G,EAAKtpO,GAG7B4a,MAAMy4L,EAAU,CACd3pF,KACA4/G,OACCtpO,EACJ,CAEU,YAAC+iO,GACV,OAAO,cAAcsG,GACnBh2N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU0vB,EAAMr5G,GAAIq5G,EAAMuG,IAAKtpO,EACtC,EAGJ,CAMGupO,YACF,IAAK3sO,KAAK4sO,MACR,MAAM,IAAIhtN,MAAM,8DAGlB,OAAO5f,KAAKoD,KACb,CAMGypO,WACF,IAAK7sO,KAAK8sO,KACR,MAAM,IAAIltN,MAAM,6DAGlB,OAAO5f,KAAKoD,KACb,CAMG27D,cACF,OAAO/+D,KAAK8sO,MAAQ9sO,KAAKoD,MAAM27D,OAChC,CAMG6tK,YACF,OAAQ5sO,KAAK8sO,IACd,CAMGA,WACF,OAAsB,IAAf9sO,KAAK4D,KACb,CAMD0yN,YACE,MAAM6P,EAAQnmO,KAAK6nO,eAEnB,MAAO,UAAP,OAAiB1B,EAAMr5G,GAAvB,YAA6Bq5G,EAAMuG,IAAnC,IACD,EC/EH,SAASK,GAAU13C,EAAWz2K,GAC5B,MAAM6rL,EAAU,IAAI19K,GAAG,GAEvB,IAAK,IAAI9qB,EAAI,EAAGA,EAAI2c,EAAOve,OAAQ4B,IACjCwoM,EAAQ50H,IAAIkgG,GAAOsf,EAAUz2K,EAAO3c,KAAO,IAG7C,OAAOwoM,CACR,CAID,SAASuiC,GAAe33C,EAAWz2K,GACjC,MAAM9N,EAAS,IAAIlH,MAAMgV,EAAOve,QAEhC,IAAK,IAAI4B,EAAI,EAAGA,EAAI2c,EAAOve,OAAQ4B,IAAK,CACtC,MAAMf,EAAM0d,EAAO3c,GAEnB,GAAI85N,GAAY1mC,EAAUn0L,IACxB,MAAM,IAAI0e,MAAJ,4BAA+B1e,EAA/B,oCAA8DgC,OAAOihB,KAAKkxK,GAAWxuL,KAAK,QAGlGiK,EAAO7O,GAAKf,CACb,CAED,OAAO4P,CACR,CAID,SAASm8N,GAAgB53C,EAAW1wI,GAClC,MAAM8wH,EAAKM,GAAOpxH,GACZxgC,EAAOjhB,OAAOihB,KAAKkxK,GACnBvkL,EAAS,GAEf,IAAK,IAAI7O,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAAK,CACpC,MAAMf,EAAMijB,EAAKliB,GAEbwzK,EAAGtnJ,IAAI4nJ,GAAOsf,EAAUn0L,KAAO0tB,GAAGmnJ,GAAOsf,EAAUn0L,MACrD4P,EAAOlQ,KAAKM,EAEf,CAED,MAAMgsO,EAAWH,GAAU13C,EAAWvkL,GAEtC,IAAK2kK,EAAG7mJ,GAAGs+M,GACT,MAAM,IAAIttN,MAAJ,kCAAqC61J,EAAGnpK,WAAxC,2BAAqE4gO,EAAS5gO,WAA9E,kBAAkGwE,EAAOjK,KAAK,QAGtH,OAAOiK,CACR,CAID,SAASq5N,GAAU90C,GAAiC,IAAtBjyL,EAAsB,uDAAd,EAAGqnC,EAAW,uCAClD,GAAIA,EAAY,IAAM,EACpB,MAAM,IAAI7qB,MAAJ,sDAAyD6qB,IAGjE,MAAM0E,EAAa1E,EAAY,EAE/B,GAAIq5I,GAAM1gL,GACR,OAAwB,IAAjBA,EAAM/C,OAAe,GAAK4sO,GAAgB53C,EAAWyuC,GAAQ1gO,EAAM8+K,SAAS,EAAG/yI,GAAa,CACjGomI,MAAM,KAEH,GAAIib,GAASptL,GAClB,OAAO+mO,GAAU90C,EAAWpR,GAAS7gL,GAAQ+rC,GACxC,GAAI/rC,aAAiBixB,KAAOzqB,MAAM4G,QAAQpN,GAAQ,CAEvD,OAAO4pO,GAAe33C,EADRzrL,MAAM4G,QAAQpN,GAASA,EAAQ,IAAIA,EAAMwb,UAExD,CAED,OAAOquN,GAAgB53C,EAAWjyL,EACnC,mCASM,MAAM+pO,WAAiB94M,IAI5B5d,YAAYggM,EAAUphB,EAAWjyL,GAAsB,IAAfqnC,EAAe,uDAAH,EAClDzsB,MAAMmsN,GAAU90C,EAAWjyL,EAAOqnC,IADmB,6FAuEjDvpC,IAIJ,GAAI,GAAAlB,KAAA,KAAiB+7N,GAAY,GAAA/7N,KAAA,IAAckB,IAC7C,MAAM,IAAI0e,MAAJ,4BAA+B1e,EAA/B,aAIR,OADA8c,MAAMgD,IAAI9f,GACHlB,IAAP,IA9EAA,KAAKy2M,SAAWA,EAChB,GAAAz2M,KAAA,GAAgBq1L,GAChB,GAAAr1L,KAAA,GAAmByqC,EAAY,EAChC,CAEU,YAAC7rB,EAAQ6rB,GAClB,IAAI88L,EAEJ,OAAOA,EAAS,cAAc4F,GAC5B12N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU73L,EAAQxb,EAAOqnC,EAChC,GAEA,MACD,MAAMtmB,EAAOjhB,OAAOihB,KAAKvF,GACnB6oN,EAAS,IAAI79N,MAAMua,EAAK9jB,QAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAC/BwlO,EAAOxlO,GAAP,YAAiB6jO,GAAiB3hN,EAAKliB,KAGzCugO,GAAiB+E,EAAOnmO,UAAWqmO,GAAQ,CAAC/iN,EAAGziB,EAAGomC,IAASA,EAAKj3B,QAAQ8pF,SAAS/2E,EAAKliB,KARrF,KASGslO,CACP,CAMGvE,oBACF,OAAO,GAAAhjO,KAAP,GACD,CAMG+G,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAqB,IAAd/+D,KAAKmI,IACb,CAMGiJ,cACF,MAAO,IAAI4M,MAAMY,SAClB,CAMGwuN,mBACF,OAAOL,GAAU,GAAA/sO,KAAD,IAAgBA,KAAKoR,QACtC,CAqBDwd,GAAGjB,GACD,OAAI/jB,MAAM4G,QAAQmd,GAETw3M,GAAanlO,KAAKoR,QAAQyjB,OAAQlH,EAAMkH,QACtClH,aAAiB0G,IACnBr0B,KAAK4uB,GAAG,IAAIjB,EAAM/O,cAChBs9M,GAASvuM,KAAUqtM,GAAKrtM,KAC1B3tB,KAAKotO,aAAax+M,GAAGmnJ,GAAOpoJ,GAItC,CAMD+mB,UACE,MAAO,CACLsyC,MAAO,CAAChnF,KAAKo0N,SAEhB,CAMDllM,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDuC,UACE,OAAO32N,KAAKivB,QACb,CAMDA,SACE,OAAOjvB,KAAKoR,OACb,CAMDoJ,WACE,OAAOxa,KAAKotO,aAAa5yN,UAC1B,CAMD0oN,cACE,OAAOljO,KAAKivB,QACb,CAMDqnM,YACE,OAAO3vN,GAAU,CACf0mO,KAAM,GAAArtO,KAAF,KAEP,CAMDsM,WACE,MAAO,IAAP,OAAWtM,KAAKoR,QAAQvK,KAAK,MAA7B,IACD,CAQDutN,MAAM+O,GACJ,OAAOwB,GAAQ3kO,KAAKotO,aAAc,CAChC3iM,UAA8B,EAAnB,GAAAzqC,KAAA,IACXu1K,MAAM,GAET,EC/PI,MAAM+3D,WAAatC,GACb,YAACvgM,EAAWo5L,GACrB,OAAO,cAAcyJ,GACnB72N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUrzM,EAAOqnC,EACxB,CAED6rL,YACE,OAAOuN,GAAY7lN,MAAMs4M,WAC1B,EAGJ,ECTI,SAASiX,GAAiBh0N,GAC/B,OAAOoiL,GAAgB,CAACupC,GAAa3rN,EAAMlZ,QAASkZ,GACrD,CCdD,MAAMi0N,GAAa,SA6BZ,MAAMC,WAAclK,GACzB9sN,YAAYggM,EAAUrzM,GACpB,MAAO2gL,EAAKskD,IAAiBvkD,GAAM1gL,IAAYA,aAAiBmgO,GAA+B35N,MAAM4G,QAAQpN,IAAUotL,GAASptL,GAAS,CAAC6gL,GAAS7gL,GAAQ,GAAK,CAACA,EAAO,GA5B5K,SAAwBA,GACtB,IAAKA,EAAM/C,OACT,MAAO,CAAC,IAAI8b,WAAc,GAI5B,MAAO5U,EAAQlH,GAAU2jO,GAAkB5gO,GACrC0uB,EAAQvqB,EAASlH,EAEvB,GAAIA,EAASmtO,GACX,MAAM,IAAI5tN,MAAJ,uBAA0Bvf,EAAOiM,WAAjC,oBAAuDkhO,KACxD,GAAI17M,EAAQ1uB,EAAM/C,OACvB,MAAM,IAAIuf,MAAJ,wEAA2EkS,EAA3E,mBAA2F1uB,EAAM/C,SAGzG,MAAO,CAAC+C,EAAM8+K,SAAS36K,EAAQuqB,GAAQA,EACxC,CAY0E47M,CAAetqO,GACtF4a,MAAMy4L,EAAU1yB,EAAKskD,EACtB,CAMGrF,oBACF,OAAOhjO,KAAKK,OAAS6kO,GAAallO,KAAKK,QAAQA,MAChD,CAMDq0C,QAAQyuL,GACN,MAAMwK,EAAUzI,GAAallO,KAAKK,QAClC,MAAO,CACL2mF,MAAOm8I,EAAS,CAACnlN,MAAMo2M,SAAWp0N,KAAKK,OAAS,CAACstO,EAAS3vN,MAAMo2M,SAAW,CAACuZ,GAE/E,CAMDrX,YACE,MAAO,OACR,CAODlC,MAAM+O,GACJ,OAAOA,EAASnlN,MAAMo2M,MAAM+O,GAAUoK,GAAiBvtO,KACxD,ECrEH,MACM+mC,GAAI7xB,GAAO,OAEjB,SAASoxN,GAAkBtvL,GACzB,OAAOA,CACR,CAiBM,SAAS42L,GAAUn3B,EAAU3lM,EAAQ1N,EAAO6kO,EAAStB,GAC1D,GAAI/8N,MAAM4G,QAAQpN,GAAQ,CACxB,MAAM0C,EAAQgL,EAAOzQ,OAErB,IAAK,IAAI4B,EAAI,EAAGA,EAAI6D,EAAO7D,IAAK,CAG9B,MAAMwkL,EAAQrjL,EAAMnB,GAEpB,IACE6O,EAAO7O,GAAKwkL,aAAiBkgD,EAAOlgD,EAAQ,IAAIkgD,EAAKlwB,EAAUhwB,EAIhE,CAHC,MAAOjrK,GAEP,MADAurB,GAAEvrB,MAAF,oCAAqCvZ,GAAKuZ,EAAMK,SAC1CL,CACP,CACF,CAED,MAAO,CAAC,EAAG,EACZ,CAED,OAAOwsN,GAAavxB,EAAU3lM,EAAQmzK,GAAS7gL,GAAQ6kO,EAAStB,EACjE,oBASM,MAAMkH,WAAYzI,GAGvB3uN,YAAYggM,EAAUkwB,GAGd,IAHoBvjO,EAGpB,uDAH4B,IAAI,WACtCq8D,EADsC,cAEtC4nK,EAAgBf,IACV,uDAAJ,CAAC,EACH,MAAOwH,EAAYztO,EAAQ4nO,GApD/B,SAAyB7kO,GACvB,GAAIwG,MAAM4G,QAAQpN,GAChB,MAAO,CAACA,EAAOA,EAAM/C,OAAQ,GAG/B,MAAM0jL,EAAME,GAAS7gL,IACd6kO,EAAS5nO,GAAU2jO,GAAkBjgD,GAE5C,GAAI1jL,EAfa,MAgBf,MAAM,IAAIuf,MAAJ,qBAAwBvf,EAAOiM,WAA/B,oBAhBS,QAmBjB,MAAO,CAACy3K,EAAK1jL,EAAQ4nO,EACtB,CAuCyC8F,CAAgB3qO,GACtD4a,MAAMy4L,EAAUp2M,GAFV,uCAGN,GAAAL,KAAA,GAAay/D,GAAc4nK,EAActB,GAAkBtvB,EAAUkwB,KACrE3mO,KAAKyjO,kBAAoB3/C,GAAMgqD,GAAc9F,GAAavxB,EAAUz2M,KAAM8tO,EAAY7F,EAA7B,GAAsCjoO,KAAtC,KAAoD4tO,GAAUn3B,EAAUz2M,KAAM8tO,EAAY7F,EAA7B,GAAsCjoO,KAAtC,MAAmD,EAC1K,CAEU,YAAC2mO,GACV,IAAIlnK,EAEJ,MAAM4nK,EAAgBrwL,GAAKyoB,EAAazoB,EAExC,OAAO,cAAc62L,GACnBp3N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUkwB,EAAMvjO,EAAO,CAC3Bq8D,aACA4nK,iBAEH,EAGJ,CAMGV,WACF,OAAO,GAAA3mO,KAAA,IAAWiL,IACnB,CAMDvH,QAAQsqO,GAEN,MAAMrgN,EAAQqgN,aAAkB,GAAAhuO,KAAZ,IAAyBguO,EAAS,OAAIhuO,KAAJ,KAAeA,KAAKy2M,SAAUu3B,GAEpF,IAAK,IAAI/rO,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC/B,GAAI0rB,EAAMiB,GAAG5uB,KAAKiC,IAChB,OAAOA,EAIX,OAAQ,CACT,CAMDq0N,YACE,MAAO,OAAP,OAAct2N,KAAKy2M,SAAS2vB,aAAd,GAA2BpmO,KAA3B,MAA0C,OAAIA,KAAJ,KAAeA,KAAKy2M,UAAU6f,YAAtF,IACD,ECzFI,MAAM2X,WAAiB1K,GAC5B9sN,YAAYggM,GAAqD,IAA3CrzM,EAA2C,uDAAnC,IAAI+Y,WAAcsuB,EAAiB,uDAAL,IAC1D,MAAOs5I,EAAKskD,GAxBhB,SAAwBjlO,EAAOqnC,GAC7B,MAAMs5I,EAAME,GAAS7gL,GACf+rC,EAAa1E,EAAY,EAE/B,IAAKs5I,EAAI1jL,OACP,MAAO,CAAC,IAAI8b,WAAWgzB,GAAa,GAGtC,GAAI20I,GAAM1gL,GAAS2gL,EAAI1jL,OAAS8uC,EAAa40I,EAAI1jL,SAAW8uC,EAC1D,MAAM,IAAIvvB,MAAJ,8BAAiCuvB,EAAjC,mBAAsD1E,EAAtD,yBAAgFs5I,EAAI1jL,OAApF,WAGR,MAAO,CAAC0jL,EAAI7B,SAAS,EAAG/yI,GAAaA,EACtC,CAWgC++L,CAAe9qO,EAAOqnC,GACnDzsB,MAAMy4L,EAAU1yB,EAAKskD,EACtB,CAEU,YAAC59L,EAAWo5L,GACrB,OAAO,cAAcoK,GACnBx3N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUrzM,EAAOqnC,EACxB,CAED6rL,YACE,OAAOuN,GAAY7lN,MAAMs4M,WAC1B,EAGJ,CAMDA,YACE,MAAO,OAAP,OAAct2N,KAAKK,OAAnB,IACD,EC9CH,SAASimO,GAAkBtvL,GACzB,OAAOA,CACR,oBAQM,MAAMm3L,WAAiB/I,GAG5B3uN,YAAYggM,EAAUkwB,EAAMtmO,GAGpB,IAH4B+C,EAG5B,uDAHoC,IAAI,WAC9Cq8D,EAD8C,cAE9C4nK,EAAgBf,IACV,uDAAJ,CAAC,EACHtoN,MAAMy4L,EAAUp2M,GADV,uCAEN,GAAAL,KAAA,GAAay/D,GAAc4nK,EAActB,GAAkBtvB,EAAUkwB,KACrE3mO,KAAKyjO,kBAAoB3/C,GAAM1gL,GAAS4kO,GAAavxB,EAAUz2M,KAAMoD,EAAO,EAAxB,GAA2BpD,KAA3B,KAAyC4tO,GAAUn3B,EAAUz2M,KAAMoD,EAAO,EAAxB,GAA2BpD,KAA3B,MAAwC,EAC/I,CAEU,YAAC2mO,EAAMtmO,GAChB,IAAIo/D,EAEJ,MAAM4nK,EAAgBrwL,GAAKyoB,EAAazoB,EAExC,OAAO,cAAcm3L,GACnB13N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUkwB,EAAMtmO,EAAQ+C,EAAO,CACnCq8D,aACA4nK,iBAEH,EAGJ,CAMGV,WACF,OAAO,OAAI3mO,KAAJ,KAAeA,KAAKy2M,UAAU6f,WACtC,CAMG0M,oBACF,IAAIlxM,EAAQ,EAEZ,IAAK,IAAI7vB,EAAI,EAAGA,EAAIjC,KAAKK,OAAQ4B,IAC/B6vB,GAAS9xB,KAAKiC,GAAG+gO,cAGnB,OAAOlxM,CACR,CAMD4iB,UACE,MAAO,CACLqyC,MAAO/mF,KAAKqlO,eAEf,CAEDjR,QAGE,MAAM3pB,EAAUzqM,KAAKulO,aACrB,OAAO96B,EAAQpqM,OAASs7L,GAAgB8O,GAAW,IAAItuL,WAAW,GACnE,CAMDm6M,YACE,MAAO,IAAP,OAAWt2N,KAAK2mO,KAAhB,YAAwB3mO,KAAKK,OAA7B,IACD,EC1EI,SAAS+tO,GAAmB70N,GACjC,MAAOhS,EAAQlH,GAAU0jO,GAAexqN,GAClCuY,EAAQvqB,EAASlH,EAAOma,WAC9B,MAAO,CAACsX,EAAOvY,EAAM2oK,SAAS36K,EAAQuqB,GACvC,kDCGM,MAAMu8M,WAA0BZ,GAKrCh3N,YAAYggM,EAAUotB,EAAUzgO,GAExB,IAF+B,WACrCkrO,EAAa,qBACP,uDAAJ,CAAC,EACH,MAAO3H,EAAMz9L,EAAS66I,GAxB1B,SAAmB0yB,EAAUotB,EAAUzgO,GACrC,MAAMujO,EAAOZ,GAAkBtvB,EAAUotB,GAEzC,GAAI//C,GAAM1gL,IAAU+xK,GAAM/xK,GACxB,IACE,MAAO,CAAE2gL,GAAO5O,GAAM/xK,GAAS,CAAC,EAAG6gL,GAAS7gL,IAAUA,aAAiBmgO,GAAM,CAAC,EAAGngO,EAAM8+K,YAAcksD,GAAmBhrO,GACxH,MAAO,CAACujO,EAAM,IAAIA,EAAKlwB,EAAU1yB,GAAM3gL,EAGxC,CAFC,MACA,MAAO,CAACujO,EAAM,KAAMvjO,EACrB,CAGH,MAAM0wG,EAAW,IAAI6yH,EAAKlwB,EAAUrzM,GACpC,MAAO,CAACujO,EAAM7yH,EAAUy5H,GAAiBz5H,EAASsgH,SACnD,CAUgCma,CAAU93B,EAAUotB,EAAUzgO,GAC3D4a,MAAMy4L,EAAU1yB,GAFV,qHAGN,GAAA/jL,KAAA,GAAa2mO,GACb,GAAA3mO,KAAA,GAAgBkpC,GAChB,GAAAlpC,KAAA,GAAmBsuO,EACpB,CAEU,YAAC3H,GACV,OAAO,cAAc0H,GACnB53N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUkwB,EAAMvjO,EACvB,EAGJ,CAMGorO,gBACF,QAAS,GAAAxuO,KAAD,GACT,CAMD00C,UACE,OAAO,GAAA10C,KAAA,IAAgB,CACrB+mF,MAAO,CAAC,GAAA/mF,KAAA,IAAc00C,WACtBsyC,MAAO,CAACk+I,GAAallO,KAAKK,UACxB,CACF2mF,MAAO,CAACk+I,GAAallO,KAAKK,QAASL,KAAKo0N,OAAM,IAEjD,CAMDuC,QAAQ2O,GACN,OAAO,GAAAtlO,KAAA,IAAgB,GAAAA,KAAA,IAAc22N,QAAQ2O,GAActnN,MAAM24M,SAClE,CAMDuM,cACE,OAAO,GAAAljO,KAAA,IAAgB,GAAAA,KAAA,IAAckjO,cAAgBllN,MAAMklN,aAC5D,CAMD5M,YACE,MAAO,GAAP,UAAUt2N,KAAV,gBAA8BA,KAAKy2M,SAAS2vB,aAAd,GAA2BpmO,KAA3B,OAA2C,GAAAA,KAAA,IAAgB,GAAAA,KAAA,IAAcs2N,YAAc,OAAIt2N,KAAJ,KAAeA,KAAKy2M,UAAU6f,aAAnJ,IACD,CAMDhqN,WACE,OAAO,GAAAtM,KAAA,IAAgB,GAAAA,KAAA,IAAcsM,WAAa0R,MAAM1R,UACzD,CAMDk+N,SACE,IAAK,GAAAxqO,KAAD,IACF,MAAM,IAAI4f,MAAJ,aAAa5f,KAAb,0CAGR,OAAO,GAAAA,KAAP,GACD,EC3GI,MAAMyuO,WAAsBJ,GACjC53N,YAAYggM,EAAUotB,EAAUzgO,GAC9B4a,MAAMy4L,EAAUotB,EAAUzgO,EAAO,CAC/BkrO,WAAY,iBAEf,CAEU,YAAC3H,GACV,OAAO,cAAc8H,GACnBh4N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUkwB,EAAMvjO,EACvB,EAGJ,CAMG2jF,YACF,OAAO/mF,KAAKwqO,QACb,ECvBI,IAAIkE,IAEX,SAAWA,GACTA,EAAYA,EAAW,SAAe,GAAK,WAC3CA,EAAYA,EAAW,SAAe,GAAK,WAC3CA,EAAYA,EAAW,QAAc,GAAK,UAC1CA,EAAYA,EAAW,eAAqB,GAAK,iBACjDA,EAAYA,EAAW,KAAW,GAAK,OACvCA,EAAYA,EAAW,QAAc,GAAK,UAC1CA,EAAYA,EAAW,IAAU,GAAK,MACtCA,EAAYA,EAAW,QAAc,GAAK,UAC1CA,EAAYA,EAAW,KAAW,GAAK,OACvCA,EAAYA,EAAW,OAAa,GAAK,SACzCA,EAAYA,EAAW,MAAY,IAAM,QACzCA,EAAYA,EAAW,MAAY,IAAM,QACzCA,EAAYA,EAAW,eAAqB,IAAM,iBAClDA,EAAYA,EAAW,OAAa,IAAM,SAC1CA,EAAYA,EAAW,IAAU,IAAM,MACvCA,EAAYA,EAAW,GAAS,IAAM,KACtCA,EAAYA,EAAW,OAAa,IAAM,SAC1CA,EAAYA,EAAW,MAAY,IAAM,QACzCA,EAAYA,EAAW,KAAW,IAAM,OACxCA,EAAYA,EAAW,IAAU,IAAM,MACvCA,EAAYA,EAAW,SAAe,IAAM,WAC5CA,EAAYA,EAAW,kBAAwB,IAAM,oBACrDA,EAAYA,EAAW,cAAoB,IAAM,eAvBnD,EAwBGA,KAAgBA,GAAc,CAAC,IC1BlC,MAAMC,GAAU,CAAC,WAAY,WAAY,UAAW,OAC9CC,GAAgBD,GAAQhkO,OAAO,CAAC,UAAW,iBAAkB,MAAO,UAAW,QAAS,iBAAkB,SAAU,SAAU,SAAU,OAAQ,oBAAqB,kBACrKkkO,GAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1CC,GAAW,CACjBC,GAAM,gEAAiE,yBAAyB,GAAQA,GAAM,YAAa,QAAQ,GAiD1H3rO,IACL,GAAIA,EAAM83F,SAAS,kBACjB,IAAK,IAAIt3F,EAAQ,EAAGA,EAAQR,EAAM/C,OAAQuD,IACxC,GAAqB,MAAjBR,EAAMQ,GAAgB,CACxB,MAAMI,EAAMgrO,GAAY5rO,EAAOQ,EAAQ,GAAK,GAEL,mBAAnCR,EAAMgW,UAAUpV,EAAKA,EAAM,MAC7BZ,EAAQ,WAAH,OAAcA,EAAMgW,UAAUxV,EAAQ,EAAGI,GAAzC,KAER,CAIL,OAAOZ,CAAP,EA5DJ6rO,GAAiB,WAAW,GAC5BA,GAAiB,QAAQ,GA+JlB,WACL,MAAMC,EAAQ,MACRC,EAAQ,cACRC,EAAQ,uBACRC,EAAQ,wBACRC,EAAQ,0BACRC,EAAQ,UACd,OAAOnsO,IACL8rO,EAAM59N,UAAY,EAClB69N,EAAM79N,UAAY,EAClB89N,EAAM99N,UAAY,EAClB+9N,EAAM/9N,UAAY,EAClBg+N,EAAMh+N,UAAY,EAClBi+N,EAAMj+N,UAAY,EACXlO,EACNC,QAAQ6rO,EAAO,IACf7rO,QAAQ8rO,EAAO,IACf9rO,QAAQ+rO,EAAO,IACf/rO,QAAQgsO,EAAO,IACfhsO,QAAQisO,EAAO,UACfjsO,QAAQksO,EAAO,IAEnB,CApLDC,GAwJO,WACL,MAAMx2G,EAAWv4G,GAAK,IAAJ,OAAQA,EAAR,YAAaA,EAAb,KAElB,OAAOrd,GAASqsO,GAAersO,EAAO,UAAW41H,EAClD,CA3JD02G,GAqLO,SAAoBt6M,GACzB,MAAM4jG,EAAWv4G,GAAKA,EAEtB,OAAOrd,GAASqsO,GAAersO,EAAOgyB,EAAO4jG,EAC9C,CAxLD22G,CAAW,QAiIFvsO,IACL,IAAK,IAAIQ,EAAQ,EAAGA,EAAQR,EAAM/C,OAAQuD,IACxC,GAAqB,MAAjBR,EAAMQ,KAEIgrO,GAAcn4M,MAAKm5M,IAC7B,MAAM5/M,EAAQpsB,EAAQgsO,EAAIvvO,OAC1B,OAAO2vB,GAAS,GAAK5sB,EAAMgW,UAAU4W,EAAOpsB,KAAWgsO,IAC7C,IAAV5/M,GAAe6+M,GAAc3zI,SAAS93F,EAAM4sB,EAAQ,IADpD,IAIQ,CACR,MAAMhsB,EAAMgrO,GAAY5rO,EAAOQ,EAAQ,GACvCR,EAAQ,GAAH,OAAMA,EAAMgW,UAAU,EAAGxV,IAAzB,OAAkCR,EAAMgW,UAAUpV,EAAM,GAC9D,CAIL,OAAOZ,CAAP,EAhJJ2rO,GAAM,SAAU,QAChBA,GAAM,UAAW,SAAUA,GAAM,YAAa,SAAUA,GAAM,mBAAoB,SAClFA,GAAM,aAAc,WACpBA,GAAM,iBAAkB,gBAAiBA,GAAM,iBAAkB,gBACjEA,GAAM,mBAAoB,sBAqDnB,WACL,MAAMG,EAAQ,OACRC,EAAQ,cACd,OAAO/rO,IACL8rO,EAAM59N,UAAY,EACXlO,EACNC,QAAQ6rO,EAAO,KACf7rO,QAAQ8rO,EAAO,MAEnB,CA7DDU,GAmGSzsO,IACL,IAAIQ,EAAQ,EAEZ,MAAkB,IAAXA,GAGL,GAFAA,EAAQR,EAAMM,QAAQ,MAER,IAAVE,EACFR,EAAQA,EAAMgW,UAAU,QACnB,IAAe,IAAXxV,EAAc,CACvB,IAAIosB,EAAQpsB,EAEZ,MAAkB,IAAXosB,IAAiB6+M,GAAc3zI,SAAS93F,EAAM4sB,KACnDA,IAGF5sB,EAAQ,GAAH,OAAMA,EAAMgW,UAAU,EAAG4W,EAAQ,IAAjC,OAAsC5sB,EAAMgW,UAAUxV,EAAQ,GACpE,CAGH,OAAOR,CAAP,EAjHKA,GAASA,EAAMD,QAGjB,SAAS6rO,GAAY5rO,EAAO4sB,GACjC,IAAIpX,EAAQ,EAEZ,IAAK,IAAIhV,EAAQosB,EAAOpsB,EAAQR,EAAM/C,OAAQuD,IAC5C,GAAqB,MAAjBR,EAAMQ,GAAgB,CACxB,IAAKgV,EACH,OAAOhV,EAGTgV,GACD,KAA2B,MAAjBxV,EAAMQ,IACfgV,IAIJ,MAAM,IAAIgH,MAAJ,iDAAoDxc,EAApD,oBAAqE4sB,EAArE,KACP,CACM,SAAS++M,GAAM97J,EAAKD,GAAyB,IAAnB88J,IAAmB,yDAClD,MAAMhtO,EAAO,IAAIyT,OAAJ,YAAgB08D,EAAhB,YAAuB47J,GAAcvlO,KAAIsmO,GAAO,KAAJ,OAASA,GAAT,OAAe38J,KAAOpsE,KAAK,KAAvE,KAAgF,KAEvFmjB,EAAKipD,IACTnwE,EAAKwO,UAAY,EACVw+N,GAAcjB,GAAc3zI,SAASjoB,EAAI,IAAzC,UAAkDA,EAAI,IAAtD,OAA2DD,GAASA,GAG7E,OAAO5vE,GAASA,EAAMC,QAAQP,EAAMknB,EACrC,CA6BD,SAASylN,GAAersO,EAAOkgJ,EAAStqB,GACtC,IAAIp1H,GAAS,EAEb,OAAa,CAGX,GAFAA,EAAQR,EAAMM,QAAQ4/I,EAAS1/I,EAAQ,IAExB,IAAXA,EACF,OAAOR,EAGT,MAAM4sB,EAAQpsB,EAAQ0/I,EAAQjjJ,OACxB2D,EAAMgrO,GAAY5rO,EAAO4sB,GAC/B5sB,EAAQ,GAAH,OAAMA,EAAMgW,UAAU,EAAGxV,IAAzB,OAAkCo1H,EAAS51H,EAAMgW,UAAU4W,EAAOhsB,KAAlE,OAA0EZ,EAAMgW,UAAUpV,EAAM,GACtG,CACF,CAGM,SAASirO,GAAiBnqO,EAAMirO,GACrC,OAAO3sO,IACL,IAAK,IAAInB,EAAI,EAAGA,EAAI0sO,GAAQtuO,OAAQ4B,IAAK,CACvC,MAAM/B,EAAMyuO,GAAQ1sO,GACpBmB,EAAQqsO,GAAersO,EAAD,UAAW0B,GAAX,OAAkB5E,EAAlB,MAA0BugB,IAC9C,MAAMmlN,EAAQnlN,EAAEpW,MAAM,KAAKf,KAAImnB,GAAKA,EAAEttB,SAAQigB,QAAOqN,GAAKA,IAM1D,OAJIs/M,GACFnK,EAAM7/M,MAGD,GAAP,OAAU7lB,EAAV,YAAiB0lO,EAAM/+N,KAAK,KAA5B,OAEH,CAED,OAAOzD,CAAP,CAEH,CAiFD,MAAM4sO,GAAc,IAAI/qI,IACjB,SAASgrI,GAAS7sO,GACvB,MAAM+5M,EAAa/5M,EAAMkJ,WACnBojL,EAAWsgD,GAAY/mO,IAAIk0M,GAEjC,GAAIztB,EACF,OAAOA,EAGT,IAAI5+K,EAASqsM,EAEb,IAAK,IAAIl7M,EAAI,EAAGA,EAAI6sO,GAASzuO,OAAQ4B,IACnC6O,EAASg+N,GAAS7sO,GAAG6O,GAIvB,OADAk/N,GAAY9mO,IAAIi0M,EAAYrsM,GACrBA,CACR,CCjND,MAAMo/N,GAAkB,CAAC,SAAU,aAEnC,SAASC,GAAcC,GACrB,OAAO5/C,GAAS4/C,GAAaA,EAAU9jO,WAAaiL,KAAK5Q,UAAUypO,EACpE,CAoBD,SAASC,GAAYjtO,EAAOg0N,EAAStxN,EAAOwqO,GA0B1C,OAzBAltO,EAAM2gC,KAAO2qM,GAAYtH,KACzBhkO,EAAMktO,aAAeA,EAEjB1mO,MAAM4G,QAAQ4mN,GAChBh0N,EAAMwqB,IAAMwpM,EAAQ9tN,KAAI,CAAC2B,EAAMrH,KAAP,CACtBA,QACAmgC,KAAM2qM,GAAY6B,MAClBtlO,OACAnG,KAAM,YA3BZ,SAAoBsyN,GAClB,MAAMx4M,EAAS1b,OAAO0b,OAAOw4M,GAE7B,GAAIx4M,EAAOgkH,MAAKniH,GAAKy7M,GAASz7M,KAAK,CACjC,IAAK7B,EAAOiX,OAAMpV,GAAKy7M,GAASz7M,IAAMA,GAAK,GAAKA,GAAK,MACnD,MAAM,IAAIb,MAAM,0CAGlB,OAAO,CACR,CAED,OAAO,CACR,CAiBYinN,CAAWzP,GAOpBh0N,EAAMwqB,IAAM1qB,OAAOq+D,QAAQ61J,GAAS9tN,KAAI,QAAE2B,EAAMrH,GAAR,QAAoB,CAC1DA,QACAmgC,KAAM2qM,GAAY6B,MAClBtlO,OACAnG,KAAM,OAJgC,IANxC1B,EAAMwqB,IAAM1qB,OAAOq+D,QAAQ61J,GAAS9tN,KAAI,CAAC,EAAmB1F,KAApB,IAAEqH,EAAMmlO,GAAR,SAA8Bp7D,GAAa,CAAC,EAAGw7D,GAAWL,GAAcC,GAAa,QAAS,CACpInlO,QACCnF,GAAQ,CACTlC,SAHsC,IAcnCR,CACR,CAwFD,SAASqtO,GAAartO,EAAOshB,EAAGgsN,EAAS5qO,GAEvC,OADA1C,EAAMwqB,IAAyB,IAAnB8iN,EAAQrwO,OAAe,GC/I9B,SAAmByE,GACxB,MAAMgM,EAAS,GAEf,IAAImH,EAAI,EACJmM,EAAI,EACJqM,EAAI,EACJkI,EAAI,EAEJ3I,EAAQ,EAEZ,IAAK,IAAI/tB,EAAI,EAAGA,EAAI6C,EAAKzE,OAAQ4B,IAC/B,OAAQ6C,EAAK7C,IAEX,IAAK,IAEKgW,GAAKmM,GAAKqM,GAAKkI,IACnB7nB,EAAOlQ,KAAKkE,EAAKsU,UAAU4W,EAAO/tB,GAAGkB,QACrC6sB,EAAQ/tB,EAAI,GAGd,MAIJ,IAAK,IACHgW,IACA,MAEF,IAAK,IACHA,IACA,MAGF,IAAK,IACHmM,IACA,MAEF,IAAK,IACHA,IACA,MAGF,IAAK,IACHqM,IACA,MAEF,IAAK,IACHA,IACA,MAGF,IAAK,IACHkI,IACA,MAEF,IAAK,IACHA,IAMN,GAAI1gB,GAAKmM,GAAKqM,GAAKkI,EACjB,MAAM,IAAI/Y,MAAJ,4DAA+D9a,IAKvE,OADAgM,EAAOlQ,KAAKkE,EAAKsU,UAAU4W,EAAOlrB,EAAKzE,QAAQ8C,QACxC2N,CACR,CD0EyC6/N,CAAUD,GAASpnO,KAAIy9E,GAASypJ,GAAWzpJ,EAAO,CAAC,EAAGjhF,KACvF1C,CACR,CAID,SAASwtO,GAAcxtO,EAAO0B,EAAM4f,EAAGmsN,GACrC,MAAOC,EAAWz8N,GAAevP,EAAKsU,UAAUy3N,EAAMxwO,OAAS,EAAGyE,EAAKzE,OAAS,GAAGgK,MAAM,KACnFhK,EAASyW,SAASg6N,EAAU3tO,OAAQ,IAE1C,GAAI9C,EAAS,MAAQA,EAAS,EAC5B,MAAM,IAAIuf,MAAJ,UAAa9a,EAAb,8BAAuC+rO,EAAvC,qEAAyGxwO,IAKjH,OAFA+C,EAAMiR,YAAcA,EACpBjR,EAAM/C,OAASA,EACR+C,CACR,CAiBD,SAAS2tO,GAAWjsO,EAApB,GAAwC,IAAbkrB,EAAOhsB,GAAM,EACtC,OAAOc,EAAKsU,UAAU,EAAG4W,EAAM3vB,UAAY2vB,GAASlrB,EAAKb,OAAO,EAAID,EAAI3D,UAAY2D,CACrF,CAED,MAAMgtO,GAAmB,CAAC,CAAC,IAAK,IAAKtC,GAAYP,SAxFjD,SAAyB/qO,EAAO0B,EAAM4f,EAAG5e,GACvC,MAAM0kC,EAAM1lC,EAAKzE,OAAS,EAC1B,IAAIuD,GAAS,EACTmjF,EAAQ,EAEZ,IAAK,IAAI9kF,EAAI,EAAGA,EAAIuoC,IAAkB,IAAX5mC,EAAc3B,IACvC,OAAQ6C,EAAK7C,IACX,IAAK,IAEa,IAAV8kF,IACFnjF,EAAQ3B,GAGV,MAGJ,IAAK,IACL,IAAK,IACL,IAAK,IACH8kF,IACA,MAEF,IAAK,IACL,IAAK,IACL,IAAK,IACHA,IAKN,IAAe,IAAXnjF,EACF,MAAM,IAAIgc,MAAJ,UAAa9a,EAAb,wCAGR,MAAMmsO,EAAUnsO,EAAKsU,UAAU,EAAGxV,IAC3BktO,EAAWz8N,GAAevP,EAAKsU,UAAUxV,EAAQ,EAAG4mC,GAAKngC,MAAM,KAChEhK,EAASyW,SAASg6N,EAAU3tO,OAAQ,IAE1C,GAAI9C,EAAS,KACX,MAAM,IAAIuf,MAAJ,UAAa9a,EAAb,8DAMR,OAHA1B,EAAMiR,YAAcA,EACpBjR,EAAM/C,OAASA,EACf+C,EAAMwqB,IAAM4iN,GAAWS,EAAS,CAAC,EAAGnrO,GAC7B1C,CACR,GA0C4E,CAAC,IAAK,IAAKsrO,GAAYxG,OA5GpG,SAAuB9kO,EAAO0B,EAAM4f,EAAG5e,GACrC,MAAM6C,EAAS4O,KAAKtQ,MAAMnC,GACpBqf,EAAOjhB,OAAOihB,KAAKxb,GAEzB,OAAIwb,EAAK+2E,SAAS,SACTm1I,GAAYjtO,EAAOuF,EAAO2vK,MAAOxyK,EAAO6C,EAAOuoO,WAC7C/sN,EAAK+2E,SAAS,QArB3B,SAAoB93F,EAAOg0N,EAASkZ,GAUlC,OATAltO,EAAM2gC,KAAO2qM,GAAYr6M,IACzBjxB,EAAMktO,aAAeA,EACrBltO,EAAM/C,OAAS+2N,EAAQrqL,WACvB3pC,EAAMwqB,IAAM1qB,OAAOq+D,QAAQ61J,GAASh0M,QAAO,QAAEnY,GAAF,SAAaA,EAAKs3I,WAAW,IAA7B,IAAmCj5I,KAAI,QAAE2B,EAAMrH,GAAR,QAAoB,CACpGA,QACAmgC,KAAM2qM,GAAY6B,MAClBtlO,OACAnG,KAAM,OAJ0E,IAM3E1B,CACR,CAWU+tO,CAAW/tO,EAAOuF,EAAO0kO,KAAM1kO,EAAOuoO,YAG/C9tO,EAAM2rO,MAAQpmO,EAAOyoO,OAAS,IAAInsI,IAAI/hG,OAAOq+D,QAAQ54D,EAAOyoO,cAAWtwO,EACvEsC,EAAMktO,aAAe3nO,EAAOuoO,UAC5B9tO,EAAMwqB,IAAMzJ,EAAKf,QAAOnY,IAASilO,GAAgBh1I,SAASjwF,KAAO3B,KAAI2B,GAAQulO,GAAWL,GAAcxnO,EAAOsC,IAAQ,CACnHA,QACCnF,KACI1C,EACR,GA4F2H,CAAC,IAAK,IAAKsrO,GAAYvC,MAAOsE,IAC1J,CAAC,YAAa,IAAK/B,GAAYzE,SAAUwG,IAAe,CAAC,WAAY,IAAK/B,GAAYhE,QAAS+F,IAAe,CAAC,OAAQ,IAAK/B,GAAYhD,IApBxI,SAAoBtoO,EAAO0B,EAAM4rO,GAC/B,OAAOE,GAAcxtO,EAAO0B,EAAM4rO,EAAS,MAC5C,GAkByJ,CAAC,UAAW,IAAKhC,GAAYjC,OAAQgE,IAAe,CAAC,QAAS,IAAK/B,GAAYpB,KAhBzO,SAAqBlqO,EAAO0B,EAAM4rO,GAChC,OAAOE,GAAcxtO,EAAO0B,EAAM4rO,EAAS,OAC5C,GAc4P,CAAC,kBAAmB,IAAKhC,GAAY9K,eAXlS,SAA+BxgO,EAAO0B,EAAM4f,GAC1C,MAAM2sN,EAAc,iBAAiBhxO,OAErC,OADA+C,EAAMiR,YAAcvP,EAAKsU,UAAUi4N,EAAc,EAAGvsO,EAAKzE,OAAS,GAC3D+C,CACR,IAQKkuO,GAAoB,CAAC,CAAC,YAAa,IAAK5C,GAAYpE,UAAW,CAAC,WAAY,IAAKoE,GAAYnE,SAAU,CAAC,WAAY,IAAKmE,GAAY6C,SAAU,CAAC,UAAW,IAAK7C,GAAYD,eAAgB,CAAC,UAAW,IAAKC,GAAY5C,QAAS,CAAC,SAAU,IAAK4C,GAAYpC,OAAQ,CAAC,kBAAmB,IAAKoC,GAAYlC,gBAAiB,CAAC,OAAQ,IAAKkC,GAAYb,KAAM,CAAC,qBAAsB,IAAKa,GAAYL,mBAAoB,CAAC,iBAAkB,IAAKK,GAAYD,gBAElc,SAAS+C,GAAe1sO,EAAxB,GAA4C,IAAbkrB,EAAOhsB,GAAM,EAC1C,OAAOc,EAAKsU,UAAU4W,EAAM3vB,OAAQyE,EAAKzE,OAAS2D,EAAI3D,OACvD,CAEM,SAASmwO,GAAW7U,GAGR,IAHe,YAChCtnN,EADgC,KAEhCpJ,GACiB,uDAAf,CAAC,EAAGnF,EAAW,uDAAH,EAEd,MAAMhB,EAAOmrO,GAAStU,GAChBv4N,EAAQ,CACZiR,cACA0vB,KAAM2qM,GAAY6B,MAClBtlO,OACAnG,QAGF,KAAMgB,EAAQ,GACZ,MAAM,IAAI8Z,MAAM,4CAGlB,MAAM8kH,EAASssG,GAAiBv6M,MAAKiuG,GAAUqsG,GAAWjsO,EAAM4/H,KAEhE,GAAIA,EAEF,OADAthI,EAAM2gC,KAAO2gG,EAAO,GACbA,EAAO,GAAGthI,EAAO0B,EAAM0sO,GAAe1sO,EAAM4/H,GAAS5+H,GAG9D,MAAM05M,EAAU8xB,GAAkB76M,MAAK+oL,GAAWuxB,GAAWjsO,EAAM06M,KAOnE,OALIA,IACFp8M,EAAM2gC,KAAOy7K,EAAQ,GACrBp8M,EAAMwqB,IAAM4iN,GAAWgB,GAAe1sO,EAAM06M,GAAU,CAAC,EAAG15M,IAGrD1C,CACR,CEzND,SAASquO,GAAT,GAGG,IAHqB,WACtBC,EADsB,KAEtB5sO,GACC,EACD,OAAO4sO,GAAc5sO,CACtB,CAED,SAAS6sO,GAAevuO,GACtB,IAAKwG,MAAM4G,QAAQpN,EAAMwqB,KACvB,MAAM,IAAIhO,MAAJ,2CAA8CjZ,GAAUvD,KAGhE,OAAOA,EAAMwqB,GACd,CAUD,SAASgkN,GAAWxuO,GAClB,OAAOquO,GATT,SAAmBruO,GACjB,IAAKA,EAAMwqB,KAAOhkB,MAAM4G,QAAQpN,EAAMwqB,KACpC,MAAM,IAAIhO,MAAJ,yCAA4CjZ,GAAUvD,KAG9D,OAAOA,EAAMwqB,GACd,CAGuBikN,CAAUzuO,GACjC,CAGD,SAAS0uO,GAAgB1uO,GACvB,MAAM2uO,EAAOJ,GAAevuO,GACtBkG,EAAM,CAAC,EAEb,IAAK,IAAIrH,EAAI,EAAGA,EAAI8vO,EAAK1xO,OAAQ4B,IAC/BqH,EAAIyoO,EAAK9vO,GAAGgJ,MAAQwmO,GAAeM,EAAK9vO,IAG1C,OAAOqH,CACR,CAGD,SAAS0oO,GAAkB5uO,GACzB,OAAOuuO,GAAevuO,GAAOkG,IAAImoO,GAClC,CAED,SAASQ,GAAUC,EAAnB,GAGG,IAHuB,YACxB79N,EADwB,OAExBhU,GACC,EACD,IAAK67N,GAAS77N,GACZ,MAAM,IAAIuf,MAAJ,6CAAgDvL,GAAe69N,EAAMz7N,YAAYxL,KAAjF,gBAGR,OAAOinO,EAAMC,KAAK9xO,EAAQgU,EAC3B,CAED,SAAS+9N,GAAcF,EAAO9uO,GAC5B,MAAOqmO,EAAS4I,GAAaL,GAAkB5uO,GAC/C,OAAO8uO,EAAMC,KAAK1I,EAAS4I,EAC5B,CAED,SAASC,GAAcJ,EAAO9uO,GAC5B,OAAO8uO,EAAMC,KAAKP,GAAWxuO,GAC9B,CAED,MAAMmvO,GAAc,CAClB,CAAC7D,GAAYzE,UAAW,CAACxzB,EAAUrzM,IAAUgvO,GAAcnI,GAAU7mO,GACrE,CAACsrO,GAAYpE,UAAW,CAAC7zB,EAAUrzM,IAAUkvO,GAAchI,GAAUlnO,GACrE,CAACsrO,GAAYnE,SAAU,CAAC9zB,EAAUrzM,IAAUkvO,GAAc/H,GAASnnO,GACnE,CAACsrO,GAAY9K,gBAAiB,CAACntB,EAAUrzM,IAAUwgO,GAAAA,KAAoBxgO,EAAMiR,aAAejR,EAAM0B,MAClG,CAAC4pO,GAAYtH,MAAO,CAAC3wB,EAAUrzM,KAC7B,MAAM2uO,EAAOJ,GAAevuO,GAC5B,OAAOgkO,GAAAA,KAAU2K,EAAKl8M,OAAM,QAAC,KAC3B/wB,GAD0B,QAEb,SAATA,CAFsB,IAEHitO,EAAKpyN,QAAO,CAACy0D,EAAD,EAGlCtuE,KAAU,IAH8B,MACzClC,EADyC,KAEzCqH,GACW,EAEX,OADAmpE,EAAInpE,GAAQrH,GAASkC,EACdsuE,CAAP,GACC,CAAC,GAAK09J,GAAgB1uO,GARzB,EAUF,CAACsrO,GAAYhE,SAAU,CAACj0B,EAAUrzM,IAAUgvO,GAAc1H,GAAStnO,GACnE,CAACsrO,GAAYhD,KAAM,CAACj1B,EAAUrzM,IAAU6uO,GAAUvG,GAAKtoO,GAEvD,CAACsrO,GAAY6C,SAAU,CAAC96B,EAAUrzM,KAChC,MAAM0B,EAAO,UAAH,OAAa8sO,GAAWxuO,GAAxB,KAEJ8uO,EAAQhK,GAAAA,KAAY,CACxBxgO,SAAU5C,EACVM,KAAMN,IAQR,OALAotO,EAAM9wO,UAAUk1N,UAAY,WAE1B,MAAO,WAAP,OAAkBt2N,KAAKoF,KAAKkxN,WAAU,GAAtC,IACD,EAEM4b,CAAP,EAGF,CAACxD,GAAYrI,MAAO,CAAC5vB,EAAU/xL,IAAM2hN,GACrC,CAACqI,GAAY5C,QAAS,CAACr1B,EAAUrzM,KAC/B,IAAKA,EAAMwqB,KAAOhkB,MAAM4G,QAAQpN,EAAMwqB,KACpC,MAAM,IAAIhO,MAAM,wCAOlB,OAAO0yN,GAAcxG,GAAQ1oO,EAA7B,EAEF,CAACsrO,GAAY6B,OAAQ,CAAC95B,EAAUrzM,IAAUqzM,EAAS+7B,aAAapvO,EAAM0B,MACtE,CAAC4pO,GAAYpC,OAAQ,CAAC71B,EAAUrzM,IAAUkvO,GAAchG,GAAOlpO,GAC/D,CAACsrO,GAAYlC,gBAAiB,CAAC/1B,EAAUrzM,IAAUkvO,GAAc9F,GAAgBppO,GACjF,CAACsrO,GAAYjC,QAAS,CAACh2B,EAAUrzM,KAC/B,MAAO0pH,EAAI4/G,GAAOsF,GAAkB5uO,GAEpC,OAAOqpO,GAAAA,KAAY,CACjBC,MACA5/G,MAFF,EAKF,CAAC4hH,GAAYr6M,KAAM,CAACoiL,EAAUrzM,IAAU+pO,GAAAA,KAAcwE,GAAevuO,GAAOuc,QAAO,CAAC7O,EAAD,KAG7E,IAHsF,MAC1FlN,EAD0F,KAE1FqH,GACI,EAEJ,OADA6F,EAAO7F,GAAQrH,EACRkN,CAAP,GACC,CAAC,GAAI1N,EAAM/C,QACd,CAACquO,GAAY/gK,IAAK,CAAC8oI,EAAUrzM,IAAUqvO,GAAah8B,EAAUA,EAASpjL,OAAOm9M,WAAWptO,EAAM0B,OAC/F,CAAC4pO,GAAYxG,QAAS,CAACzxB,EAAUrzM,IAAU8kO,GAAAA,KAAY4J,GAAgB1uO,GAAQA,EAAM2rO,OACrF,CAACL,GAAYvC,OAAQ,CAAC11B,EAAUrzM,IAAU+oO,GAAAA,KAAW6F,GAAkB5uO,IACvE,CAACsrO,GAAYpB,MAAO,CAAC72B,EAAUrzM,IAAU6uO,GAAU3E,GAAMlqO,GACzD,CAACsrO,GAAYb,KAAM,CAACp3B,EAAD,KAEb,IAFwB,IAC5B7oL,GACI,EACJ,IAAKA,GAAOhkB,MAAM4G,QAAQod,GACxB,MAAM,IAAIhO,MAAM,wCAGlB,MAAoB,OAAbgO,EAAI9oB,KAAgB2oO,GAAQI,GAAAA,KAAS4D,GAAe7jN,GAA3D,EAEF,CAAC8gN,GAAYP,UAAW,CAAC13B,EAAD,KAIlB,IAJ6B,YACjCpiM,EADiC,OAEjChU,EAFiC,IAGjCutB,GACI,EACJ,IAAKsuM,GAAS77N,KAAYutB,GAAOhkB,MAAM4G,QAAQod,GAC7C,MAAM,IAAIhO,MAAM,uDAGlB,MAAoB,OAAbgO,EAAI9oB,KAAgBmpO,GAAAA,KAAuB,EAAT5tO,EAAYgU,GAAe85N,GAAAA,KAAcsD,GAAe7jN,GAAMvtB,EAAvG,EAEF,CAACquO,GAAYL,mBAAoB,CAAC53B,EAAUrzM,IAAUkvO,GAAcjE,GAAmBjrO,GACvF,CAACsrO,GAAYD,eAAgB,CAACh4B,EAAUrzM,IAAUkvO,GAAc7D,GAAerrO,IAuB1E,SAASqvO,GAAah8B,EAAUi8B,GACrC,OAAOj8B,EAASk8B,UAAUD,EAAQ5tO,MAAM,EAAO4tO,EAChD,CACM,SAAS1M,GAAkBvvB,EAAU3xM,GAC1C,OACE2xM,EAASk8B,UAAU7tO,IACnB2tO,GAAah8B,EAAUA,EAASm8B,aAAa9tO,GAAQ2xM,EAASpjL,OAAOm9M,WAAW1rO,GAAQ0rO,GAAW1rO,GAEtG,CC1LD,SAAS+tO,GAAcC,EAASxvF,GAC9B,MAAMygC,EAAM+uD,EAAQ1e,QACdmX,EAAUuH,EAAQxc,YAMxB,KAJAn7B,GAAMpX,EAAKzgC,IACX,CAAC,QAAS,OAAQ,QAAQpoD,SAASqwI,IAAYjoF,EAAQjjJ,SAAWyyO,EAAQzyO,QAC1EyyO,EAAQ/zK,SAAWukF,EAAQztH,OAAMpV,IAAMA,KAGrC,MAAM,IAAIb,MAAJ,UAAa2rN,EAAb,0DAAsEjiC,GAAShmD,EAAS,KAAxF,aAAiGA,EAAQjjJ,OAAzG,4BAAmIipM,GAASvlB,EAAK,KAAjJ,aAA0JA,EAAI1jL,OAA9J,WAET,CAED,SAAS0yO,GAAcD,EAAvB,GAAyC,IAAR1vO,GAAQ,EACnC0gL,GAAM1gL,GACRyvO,GAAcC,EAAS1vO,GACd+xK,GAAM/xK,IACfyvO,GAAcC,EAAS7uD,GAAS7gL,GAEnC,CAID,SAAS4vO,GAASv8B,EAAUkwB,GAIpB,IAJ0B7wN,EAI1B,uDAJmC,IAAI,UAC7C8tM,EAD6C,WAE7CqvB,EAF6C,WAG7CC,GACM,uDAAJ,CAAC,EACH,MAAMJ,EAAU,IAAKG,EAAanH,GAAAA,KAAYnF,GAAQA,GAAMlwB,KAAa3gM,GAOzE,OANAo9N,GAAcH,GAAcD,EAASh9N,GAEjC8tM,IACFkvB,EAAQK,cAAgBC,GAAiB38B,EAAU,OAAQ,CAACmN,KAGvDkvB,CACR,CAKM,SAASM,GAAiB38B,EAAU3xM,GAAiC,IAA3BgR,EAA2B,uDAAlB,GAAIhW,EAAc,uDAAJ,CAAC,EACnEoyO,EAAQ,KACRmB,EAAa,KAEjB,IAEE,OADAnB,EAAQlM,GAAkBvvB,EAAU3xM,GAC7BkuO,GAASv8B,EAAUy7B,EAAOp8N,EAAQhW,EAG1C,CAFC,MAAO0b,GACP63N,EAAa,IAAIzzN,MAAJ,qBAAwB9a,EAAxB,eAAmC0W,EAAMK,SACvD,CAED,GAAIq2N,GAASA,EAAMoB,eACjB,IAEE,OADApB,EAAQlM,GAAkBvvB,EAAUy7B,EAAMoB,gBACnCN,GAASv8B,EAAUy7B,EAAOp8N,EAAQhW,EAE1C,CADC,MACD,CAGH,MAAMuzO,CACP,CC5DM,SAASE,GAAWziO,EAAQif,EAAMg7K,EAASw3B,GAAoB,IAAX3+N,EAAW,uDAAH,EACjE,MAAMqH,EAAOs3N,EAAUA,EAAQxyM,EAAMnsB,GAASmsB,EAAKzjB,WACnD,IAAIlJ,EACJF,OAAOqR,eAAezD,EAAQ7F,EAAM,CAIlCilC,cAAc,EACdrwB,YAAY,EAGZ5W,IAAK,WAIH,QAAcnI,IAAVsC,EAAqB,CACvBA,EAAQ2nM,EAAQh7K,EAAMnsB,EAAO5D,MAE7B,IAGEkD,OAAOqR,eAAevU,KAAMiL,EAAM,CAChC7H,SAMH,CAJC,MAID,CACF,CAED,OAAOA,CACR,GAEJ,CAOM,SAASowO,GAAY1iO,EAAQ+e,EAAOk7K,EAASw3B,GAClD,IAAK,IAAItgO,EAAI,EAAGA,EAAI4tB,EAAMxvB,OAAQ4B,IAChCsxO,GAAWziO,EAAQ+e,EAAM5tB,GAAI8oM,EAASw3B,EAAStgO,GAGjD,OAAO6O,CACR,CCzBM,SAAS2iO,GAAarwO,EAAOyY,GAElC,OAZK,SAAgBmqB,EAAWnqB,GAChC,IAAKmqB,EACH,MAAM,IAAIpmB,MAAM85G,GAAW79G,GAAWA,IAAYA,EAErD,CAOCkqB,MAAiBjlC,IAAVsC,GAAiC,OAAVA,EAAgByY,GACvCzY,CACR,CC/BM,MAAMswO,GAAa,CACxBC,UAAW,CAAC,EACZ5qM,QAAS,CAAC,GCDN6qM,GAAiB,CACrBD,UAAW,CACTE,IAAK,gBAEP9qM,QAAS,CACP66K,UAAW,SCIFkwB,GAAgB9+D,GAAa,CAAC,EDDlB,CACvB++D,yBAA0B,CACxBJ,UAAW,CACTK,IAAK,oBAEPjrM,QAAS,CAAC,GAEZkrM,mBAAoBP,GACpBQ,SAAUN,GACVO,aAAc,CACZR,UAAW,CAAC,EACZ5qM,QAAS,CACP40I,YAAa,SAGjBi2D,kBACAQ,mBAAoBV,GACpBW,WAAY,CACVV,UAAW,CACT1yO,MAAO,kBAET8nC,QAAS,CAAC,GAEZurM,iBAAkB,CAChBX,UAAW,CAAC,EACZ5qM,QAAS,CACPg2I,YAAa,QAGjBw1D,eAAgB,CACdZ,UAAW,CAAC,EACZ5qM,QAAS,CACPyrM,mBAAoB,QAGxBC,aAAc,CACZd,UAAW,CAAC,EACZ5qM,QAAS,CACPg2I,YAAa,QAGjB21D,YAAahB,GACbiB,kBAAmBjB,GACnBkB,2BAA4BlB,IEnDN,CACtBmB,uBAAwBnB,GACxBoB,qBAAsBpB,GACtBqB,mBAAoBrB,GACpBsB,sBAAuBtB,GACvBuB,sBAAuBvB,GACvBwB,0BAA2BxB,ICNR,CACnByB,eAAgBzB,ICFO,CACvB0B,qBAAsB,CACpBzB,UAAW,CACTK,IAAK,mBAELqB,QAAS,mBAEXtsM,QAAS,CAAC,KHQDusM,GAAqB,CAAC,eAAgB,eAAgB,WAAY,aAAc,cAAe,2BAA4B,sBAKjI,SAASC,GAAqBxpC,EAAYjnM,GAA2B,IAArB0wO,EAAqB,uDAAJ,CAAC,EACvE,OAAOzpC,EACNziM,KAAIjB,GAAKmtO,EAAentO,IAAMyrO,GAAczrO,KAAI+a,QAAO2gB,KAAUA,IAAMpkB,QAAO,CAAC7O,EAAQizB,IAASixI,GAAalkK,EAAQizB,EAAKj/B,KAAQ,CAAC,EACrI,gFIIM,MAAM2wO,WAAyBtJ,GAOpC11N,YAAYggM,EAAUrzM,EAAO67F,GAAmD,IAA7Cu5G,EAA6C,uDAAnC,YAAa/yL,EAAsB,uDAAb,YACjE,MAAM0S,GAAmB,OAAT8mE,QAA0B,IAATA,OAAkB,EAASA,EAAK9mE,SAAW,GAC5Ena,MAAMy4L,EAAUt+K,EAAO7uB,KAAI,QAAC,KAC1BxE,GADyB,SAErB2xM,EAASi/B,iBAAiB5wO,EAFL,IAEa1B,GAJsC,4GAJvE,OAIuE,8EAK9E,GAAApD,KAAA,GAAai/F,GACb,GAAAj/F,KAAA,GAAeylB,GACf,GAAAzlB,KAAA,GAAgBw4M,GAChB,GAAAx4M,KAAA,GAAgBm4B,EAAO7uB,KAAI,QAAC,KAC1BxE,GADyB,SAErB2xM,EAASpjL,OAAOm9M,WAAW1rO,EAFN,KAG3B,MAAMkhD,EAAQ7tB,EAAO7uB,KAAI,QAAC,KACxB2B,GADuB,SAEnBwrM,EAASpjL,OAAOsiN,cAAc1qO,GAAM,EAFjB,IAEqBmY,QAAO8P,KAAOA,IAExD8yB,EAAM3lD,SAAW83B,EAAO93B,SAC1B,GAAAL,KAAA,GAAcgmD,GACdw8K,GAAiBxiO,KAAMgmD,GAAO,CAACthC,EAAGziB,IAAMjC,KAAKiC,KAEhD,CAMGg9F,WACF,OAAO,GAAAj/F,KAAP,GACD,CAMGylB,aACF,OAAO,GAAAzlB,KAAP,GACD,CAMGgmD,YACF,OAAO,GAAAhmD,KAAP,GACD,CAMGw4M,cACF,OAAO,GAAAx4M,KAAP,GACD,CAMG0yO,cACF,OAAO,GAAA1yO,KAAP,GACD,CAMD22N,QAAQ2O,GACN,GAAoB,OAAhB,GAAAtlO,KAAA,IAAsB,CACxB,MAAMqW,EAAO,CAAC,EAEd,IAAK,IAAIpU,EAAI,EAAGA,EAAI,GAAAjC,KAAA,IAAYK,OAAQ4B,IACtCoU,EAAK,GAAArW,KAAA,IAAYiC,IAAMjC,KAAKiC,GAAG00N,QAAQ2O,GAGzC,OAAOjvN,CACR,CAED,OAAO2H,MAAM24M,QAAQ2O,EACtB,EAUI,MAAMsQ,WAAqB1N,GAGhCzxN,YAAYggM,EAAU9xJ,GACpB,MAAM,SACJkxL,EADI,MAEJzyO,GA3HN,SAAqBqzM,EAAUrzM,GAC7B,IAAKA,IAAUA,EAAM/C,OACnB,MAAO,CACLw1O,SAAUxP,IAId,MAAMziO,EAAQR,EAAM8+K,SAAS,EAAG,GAChC,MAAO,CACL2zD,SAAUp/B,EAASq/B,cAAclyO,GACjCR,MAAO,CACLgZ,KAAMhZ,EAAM8+K,SAAS,GACrBt+K,SAGL,CA6GOmyO,CAAYt/B,EAAU9xJ,GAC1B3mC,MAAMy4L,EAAU,CACd7yM,MAAO,UAEPwY,KAAMy5N,GACLzyO,EACJ,CAMGgZ,WACF,OAAOpc,KAAKijO,KAAK,OAClB,CAMGr/N,YACF,OAAO5D,KAAKijO,KAAK,QAClB,CAMGhkI,WACF,OAAOj/F,KAAKoc,KAAK6iF,IAClB,CAMGx5E,aACF,OAAOzlB,KAAKoc,KAAKqJ,MAClB,CAMG+yL,cACF,OAAOx4M,KAAKoc,KAAKo8L,OAClB,CAMGk6B,cACF,OAAO1yO,KAAKoc,KAAKs2N,OAClB,CAMD/b,QAAQQ,GACN,OAAOniD,GAAa,CAClBvvJ,OAAQzlB,KAAKylB,OACb+yL,QAASx4M,KAAKw4M,SACb2e,EAAa,CACdhf,KAAMn4M,KAAKi/F,KAAKk5G,KAAK7uM,KAAI0tC,GAAKA,EAAE1qC,cAC9B,KAAM0R,MAAM24M,QAAQQ,GACzB,qBC9LI,MAAM6e,GAGXv/N,YAAYggM,EAAUrzM,EAAOqgO,GAAkB,uCAC7C,GAAAzjO,KAAA,GAAYoD,GACZpD,KAAKyjO,iBAAmBA,EACxBzjO,KAAKy2M,SAAWA,CACjB,CAMGusB,oBACF,OAAOhjO,KAAKo0N,QAAQ/zN,MACrB,CAMG0G,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAEGrtI,YACF,OAAO,GAAA/mF,KAAP,GACD,CAMG++D,cACF,OAAO,GAAA/+D,KAAA,IAAU++D,OAClB,CAMDnwC,GAAGjB,GACD,OAAO,GAAA3tB,KAAA,IAAU4uB,GAAGjB,EACrB,CAMD+mB,UACE,OAAO,GAAA10C,KAAA,IAAU00C,SAClB,CAMDxlB,MAAMqmJ,GACJ,OAAO,GAAAv1K,KAAA,IAAUkvB,MAAMqmJ,EACxB,CAMDohD,QAAQ2O,GACN,OAAO,GAAAtlO,KAAA,IAAU22N,QAAQ2O,EAC1B,CAMDr2M,SACE,OAAO,GAAAjvB,KAAA,IAAUivB,QAClB,CAMDi0M,cACE,OAAO,GAAAljO,KAAA,IAAUkjO,aAClB,CAMD52N,WACE,OAAO,GAAAtM,KAAA,IAAUsM,UAClB,CAOD8nN,MAAM+O,GACJ,OAAO,GAAAnjO,KAAA,IAAUo0N,MAAM+O,EACxB,CAMD7M,YACE,MAAO,MACR,CAEDkU,SACE,OAAO,GAAAxqO,KAAP,GACD,EC5GI,MAAMi2O,WAA2B/N,GACtCzxN,YAAYggM,EAAUrzM,GAEd,IAFqB,SAC3B6nO,GACM,uDAAJ,CAAC,EACHjtN,MAAMy4L,EAAU,CACd5zL,UAAW,uBAEX4C,OAAQ,QACPwwN,GAAmBC,gBAAgBz/B,EAAUrzM,EAAO6nO,GACxD,CAIqB,uBAACx0B,EAAUrzM,GAAyB,IAAlB6nO,EAAkB,wDACxD,GAAI7nO,aAAiB6yO,GACnB,OAAO7yO,EACF,GAAIA,aAAiBqzM,EAASuvB,kBAAkB,QACrD,MAAO,CACLvgN,OAAQriB,GAEL,GAAI0gL,GAAM1gL,GAAQ,CAEvB,MAAMyf,EAAY4zL,EAAS28B,iBAAiB,uBAAwB,CAAChwO,EAAO,CAC1E6nO,cAGF,MAAO,CACLxlN,OAFagxL,EAAS28B,iBAAiB,OAAQ,CAAChwO,EAAM8+K,SAASr/J,EAAUmgN,iBAGzEngN,YAEH,CAED,OAAOzf,GAAS,CAAC,CAClB,CAMG4/N,oBACF,OAAOhjO,KAAKo0N,QAAQ/zN,MACrB,CAMGolB,aACF,OAAOzlB,KAAKijO,KAAK,SAClB,CAMGpgN,gBACF,OAAO7iB,KAAKijO,KAAK,YAClB,CAMGhuN,cACF,OAvE6B,CAwE9B,CAMDkhO,aAAa9d,EAAQx1M,EAAWkmB,GAE9B,OADA/oC,KAAK6iB,UAAUszN,aAAa9d,EAAQx1M,EAAWkmB,GACxC/oC,IACR,CAMDk7C,KAAKrb,EAAS//B,GAEZ,OADAE,KAAK6iB,UAAUq4B,KAAKl7C,KAAKylB,OAAQoa,EAAS//B,GACnCE,IACR,CAMDo2O,SAAS/d,EAAQv4N,GAEf,OADAE,KAAK6iB,UAAUuzN,SAASp2O,KAAKylB,OAAQ4yM,EAAQv4N,GACtCE,IACR,ECrGI,MAEMq2O,GAAY,IAAIl6N,WAEhBm6N,GAAe,IAAIn6N,WAAW,CAAC,ICAtCo6N,GAAW,CAAC,mBAClB,mBAAoB,mBAAoB,mBAAoB,eAI5D,SAASC,GAAa//B,EAAUrzM,EAAO6R,GACrC,GAAI7R,aAAiBqzO,GACnB,OAAOrzO,EAAMonO,SAGf,MAAMS,EDdkB,WCcNh2N,GACZnQ,EAAOyxO,GDVe,ICUNthO,IAA6BshO,GAAS,GAG5D,OAAO9/B,EAAS28B,iBAAiBtuO,EAAM,CAAC1B,EAAO,CAC7C6nO,WACAh2N,YAEH,CAkBD,SAAS8yN,GAAUtxB,EAAUrzM,EAAO6R,GAClC,IAAK7R,EAAM/C,OACT,OAAOm2O,GAAa//B,EAAU,IAAIt6L,WAAclH,GAGlD,MAAO1N,EAAQlH,GAAU0jO,GAAe3gO,GAClC0uB,EAAQvqB,EAASlH,EAAOma,WAE9B,GAAIsX,EAAQ1uB,EAAM/C,OAChB,MAAM,IAAIuf,MAAJ,mEAAsEkS,EAAtE,mBAAsF1uB,EAAM/C,SAGpG,MAAM+b,EAAOhZ,EAAM8+K,SAAS36K,EAAQuqB,GACpC,OAAO0kN,GAAa//B,EAAUr6L,EAAK8lK,SAAS,GAAI9lK,EAAK,GACtD,CAED,MAAMs6N,WAAsBV,GAC1Bv/N,YAAYggM,EAAUrzM,EAAOqgO,GAC3BzlN,MAAMy4L,EAAUrzM,EAAOqgO,GACvB,MAAMkT,EAAWzzO,OAAOihB,KAAKsyL,EAASmgC,2BAEhCj2G,EAASz/H,GAAOlB,KAAK+mF,MAAMlkE,UAAU3hB,GAI3C,IAAK,IAAIe,EAAI,EAAGA,EAAI00O,EAASt2O,OAAQ4B,IACnCqgO,GAAetiO,KAAM22O,EAAS10O,GAAI0+H,EAErC,CAMGzvH,WACF,OAAOlR,KAAKylB,OAAOvU,IACpB,CAMG2lO,cACF,OAAO72O,KAAKylB,OAAOoxN,OACpB,CAMG9U,gBACF,OAAO/hO,KAAKylB,OAAOs8M,SACpB,CAMG3lN,WACF,OAAOpc,KAAKylB,OAAOrJ,IACpB,CAMGy3N,UACF,OAAO7zO,KAAK+mF,MAAMlkE,UAAUgxN,GAC7B,CAMG7Q,oBACF,OAAOhjO,KAAKo0N,QAAQ/zN,MACrB,CAMG4qO,eACF,OAAOjrO,KAAK+mF,MAAMlkE,UAAUooN,QAC7B,CAMG5qO,aACF,OAAOL,KAAKo0N,OAAM,GAAM/zN,MACzB,CAMG4+F,WACF,OAAOj/F,KAAKylB,OAAOw5E,IACpB,CAMGx5E,aACF,OAAOzlB,KAAK+mF,MAAMthE,MACnB,CAMGxkB,YACF,OAAOjB,KAAK+mF,MAAMlkE,UAAU5hB,KAC7B,CAMG4hB,gBACF,OAAO7iB,KAAK+mF,MAAMlkE,UAAUA,SAC7B,CAMGw1M,aACF,OAAOr4N,KAAK+mF,MAAMlkE,UAAUw1M,MAC7B,CAMG2b,UACF,OAAOh0O,KAAK+mF,MAAMlkE,UAAUmxN,GAC7B,CAMGlvO,WACF,OAAO9E,KAAK+mF,MAAM9xE,OACnB,CAEG8xE,YACF,OAAO/mF,KAAKwqO,QACb,CAMGv1N,cACF,OAAOjV,KAAK8E,MAAQ9E,KAAKirO,SDvMH,IACE,ECuMzB,CAMD3rI,GAAG3xE,GACD,OAAO3tB,KAAKylB,OAAO65E,GAAG3xE,EACvB,CAED68M,SACE,OAAOxsN,MAAMwsN,QACd,qBAiBI,MAAMiM,WAAyBC,GAIpCjgO,YAAYggM,EAAUrzM,GAEd,IAFqB,QAC3B6R,GACM,uDAAJ,CAAC,EACH+I,MAAMy4L,EAlNV,SAAyBA,EAAUrzM,GAAkC,IAA3B6R,EAA2B,uDDvBtC,ECwB7B,OAAI6uK,GAAM1gL,IAAUwG,MAAM4G,QAAQpN,IAAU+xK,GAAM/xK,GACzC2kO,GAAUtxB,EAAUxyB,GAAS7gL,GAAQ6R,GACnC7R,aAAiBqzM,EAASuvB,kBAAkB,QAC9CwQ,GAAa//B,EAAU,CAC5BhxL,OAAQriB,GACP6R,GAGEuhO,GAAa//B,EAAUrzM,EAAO6R,EACtC,CAwMmBihO,CAAgBz/B,EAAUrzM,EAAO6R,IAD3C,sCAEP,CAMGlO,WAKF,OAJK,GAAA/G,KAAD,KACF,GAAAA,KAAA,GAAkBge,MAAMjX,MAGnB,GAAA/G,KAAP,GACD,CAMDm2O,aAAa9d,EAAQx1M,EAAWkmB,GAG9B,OAFA/oC,KAAK+mF,MAAMovJ,aAAa9d,EAAQx1M,EAAWkmB,GAC3C,GAAA/oC,KAAA,QAAkBc,GACXd,IACR,CAMD00C,UACE,MAAM+1J,EAAUhP,MAAaz7L,KAAKulO,cAClC,MAAO,CACLx+I,MAAO/mF,KAAKirO,SAAWjrO,KAAK+mF,MAAMryC,UAAUqyC,MAAQ/mF,KAAK+mF,MAAMthE,OAAOivB,UAAUqyC,MAChFC,MAAO,CAACk+I,GAAaz6B,EAAQpqM,QAAS,IAAI8b,WAAW,CAACnc,KAAKiV,WAE9D,CAMDimC,KAAKrb,EAAS//B,GAGZ,OAFAE,KAAK+mF,MAAM7rC,KAAKrb,EAAS//B,GACzB,GAAAE,KAAA,QAAkBc,GACXd,IACR,CAMDo2O,SAAS/d,EAAQv4N,GAGf,OAFAE,KAAK+mF,MAAMqvJ,SAAS/d,EAAQv4N,GAC5B,GAAAE,KAAA,QAAkBc,GACXd,IACR,CAMDkvB,MAAMi0M,GACJ,OAAO75B,GAAStpM,KAAKo0N,MAAM+O,GAC5B,CAMDxM,QAAQQ,GACN,OAAOniD,GAAa,CAAC,EAAG,CACtBi2D,SAAUjrO,KAAKirO,SACfxlN,OAAQzlB,KAAKylB,OAAOkxM,QAAQQ,IAC3Bn3N,KAAKirO,SAAW,CACjB4I,IAAK7zO,KAAK6zO,IAAIld,QAAQQ,GACtBl2N,MAAOjB,KAAKiB,MAAM01N,QAAQQ,GAC1Bt0M,UAAW7iB,KAAK6iB,UAAUqM,QAC1BmpM,OAAQr4N,KAAKq4N,OAAO1B,QAAQQ,GAC5B6c,IAAKh0O,KAAKg0O,IAAIrd,QAAQQ,IACpB,KACL,CAMDloM,SACE,OAAOjvB,KAAKkvB,OACb,CAMDonM,YACE,MAAO,WACR,CAODlC,MAAM+O,GACJ,MAAM14B,EAAUhP,MAAaz7L,KAAKulO,cAClC,OAAOpC,EAAS14B,EAAU8iC,GAAiB9iC,EAC5C,CAED86B,aAGE,MAAO,CAAC,IAAIppN,WAAW,CAACnc,KAAKiV,UAAWjV,KAAK+mF,MAAMqtI,QACpD,KAvHUqiB,GAAAA,2BFnOoB,GGK1B,MAAM54C,WAAYyvC,GAAAA,KAAU,KAAI,uDAExB,MAFwB,ECUvC,SAASwJ,GAAgBrgC,EAAUrzM,GACjC,GAAI0gL,GAAM1gL,IAAU+xK,GAAM/xK,IAAUwG,MAAM4G,QAAQpN,GAChD,OA2BJ,SAAyBqzM,EAAUrzM,GACjC,GAAqB,IAAjBA,EAAM/C,OACR,MAAO,CAAC,IAAI02O,GAAItgC,GAAW,IAAIsgC,GAAItgC,IAGrC,MAAMugC,EAAQlT,GAAQ1gO,EAAM8+K,SAAS,EAAG,IAAI1nK,WACtCy7L,EAAS6tB,GAAQ1gO,EAAM8+K,SAAS,EAAG,IAAI1nK,WACvCiwL,EAAUusC,GAAS/gC,GAAU,GAC7BghC,EAAS,GAAKxsC,EAAU,GACxBysC,EAAiBr0O,KAAK2nC,IAAIysM,GAAU,GAAI,GACxCE,GAAS1sC,GAAW,GAAKysC,EAE/B,GAAID,EAAS,GAAKE,GAASF,EACzB,MAAM,IAAIr3N,MAAM,qCAGlB,MAAO,CAAC,IAAIm3N,GAAItgC,EAAUwgC,GAAS,IAAIF,GAAItgC,EAAU0gC,GACtD,CA5CUC,CAAgB3gC,EAAUxyB,GAAS7gL,IACrC,IAAKA,EACV,MAAO,CAAC,IAAI2zO,GAAItgC,GAAW,IAAIsgC,GAAItgC,IAC9B,GAAI98E,GAASv2H,GAClB,OAQJ,SAA4BqzM,EAAUrzM,GACpC,MAAM,QACJ4R,EADI,OAEJiiO,GACE7zO,EACJ,IAAIi0O,EAAYx0O,KAAKqrB,IAAI,EAAGrrB,KAAK8a,KAAK9a,KAAKy0O,KAAKL,KAChDI,EAAYx0O,KAAKg7D,IAAIh7D,KAAK2nC,IAAI6sM,EAAW,GAAI,OAC7C,MAAMF,EAAQniO,EAAUqiO,EAClBH,EAAiBr0O,KAAK2nC,IAAI6sM,GAAa,GAAI,GAC3CE,EAAiBJ,EAAQD,EAAiBA,EAChD,MAAO,CAAC,IAAIH,GAAItgC,EAAU4gC,GAAY,IAAIN,GAAItgC,EAAU8gC,GACzD,CAnBUC,CAAmB/gC,EAAUrzM,GAGtC,MAAM,IAAIwc,MAAM,oCACjB,CAyCD,SAAS63N,KAA6C,IAA1Br0O,EAA0B,uDAAlB,IAAI+Y,WACtC,GAAI2nK,GAAM1gL,GACR,OAAQA,EAAM/C,QAAuB,IAAb+C,EAAM,GAAiC,IAAI+Y,WAAW,CAAC,EAAG/Y,EAAM,GAAIA,EAAM,KAAzD,IAAI+Y,WAAW,CAAC,IACpD,IAAK/Y,EACV,OAAO,IAAI+Y,WAAW,CAAC,IAClB,GAAI/Y,aAAiBs0O,GAC1B,OAAOD,GAAmBr0O,EAAMgxN,SAC3B,GAAIj/C,GAAM/xK,GACf,OAAOq0O,GAAmBr5D,GAASh7K,IAC9B,GAAIu2H,GAASv2H,GAAQ,CAC1B,MAAMm+D,EAAUr+D,OAAOq+D,QAAQn+D,GAAOkG,KAAI,QAAEjB,EAAGoY,GAAL,QAAY,CAACpY,EAAEsH,cAAe8Q,EAA9B,IACpCk3N,EAASp2K,EAAQ9qC,MAAK,QAAEpuB,GAAF,QAA6B,cAApBA,EAAEsH,aAAX,IACtBioO,EAAWr2K,EAAQ9qC,MAAK,QAAEpuB,GAAF,QAA6B,gBAApBA,EAAEsH,aAAX,IAE9B,OAAOgoO,EAAS,CACdE,UAAWF,EAAO,IAChBC,EAAW,CACbE,YAAaF,EAAS,IACpB,CACFC,UAAWz0O,EAEd,CAED,MAAM,IAAIwc,MAAM,6BACjB,CAQM,MAAMk4N,WAAoBvU,GAE/B9sN,YAAYggM,EAAUrzM,GAGpB4a,MAAMy4L,EAAU6/B,GACjB,EASI,MAAMuB,WAAkB1L,GAC7B11N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU,CACdwgC,OAAQF,GACRI,MAAOJ,IACND,GAAgBrgC,EAAUrzM,GAC9B,CAMG4/N,oBACF,OAAO,CACR,CAMGiU,aACF,OAAOj3O,KAAK,EACb,CAMGm3O,YACF,OAAOn3O,KAAK,EACb,CAMD22N,UACE,MAAO,CACLsgB,OAAQz0L,GAAaxiD,KAAKi3O,QAC1BE,MAAO30L,GAAaxiD,KAAKm3O,OAE5B,CAMDloN,SACE,OAAOjvB,KAAKkvB,OACb,CAcDklM,MAAM+O,GACJ,MAAM8T,EAASj3O,KAAKi3O,OAAOz8N,WACrBiwL,EAAU5nM,KAAKg7D,IAAI,GAAIh7D,KAAK2nC,IAAI,EAhL1C,SAA0BysM,GACxB,MAAMc,EAASd,EAAO3qO,SAAS,GAC/B,IAAI1I,EAAQ,EAEZ,KAA6C,MAAtCm0O,EAAOA,EAAO13O,OAAS,EAAIuD,IAChCA,IAGF,OAAOA,CACR,CAuK4Co0O,CAAiBf,GAAU,KAAOj3O,KAAKm3O,MAAM38N,WAAa3X,KAAK2nC,IAAIysM,GAAU,GAAI,IAAM,GAChI,OAAO,IAAI96N,WAAW,CAAW,IAAVsuL,EAAgBA,GAAW,GACnD,CAMDwtC,MAAMjjO,GACJ,MAAMmiO,EAAQn3O,KAAKm3O,MAAM38N,WACnBy8N,EAASj3O,KAAKi3O,OAAOz8N,WAE3B,UAAW3X,KAAK2nC,IAAIurI,GAAO/gK,GAASwF,WAAY28N,GAASA,GAASF,GAAUA,EAASE,CACtF,CAMDe,MAAMljO,GAEJ,OAAOhV,KAAKi4O,MAAMjjO,GAAWhV,KAAKi3O,OAAOz8N,UAC1C,EASI,MAAMk9N,WAA4BtQ,GACvC3wN,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU,CACdqhC,eACAD,cACCJ,GAAmBr0O,GACvB,CAMG4/N,oBACF,OAAOhjO,KAAKm4O,cAAgBn4O,KAAKo4O,cAAcpV,cAAgBhjO,KAAKq4O,YAAYrV,aACjF,CAMGoV,oBACF,IAAKp4O,KAAKm4O,cACR,MAAM,IAAIv4N,MAAJ,0BAA6B5f,KAAK8E,KAAlC,wBAGR,OAAO9E,KAAK+mF,KACb,CAMGsxJ,kBACF,IAAKr4O,KAAKs4O,YACR,MAAM,IAAI14N,MAAJ,0BAA6B5f,KAAK8E,KAAlC,sBAGR,OAAO9E,KAAK+mF,KACb,CAMGoxJ,oBACF,OAAsB,IAAfn4O,KAAK4D,KACb,CAMG00O,kBACF,OAAOt4O,KAAK4D,MAAQ,CACrB,CAODwwN,MAAM+O,GACJ,OAAOnjO,KAAKs4O,YAAct4O,KAAKq4O,YAAYjkB,MAAM+O,GAAUnjO,KAAKo4O,cAAchkB,MAAM+O,EACrF,EC/QH,MAAMoT,GAAW,CAAC,0BAClB,0BAA2B,0BAA2B,0BAA2B,sBAoB1E,MAAMgC,WAAgCvC,GAC3Cv/N,YAAYggM,EAAUrzM,GAEd,IAFqB,QAC3B6R,GACM,uDAAJ,CAAC,EACH+I,MAAMy4L,EArBV,SAAgCA,EAAUrzM,GAAkC,IAA3B6R,EAA2B,uDJJ7C,EIK7B,OAAI7R,aAAiBm1O,GACZn1O,EAAMonO,SAGR/zB,EAAS28B,iBAAiBmD,GAASthO,IAAYshO,GAAS,GAAI,CAACnzO,EAAO,CACzE6R,YAEH,CAamBujO,CAAuB/hC,EAAUrzM,EAAO6R,GACzD,CAMG2uM,gBACF,OAAO5jN,KAAK+mF,MAAM68H,SACnB,CAMGiwB,UACF,OAAO7zO,KAAK+mF,MAAM8sJ,GACnB,CAMGl2D,kBAEF,OAAO39K,KAAK+mF,MAAM42F,aAAe39K,KAAKy2M,SAAS28B,iBAAiB,OAAQ,GACzE,CAMG3tN,aACF,OAAOzlB,KAAK+mF,MAAMthE,MACnB,CAMGxkB,YACF,OAAOjB,KAAK+mF,MAAM9lF,KACnB,CAMG89K,kBAEF,OAAO/+K,KAAK+mF,MAAMg4F,aAAe/+K,KAAKy2M,SAAS28B,iBAAiB,MAAO,GACxE,CAMGY,UAEF,OAAOh0O,KAAK+mF,MAAMitJ,KAAOh0O,KAAKy2M,SAAS28B,iBAAiB,mBAAoB,GAC7E,CAMGoB,yBAEF,OAAOx0O,KAAK+mF,MAAMytJ,oBAAsBx0O,KAAKy2M,SAAS28B,iBAAiB,MAAO,GAC/E,CAMDxkN,GAAGjB,GACD,OAAO3tB,KAAK+mF,MAAMn4D,GAAGjB,EACtB,CAMDutB,KAAKu9L,GAMH,MAAO,CACL51N,UAAWymL,GANKtpM,KAAK+mF,MAAM7rC,KAAKu9L,IAQnC,CAMD9hB,QAAQ2O,GACN,OAAOtlO,KAAK+mF,MAAM4vI,QAAQ2O,EAC3B,CAMDr2M,SACE,OAAOjvB,KAAKkvB,OACb,CAMD5iB,WACE,OAAOtM,KAAKkvB,OACb,CAMDklM,MAAM+O,GAEJ,OAAOnlN,MAAMo2M,QAAM+O,GAAS,CAC1B19M,QAAQ,GAEX,ECpJI,MAAMizN,WAAuCxQ,GAClDzxN,YAAYggM,EAAUrzM,GAEd,IAFqB,QAC3B6R,EAAU,GACJ,uDAAJ,CAAC,EAEH,MADA+I,MAAMy4L,EAAU,CAAC,GACX,IAAI72L,MAAJ,gDAAmD3K,GAC1D,ECLI,MAAM0jO,WAAgCzQ,GAC3CzxN,YAAYggM,EAAUrzM,GAGd,IAHqB,SAC3B6nO,GAAW,EADgB,QAE3Bh2N,EAAU,GACJ,uDAAJ,CAAC,EAEH,MADA+I,MAAMy4L,EAAU,CAAC,GACX,IAAI72L,MAAJ,sBAAyBqrN,EAAW,GAAK,KAAzC,oCNToB,IMSqDh2N,GAChF,ECbH,MAAMqqK,GAAa,CACjB57J,QAAS,UACTkgM,UAAW,OACX9kC,YAAa,cACb+0D,IAAK,eACLl2D,YAAa,OACbl4J,OAAQ,OACRxkB,MAAO,iBACP24N,eAAgB,iBAChBgf,iBAAkB,YAClB5E,IAAK,mBACL/+N,QAAS,yBAQJ,MAAM4jO,WAA6B3Q,GAGxCzxN,YAAYggM,EAAUrzM,GACpB,MAAM01O,EAAiB9jE,GAAa,CAAC,EAAGyhC,EAASmgC,0BAA2BngC,EAASsiC,2BACrF/6N,MAAMy4L,EAAUzhC,GAAa,CAAC,EAAG8jE,EAAgBx5D,IAAal8K,GAFnC,uCAG3B,GAAApD,KAAA,GAAmB,CAAC,GAEpB,MAAM2gI,EAASz/H,GAAOlB,KAAKiJ,IAAI/H,GAG/B,IAAK,MAAOA,EAAK4D,KAAS5B,OAAOq+D,QAAQu3K,GAClCx5D,GAAWp+K,KACd,GAAAlB,KAAA,IAAiBkB,GAAO4D,GAG1Bw9N,GAAetiO,KAAMkB,EAAKy/H,EAE7B,CAEGj9G,cACF,OAAO1jB,KAAKijO,KAAK,UAClB,CAEGrf,gBACF,OAAO5jN,KAAKijO,KAAK,YAClB,CAEGnkD,kBACF,OAAO9+K,KAAKijO,KAAK,cAClB,CAEG4Q,UACF,OAAO7zO,KAAKijO,KAAK,MAClB,CAEGtlD,kBACF,OAAO39K,KAAKijO,KAAK,cAClB,CAEGx9M,aACF,OAAOzlB,KAAKijO,KAAK,SAClB,CAEGhiO,YACF,OAAOjB,KAAKijO,KAAK,QAClB,CAEGrJ,qBACF,OAAO55N,KAAKijO,KAAK,iBAClB,CAEG2V,uBACF,OAAO54O,KAAKijO,KAAK,mBAClB,CAEG+Q,UACF,OAAOh0O,KAAKijO,KAAK,MAClB,CAEGhuN,cACF,OAAOjV,KAAKijO,KAAK,UAClB,CAMD+V,YACE,MAAMloO,EAAS,CAAC,EACVqT,EAAOjhB,OAAOihB,KAAP,GAAYnkB,KAAZ,KAEb,IAAK,IAAIiC,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAAK,CACpC,MAAMf,EAAMijB,EAAKliB,GACXmB,EAAQpD,KAAKiJ,IAAI/H,GACNkC,aAAiB0oO,KAEjB1oO,EAAM4oO,SACrBl7N,EAAO5P,GAAOkC,EAAM8rB,QAEvB,CAED,OAAO8lJ,GAAalkK,EAAQ,CAG1B4S,QAAS1jB,KAAK0jB,QAAQpX,WACtBs3M,UAAW5jN,KAAK4jN,UAAU10L,QAC1B4vJ,YAAa9+K,KAAK8+K,YAAY5vJ,QAC9B2kN,IAAK7zO,KAAK6zO,IAAI3kN,QACdyuJ,YAAa39K,KAAK29K,YAAYzuJ,QAC9BzJ,OAAQzlB,KAAKylB,OAAOyJ,QACpBjuB,MAAOjB,KAAKiB,MAAMiuB,QAClB0pN,iBAAkB54O,KAAK44O,iBAAiBtvO,KAAI/G,GAAKA,EAAE+J,aACnDyyK,YAAa/+K,KAAK45N,eAAe76C,YAAY7vJ,QAC7C8kN,IAAKh0O,KAAKg0O,IAAI9kN,QACdslN,mBAAoBx0O,KAAK45N,eAAe4a,mBAAmBtlN,QAC3Dja,QAASjV,KAAKiV,QAAQuF,YAEzB,CAMDy+N,QACE,MAAMlwM,EAAU/oC,KAAKg5O,YACf58N,EAAOktL,GAAStpM,KAAKy2M,SAAS28B,iBAAiB,mBAAoB,CAACrqM,EAAS,CACjF9zB,QAAS8zB,EAAQ9zB,WAElBm/M,MAAM,CACL3uM,QAAQ,KAEV,MAAO,CACL/B,QAASqlB,EAAQrlB,QACjBtH,OACAtX,KAAM,UAET,qBChII,MAAMo0O,WAAkChR,GAG7CzxN,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUzhC,GAAa,CAC3BvvJ,OAAQ,SACPgxL,EAASmgC,0BAA2BngC,EAASsiC,2BAA4B31O,GAHjD,uCAO3B,GAAApD,KAAA,GAAoB,CAClBm5O,SAAU1iC,EAAS28B,iBAAiB,qBAAsB,cAAehM,IAE5E,CAMD1yL,UACE,OAAO12B,MAAM02B,QAAQ,CACnBjvB,QAAQ,GAEX,CAMGm+L,gBACF,OAAO5jN,KAAKijO,KAAK,YAClB,CAMG4Q,UACF,OAAO7zO,KAAKijO,KAAK,MAClB,CAMGtlD,kBACF,OAAO39K,KAAKijO,KAAK,cAClB,CAMGx9M,aACF,OAAOzlB,KAAKijO,KAAK,SAClB,CAMGhiO,YACF,OAAOjB,KAAKijO,KAAK,QAClB,CAMGlkD,kBACF,OAAO/+K,KAAKijO,KAAK,cAClB,CAMG+Q,UACF,OAAOh0O,KAAKijO,KAAK,MAClB,CAMGuR,yBACF,OAAOx0O,KAAKijO,KAAK,qBAClB,CAOGoS,cACF,OAAOr1O,KAAKijO,KAAK,UAClB,CAMD/nL,KAAKu9L,GAMH,OCrHG,SAAchiC,EAAUgiC,EAAY10D,EAAKjkL,GAC9C,MAAM2qM,EAAU1mB,EAAI1jL,OAAS,IAAMo2M,EAAS1vM,KAAKg9K,GAAOA,EACxD,OAAO00D,EAAWv9L,KAAKuvJ,EAAS3qM,EACjC,CDkHUo7C,CAAKl7C,KAAKy2M,SAAUgiC,EAAYz4O,KAAKo0N,MAAM,CAChD3uM,QAAQ,IADC,GAEPzlB,KAFO,IAGZ,EEpHH,MAAMo5O,GAAiB,IAAIj9N,WAAW,KAAKyX,KAAK,GAEhD,SAASylN,GAAU5iC,EAAU/yL,GAC3B,OAAO+yL,EAAS28B,iBAAiB,UAAW,CAACtvD,GAAMpgK,GAAW4lL,GAAS5lL,GAAWA,GACnF,oBAQM,MAAM41N,WAAoCpR,GAG/CzxN,YAAYggM,EAAUrzM,GAEd,IAFqB,SAC3B6nO,GACM,uDAAJ,CAAC,EACH,MAAMsO,EAAY9iC,EAASmgC,0BAC3B54N,MAAMy4L,EAAUzhC,GAChB,CACEqjD,OAAQ,UACRx1M,UAAW,sBACV02N,GAAYD,GAA4BE,yBAAyBp2O,EAAO6nO,IANrE,uCAON,GAAAjrO,KAAA,GAAiBkD,OAAOihB,KAAKo1N,IAC7B/W,GAAiBxiO,KAAD,GAAOA,KAAP,KAAuBqI,GAAKrI,KAAKiJ,IAAIZ,IACtD,CAI8B,gCAACjF,GAC9B,OAAKA,IAEMA,aAAiBk2O,IAH2B,yDAI9Cl2O,EAFAizO,EAMV,CAMGrT,oBACF,OAAOhjO,KAAKirO,SAAWjtN,MAAMglN,cAAgB,CAC9C,CAMGiI,eACF,OAAQjrO,KAAK6iB,UAAUk8C,OACxB,CAMG80K,UACF,OAAO7zO,KAAKijO,KAAK,MAClB,CAMGhiO,YACF,OAAOjB,KAAKijO,KAAK,QAClB,CAMGpgN,gBAEF,OAAO7iB,KAAKy5O,eAAer2O,OAASpD,KAAKy5O,cAC1C,CAMGA,qBACF,OAAOz5O,KAAKijO,KAAK,YAClB,CAMG5K,aACF,OAAOr4N,KAAKijO,KAAK,SAClB,CAMG+Q,UACF,OAAOh0O,KAAKijO,KAAK,MAClB,CAEDyW,iBAAiBrhB,EAAQx1M,EAAWkmB,GAElC,IAAK,IAAI9mC,EAAI,EAAGA,EAAI,GAAAjC,KAAA,IAAeK,OAAQ4B,IAAK,CAC9C,MAAMoG,EAAI,GAAArI,KAAA,IAAeiC,GACnBwe,EAAIsoB,EAAQ9/B,IAAIZ,GAEjB0zN,GAAYt7M,IACfzgB,KAAKkJ,IAAIb,EAAGoY,EAEf,CAKD,OAFAzgB,KAAKkJ,IAAI,SAAUmvN,GACnBr4N,KAAKkJ,IAAI,YAAa2Z,GACf7iB,IACR,CAMDm2O,aAAa9d,EAAQx1M,EAAWkmB,GAC9B,OAAO/oC,KAAK05O,iBAAiBL,GAAUr5O,KAAKy2M,SAAU4hB,GAASr4N,KAAKy2M,SAAS28B,iBAAiB,qBAAsB,CAACvwN,IAAa,IAAIq2N,GAA0Bl5O,KAAKy2M,SAAU1tK,GAChL,CAMD4wM,cAAcl0N,EAAQ3lB,GACpB,MAAM,IACJ+zO,EACAja,gBAAgB,YACd76C,EADc,mBAEdy1D,IAEA10O,EACJ,OAAO,IAAIo5O,GAA0Bl5O,KAAKy2M,SAAUzhC,GAAa,CAAC,EAAGl1K,EAAS,CAC5E+zO,IAAKA,GAAOyC,GACZ7wN,OAAQA,EAAOyJ,QACf6vJ,cACAy1D,uBAEH,CAMDt5L,KAAKz1B,EAAQoa,EAAS//B,GACpB,IAAK+/B,IAAYA,EAAQ+5M,WACvB,MAAM,IAAIh6N,MAAJ,sDAAyDjZ,GAAUk5B,KAG3E,MAAMkJ,EAAU/oC,KAAK25O,cAAcl0N,EAAQ3lB,GAC3C,OAAOE,KAAK05O,iBAAiBL,GAAUr5O,KAAKy2M,SAAU52K,EAAQ+5M,YAAa55O,KAAKy2M,SAAS28B,iBAAiB,qBAAsB,CAACrqM,EAAQmS,KAAKrb,KAAYkJ,EAC3J,CAMDqtM,SAAS3wN,EAAQ/B,EAAS5jB,GACxB,IAAK4jB,EACH,MAAM,IAAI9D,MAAJ,sDAAyDjZ,GAAU+c,KAG3E,MAAMqlB,EAAU/oC,KAAK25O,cAAcl0N,EAAQ3lB,GAC3C,OAAOE,KAAK05O,iBAAiBL,GAAUr5O,KAAKy2M,SAAU/yL,GAAU1jB,KAAKy2M,SAAS28B,iBAAiB,qBAAsB,CAACgG,KAAkBrwM,EACzI,CAODqrL,MAAM+O,GACJ,OAAOnjO,KAAKirO,SAAWjtN,MAAMo2M,MAAM+O,GAAUkT,EAC9C,EC1LH,MAAOwD,GAASC,GAAWC,IAAc,CAAC,GAAI,GAAI,IAC5CC,GAAMhrN,OAAO,GACbirN,GAAMjrN,OAAO,GACbkrN,GAAMlrN,OAAO,GACbmrN,GAAMnrN,OAAO,GACborN,GAAQprN,OAAO,KACfqrN,GAASrrN,OAAO,KACtB,IAAK,IAAIu2B,GAAQ,EAAGy7D,GAAIi5H,GAAK3xO,GAAI,EAAGC,GAAI,EAAGg9C,GAAQ,GAAIA,KAAS,EAE3Dj9C,GAAGC,IAAK,CAACA,IAAI,EAAID,GAAI,EAAIC,IAAK,GAC/BsxO,GAAQj5O,KAAK,GAAK,EAAI2H,GAAID,KAE1BwxO,GAAUl5O,MAAQ2kD,GAAQ,IAAMA,GAAQ,GAAM,EAAK,IAEnD,IAAI5sB,EAAIqhN,GACR,IAAK,IAAI5xO,EAAI,EAAGA,EAAI,EAAGA,IACnB44G,IAAMA,IAAKi5H,IAASj5H,IAAKm5H,IAAOE,IAAWD,GACvCp5H,GAAIk5H,KACJvhN,GAAKshN,KAASA,IAAOjrN,OAAO5mB,IAAM6xO,IAE1CF,GAAWn5O,KAAK+3B,EACnB,CACD,MAAO2hN,GAAaC,IAAe18C,GAAAA,MAAUk8C,IAAY,GAEnDS,GAAQ,CAACpuO,EAAG26B,EAAGtW,IAAMA,EAAI,GAAKotK,GAAAA,OAAWzxL,EAAG26B,EAAGtW,GAAKotK,GAAAA,OAAWzxL,EAAG26B,EAAGtW,GACrEgqN,GAAQ,CAACruO,EAAG26B,EAAGtW,IAAMA,EAAI,GAAKotK,GAAAA,OAAWzxL,EAAG26B,EAAGtW,GAAKotK,GAAAA,OAAWzxL,EAAG26B,EAAGtW,GA+CpE,MAAM2iE,WAAetM,GAExBrwE,YAAY2rK,EAAUl8H,EAAQ+1I,GAA2C,IAAhCy+C,EAAgC,wDAAb/rK,EAAa,uDAAJ,GAcjE,GAbA3wD,QACAhe,KAAKoiL,SAAWA,EAChBpiL,KAAKkmD,OAASA,EACdlmD,KAAKi8L,UAAYA,EACjBj8L,KAAK06O,UAAYA,EACjB16O,KAAK2uE,OAASA,EACd3uE,KAAK0xB,IAAM,EACX1xB,KAAK26O,OAAS,EACd36O,KAAKq8L,UAAW,EAChBr8L,KAAKo8L,WAAY,EAEjBr2J,GAAAA,OAAck2J,GAEV,GAAKj8L,KAAKoiL,UAAYpiL,KAAKoiL,UAAY,IACvC,MAAM,IAAIxiK,MAAM,4CACpB5f,KAAK+X,MAAQ,IAAIoE,WAAW,KAC5Bnc,KAAK46O,QAAUt+C,GAAIt8L,KAAK+X,MAC3B,CACD8iO,UAlEG,SAAiBpqN,GAAgB,IAAbk+C,EAAa,uDAAJ,GAChC,MAAM8Q,EAAI,IAAIqV,YAAY,IAE1B,IAAK,IAAIvvC,EAAQ,GAAKopB,EAAQppB,EAAQ,GAAIA,IAAS,CAE/C,IAAK,IAAIj9C,EAAI,EAAGA,EAAI,GAAIA,IACpBm3E,EAAEn3E,GAAKmoB,EAAEnoB,GAAKmoB,EAAEnoB,EAAI,IAAMmoB,EAAEnoB,EAAI,IAAMmoB,EAAEnoB,EAAI,IAAMmoB,EAAEnoB,EAAI,IAC5D,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC5B,MAAMwyO,GAAQxyO,EAAI,GAAK,GACjByyO,GAAQzyO,EAAI,GAAK,GACjB0yO,EAAKv7J,EAAEs7J,GACPE,EAAKx7J,EAAEs7J,EAAO,GACd17H,EAAKm7H,GAAMQ,EAAIC,EAAI,GAAKx7J,EAAEq7J,GAC1BI,EAAKT,GAAMO,EAAIC,EAAI,GAAKx7J,EAAEq7J,EAAO,GACvC,IAAK,IAAIvyO,EAAI,EAAGA,EAAI,GAAIA,GAAK,GACzBkoB,EAAEnoB,EAAIC,IAAM82G,EACZ5uF,EAAEnoB,EAAIC,EAAI,IAAM2yO,CAEvB,CAED,IAAIC,EAAO1qN,EAAE,GACT2qN,EAAO3qN,EAAE,GACb,IAAK,IAAIkI,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MAAM0E,EAAQy8M,GAAUnhN,GAClB0mF,EAAKm7H,GAAMW,EAAMC,EAAM/9M,GACvB69M,EAAKT,GAAMU,EAAMC,EAAM/9M,GACvBg/C,EAAKw9J,GAAQlhN,GACnBwiN,EAAO1qN,EAAE4rD,GACT++J,EAAO3qN,EAAE4rD,EAAK,GACd5rD,EAAE4rD,GAAMgjC,EACR5uF,EAAE4rD,EAAK,GAAK6+J,CACf,CAED,IAAK,IAAI3yO,EAAI,EAAGA,EAAI,GAAIA,GAAK,GAAI,CAC7B,IAAK,IAAID,EAAI,EAAGA,EAAI,GAAIA,IACpBm3E,EAAEn3E,GAAKmoB,EAAEloB,EAAID,GACjB,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,IACpBmoB,EAAEloB,EAAID,KAAOm3E,GAAGn3E,EAAI,GAAK,IAAMm3E,GAAGn3E,EAAI,GAAK,GAClD,CAEDmoB,EAAE,IAAM6pN,GAAY/0L,GACpB90B,EAAE,IAAM8pN,GAAYh1L,EACvB,CACDk6B,EAAE7rD,KAAK,EACV,CAuBOynN,CAAQr7O,KAAK46O,QAAS56O,KAAK2uE,QAC3B3uE,KAAK26O,OAAS,EACd36O,KAAK0xB,IAAM,CACd,CACD2X,OAAOjtB,GACH2pB,GAAAA,OAAc/lC,MACd,MAAM,SAAEoiL,EAAF,MAAYrqK,GAAU/X,KAEtBqM,GADN+P,EAAOgxD,GAAQhxD,IACE/b,OACjB,IAAK,IAAIqxB,EAAM,EAAGA,EAAMrlB,GAAM,CAC1B,MAAM+wL,EAAOv6L,KAAKg7D,IAAIukH,EAAWpiL,KAAK0xB,IAAKrlB,EAAMqlB,GACjD,IAAK,IAAIzvB,EAAI,EAAGA,EAAIm7L,EAAMn7L,IACtB8V,EAAM/X,KAAK0xB,QAAUtV,EAAKsV,KAC1B1xB,KAAK0xB,MAAQ0wJ,GACbpiL,KAAK66O,QACZ,CACD,OAAO76O,IACV,CACDs7O,SACI,GAAIt7O,KAAKq8L,SACL,OACJr8L,KAAKq8L,UAAW,EAChB,MAAM,MAAEtkL,EAAF,OAASmuC,EAAT,IAAiBx0B,EAAjB,SAAsB0wJ,GAAapiL,KAEzC+X,EAAM2Z,IAAQw0B,EACU,KAAV,IAATA,IAAwBx0B,IAAQ0wJ,EAAW,GAC5CpiL,KAAK66O,SACT9iO,EAAMqqK,EAAW,IAAM,IACvBpiL,KAAK66O,QACR,CACDU,UAAUnnK,GACNruC,GAAAA,OAAc/lC,MAAM,GACpB+lC,GAAAA,MAAaquC,GACbp0E,KAAKs7O,SACL,MAAME,EAAYx7O,KAAK+X,OACjB,SAAEqqK,GAAapiL,KACrB,IAAK,IAAI0xB,EAAM,EAAGrlB,EAAM+nE,EAAI/zE,OAAQqxB,EAAMrlB,GAAM,CACxCrM,KAAK26O,QAAUv4D,GACfpiL,KAAK66O,SACT,MAAMz9C,EAAOv6L,KAAKg7D,IAAIukH,EAAWpiL,KAAK26O,OAAQtuO,EAAMqlB,GACpD0iD,EAAIlrE,IAAIsyO,EAAUt5D,SAASliL,KAAK26O,OAAQ36O,KAAK26O,OAASv9C,GAAO1rK,GAC7D1xB,KAAK26O,QAAUv9C,EACf1rK,GAAO0rK,CACV,CACD,OAAOhpH,CACV,CACDqnK,QAAQrnK,GAEJ,IAAKp0E,KAAK06O,UACN,MAAM,IAAI96N,MAAM,yCACpB,OAAO5f,KAAKu7O,UAAUnnK,EACzB,CACDsnK,IAAIh/N,GAEA,OADAqpB,GAAAA,OAAcrpB,GACP1c,KAAKy7O,QAAQ,IAAIt/N,WAAWO,GACtC,CACD8gL,WAAWppH,GAEP,GADAruC,GAAAA,OAAcquC,EAAKp0E,MACfA,KAAKq8L,SACL,MAAM,IAAIz8K,MAAM,+BAGpB,OAFA5f,KAAKu7O,UAAUnnK,GACfp0E,KAAKwhH,UACEptC,CACV,CACD9qC,SACI,OAAOtpC,KAAKw9L,WAAW,IAAIrhL,WAAWnc,KAAKi8L,WAC9C,CACDz6E,UACIxhH,KAAKo8L,WAAY,EACjBp8L,KAAK+X,MAAM6b,KAAK,EACnB,CACD4oK,WAAWxyK,GACP,MAAM,SAAEo4J,EAAF,OAAYl8H,EAAZ,UAAoB+1I,EAApB,OAA+BttH,EAA/B,UAAuC+rK,GAAc16O,KAY3D,OAXAgqB,IAAOA,EAAK,IAAIopE,GAAOgvF,EAAUl8H,EAAQ+1I,EAAWy+C,EAAW/rK,IAC/D3kD,EAAG4wN,QAAQ1xO,IAAIlJ,KAAK46O,SACpB5wN,EAAG0H,IAAM1xB,KAAK0xB,IACd1H,EAAG2wN,OAAS36O,KAAK26O,OACjB3wN,EAAGqyK,SAAWr8L,KAAKq8L,SACnBryK,EAAG2kD,OAASA,EAEZ3kD,EAAGk8B,OAASA,EACZl8B,EAAGiyK,UAAYA,EACfjyK,EAAG0wN,UAAYA,EACf1wN,EAAGoyK,UAAYp8L,KAAKo8L,UACbpyK,CACV,EAEL,MAAM2xN,GAAM,CAACz1L,EAAQk8H,EAAU6Z,IjPzExB,SAAyB2/C,GAC5B,MAAMj/C,EAAS9gL,GAAY+/N,IAAkBvyM,OAAO+jC,GAAQvxD,IAAUytB,SAChEnB,EAAMyzM,IAIZ,OAHAj/C,EAAMV,UAAY9zJ,EAAI8zJ,UACtBU,EAAMva,SAAWj6I,EAAIi6I,SACrBua,EAAMvxL,OAAS,IAAMwwO,IACdj/C,CACV,CiPkE4Ck/C,EAAgB,IAAM,IAAIzoJ,GAAOgvF,EAAUl8H,EAAQ+1I,KAcnF6/C,IAbWH,GAAI,EAAM,IAAK,IAKfA,GAAI,EAAM,IAAK,IACfA,GAAI,EAAM,IAAK,IACfA,GAAI,EAAM,GAAI,IACZA,GAAI,EAAM,IAAK,IAKfA,GAAI,EAAM,IAAK,KAE5BI,IADaJ,GAAI,EAAM,IAAK,IACfA,GAAI,EAAM,GAAI,KAClCK,GAAW,CAAC91L,EAAQk8H,EAAU6Z,IAAcQ,IAAwB,eAACv0I,EAAD,uDAAQ,CAAC,EAAT,OAAe,IAAIkrC,GAAOgvF,EAAUl8H,OAAuBplD,IAAfonD,EAAK/mB,MAAsB86J,EAAY/zI,EAAK/mB,OAAO,EAA/F,ICtL7D86M,IDuLWD,GAAS,GAAM,IAAK,IACpBA,GAAS,GAAM,IAAK,ItN5LXpiJ,GuNIW,CAC1C,IAAK9zE,GACL,IAAK4iL,IvNN8BwzC,GuNOlC,CACD,IAAKC,GACL,IAAKC,IvNRE,SAACh5O,GAAmC,IAA5BqnC,EAA4B,uDAAhB,IAAKi/J,EAAW,uCACzC,MAAM3lB,EAAME,GAAS7gL,GACrB,OAAQqgL,KAAcimB,GAAUP,KAAYvvG,GAAGnvD,GAAWs5I,GAAOm4D,GAAGzxM,GAAWs5I,EAChF,GAJI,IAA0BnqF,GAAIsiJ,GuNgBPzyC,GAAgB,IAAKwyC,IAMrBxyC,GAAgB,IAAKwyC,IAMxBzyC,GAAYyyC,ICxChC,SAASI,GAAkB34N,GAChC,SAAKA,GAA8B,KAAnBA,EAAQrjB,SAAkB80K,GAAMzxJ,SAErC,sBAAsBxR,KAAKwR,KAAY,sBAAsBxR,KAAKwR,KCExE,SAA4BmtM,GACjC,MAAMntM,EAAUmtM,EAASxtN,QAAQ,KAAM,IAEjC0D,EAAOuiM,GAAS2yC,GAAYv4N,EAAQ/T,gBAAiB,GAAG,GAE9D,IAAK,IAAI1N,EAAI,EAAGA,EAAI,GAAIA,IACtB,GAVmBizG,EAUDxxF,EAAQzhB,GAVD0qB,EAUK7V,SAAS/P,EAAK9E,GAAI,IAT3CizG,KAAUvoF,EAAO,EAAIuoF,EAAKvqF,cAAgBuqF,EAAKvlG,eAUlD,OAAO,EAXb,IAAuBulG,EAAMvoF,EAe3B,OAAO,CACR,CDVQ2vN,CAAmB54N,GAC3B,iEEVD,MAAMs2N,GAAMhrN,OAAO,GACbirN,GAAMjrN,OAAO,GACbkrN,GAAMlrN,OAAO,GACbutN,GAAMvtN,OAAO,GACbwtN,GAAMxtN,OAAO,GACbytN,GAAQv5O,OAAO+S,OAAO,CACxB6c,EAAGknN,GACHjnN,EAAG/D,OAAO,GACVmwF,EAAGnwF,OAAO,sEACVkE,EAAGlE,OAAO,sEACV5iB,EAAG6tO,GACHyC,GAAI1tN,OAAO,iFACX2tN,GAAI3tN,OAAO,iFACX2gB,KAAM3gB,OAAO,wEAGjB,SAAS4tN,GAAUt0O,GACf,MAAM,EAAEwqB,EAAF,EAAKC,GAAM0pN,GACX1pM,EAAKhlB,GAAIzlB,EAAIA,GACbu0O,EAAK9uN,GAAIglB,EAAKzqC,GACpB,OAAOylB,GAAI8uN,EAAK/pN,EAAIxqB,EAAIyqB,EAC3B,CACD,MAAM+pN,GAAmBL,GAAM3pN,IAAMknN,GACrC,MAAM+C,WAAiBn9N,MACnBnJ,YAAYoF,GACRmC,MAAMnC,EACT,EAEL,MAAMmhO,GACFvmO,YAAYnO,EAAGC,EAAGC,GACdxI,KAAKsI,EAAIA,EACTtI,KAAKuI,EAAIA,EACTvI,KAAKwI,EAAIA,CACZ,CACgB,kBAACk5B,GACd,KAAMA,aAAasP,IACf,MAAM,IAAItkB,UAAU,4CAExB,OAAO,IAAIswN,GAAct7M,EAAEp5B,EAAGo5B,EAAEn5B,EAAG0xO,GACtC,CACmB,qBAAC5yO,GACjB,MAAM41O,EA0jBd,SAAqBC,GAAmB,IAAbx7M,EAAa,uDAAT+6M,GAAMt9H,EACjC,MAAMg+H,EAAU,IAAIvzO,MAAMszO,EAAK78O,QAOzB+8O,EAAWC,GANMH,EAAKv9N,QAAO,CAACoS,EAAKuY,EAAKroC,IACtCqoC,IAAQ0vM,GACDjoN,GACXorN,EAAQl7O,GAAK8vB,EACNhE,GAAIgE,EAAMuY,EAAK5I,KACvBu4M,IACqCv4M,GAOxC,OANAw7M,EAAKx3F,aAAY,CAAC3zH,EAAKuY,EAAKroC,IACpBqoC,IAAQ0vM,GACDjoN,GACXorN,EAAQl7O,GAAK8rB,GAAIgE,EAAMorN,EAAQl7O,GAAIy/B,GAC5B3T,GAAIgE,EAAMuY,EAAK5I,KACvB07M,GACID,CACV,CA1kBqBG,CAAYj2O,EAAOiC,KAAKo4B,GAAMA,EAAEl5B,KAC9C,OAAOnB,EAAOiC,KAAI,CAACo4B,EAAGz/B,IAAMy/B,EAAE67M,SAASN,EAAMh7O,KAChD,CACgB,kBAACoF,GACd,OAAO21O,GAAcQ,cAAcn2O,GAAQiC,IAAI0zO,GAAcS,WAChE,CACDC,OAAO/vN,GACH,KAAMA,aAAiBqvN,IACnB,MAAM,IAAItwN,UAAU,0BACxB,MAAQpkB,EAAGq1O,EAAIp1O,EAAGq1O,EAAIp1O,EAAGq1O,GAAO79O,MACxBsI,EAAGw1O,EAAIv1O,EAAGw1O,EAAIv1O,EAAGw1O,GAAOrwN,EAC1BswN,EAAOlwN,GAAI8vN,EAAKA,GAChBK,EAAOnwN,GAAIiwN,EAAKA,GAChB5vK,EAAKrgD,GAAI4vN,EAAKO,GACd7vK,EAAKtgD,GAAI+vN,EAAKG,GACdE,EAAKpwN,GAAIA,GAAI6vN,EAAKI,GAAME,GACxBE,EAAKrwN,GAAIA,GAAIgwN,EAAKF,GAAMI,GAC9B,OAAO7vK,IAAOC,GAAM8vK,IAAOC,CAC9B,CACDjpM,SACI,OAAO,IAAI6nM,GAAch9O,KAAKsI,EAAGylB,IAAK/tB,KAAKuI,GAAIvI,KAAKwI,EACvD,CACD61O,SACI,MAAQ/1O,EAAGq1O,EAAIp1O,EAAGq1O,EAAIp1O,EAAGq1O,GAAO79O,KAC1Bw/E,EAAIzxD,GAAI4vN,EAAKA,GACbl+J,EAAI1xD,GAAI6vN,EAAKA,GACbl+J,EAAI3xD,GAAI0xD,EAAIA,GACZ6+J,EAAMX,EAAKl+J,EACXE,EAAI5xD,GAAImsN,IAAOnsN,GAAIuwN,EAAMA,GAAO9+J,EAAIE,IACpC6H,EAAIx5D,GAAIwuN,GAAM/8J,GACd+0B,EAAIxmF,GAAIw5D,EAAIA,GACZg3J,EAAKxwN,GAAIwmF,EAAI2lI,GAAMv6J,GACnB6+J,EAAKzwN,GAAIw5D,GAAK5H,EAAI4+J,GAAM/B,GAAM98J,GAC9B++J,EAAK1wN,GAAImsN,GAAM0D,EAAKC,GAC1B,OAAO,IAAIb,GAAcuB,EAAIC,EAAIC,EACpC,CACDz9N,IAAI2M,GACA,KAAMA,aAAiBqvN,IACnB,MAAM,IAAItwN,UAAU,0BACxB,MAAQpkB,EAAGq1O,EAAIp1O,EAAGq1O,EAAIp1O,EAAGq1O,GAAO79O,MACxBsI,EAAGw1O,EAAIv1O,EAAGw1O,EAAIv1O,EAAGw1O,GAAOrwN,EAChC,GAAImwN,IAAO9D,IAAO+D,IAAO/D,GACrB,OAAOh6O,KACX,GAAI29O,IAAO3D,IAAO4D,IAAO5D,GACrB,OAAOrsN,EACX,MAAMswN,EAAOlwN,GAAI8vN,EAAKA,GAChBK,EAAOnwN,GAAIiwN,EAAKA,GAChB5vK,EAAKrgD,GAAI4vN,EAAKO,GACd7vK,EAAKtgD,GAAI+vN,EAAKG,GACdE,EAAKpwN,GAAIA,GAAI6vN,EAAKI,GAAME,GACxBE,EAAKrwN,GAAIA,GAAIgwN,EAAKF,GAAMI,GACxBhnI,EAAIlpF,GAAIsgD,EAAKD,GACb59C,EAAIzC,GAAIqwN,EAAKD,GACnB,GAAIlnI,IAAM+iI,GACN,OAAIxpN,IAAMwpN,GACCh6O,KAAKq+O,SAGLrB,GAAc0B,KAG7B,MAAMC,EAAK5wN,GAAIkpF,EAAIA,GACb2nI,EAAM7wN,GAAIkpF,EAAI0nI,GACdllM,EAAI1rB,GAAIqgD,EAAKuwK,GACbJ,EAAKxwN,GAAIyC,EAAIA,EAAIouN,EAAM1E,GAAMzgM,GAC7B+kM,EAAKzwN,GAAIyC,GAAKipB,EAAI8kM,GAAMJ,EAAKS,GAC7BH,EAAK1wN,GAAI8vN,EAAKG,EAAK/mI,GACzB,OAAO,IAAI+lI,GAAcuB,EAAIC,EAAIC,EACpC,CACDI,SAASlxN,GACL,OAAO3tB,KAAKghB,IAAI2M,EAAMwnB,SACzB,CACD2pM,eAAeC,GACX,MAAMC,EAAKhC,GAAc0B,KACzB,GAAsB,kBAAXK,GAAuBA,IAAW/E,GACzC,OAAOgF,EACX,IAAI9rN,EAAI+rN,GAAgBF,GACxB,GAAI7rN,IAAM+mN,GACN,OAAOj6O,KACX,IAAK88O,GAAkB,CACnB,IAAIp7M,EAAIs9M,EACJhoM,EAAIh3C,KACR,KAAOkzB,EAAI8mN,IACH9mN,EAAI+mN,KACJv4M,EAAIA,EAAE1gB,IAAIg2B,IACdA,EAAIA,EAAEqnM,SACNnrN,IAAM+mN,GAEV,OAAOv4M,CACV,CACD,IAAI,MAAEw9M,EAAF,GAASj0M,EAAT,MAAak0M,EAAb,GAAoBj0M,GAAOk0M,GAAgBlsN,GAC3CmsN,EAAML,EACNM,EAAMN,EACNhoM,EAAIh3C,KACR,KAAOirC,EAAK+uM,IAAO9uM,EAAK8uM,IAChB/uM,EAAKgvM,KACLoF,EAAMA,EAAIr+N,IAAIg2B,IACd9L,EAAK+uM,KACLqF,EAAMA,EAAIt+N,IAAIg2B,IAClBA,EAAIA,EAAEqnM,SACNpzM,IAAOgvM,GACP/uM,IAAO+uM,GAOX,OALIiF,IACAG,EAAMA,EAAIlqM,UACVgqM,IACAG,EAAMA,EAAInqM,UACdmqM,EAAM,IAAItC,GAAcjvN,GAAIuxN,EAAIh3O,EAAIm0O,GAAM9sM,MAAO2vM,EAAI/2O,EAAG+2O,EAAI92O,GACrD62O,EAAIr+N,IAAIs+N,EAClB,CACDC,iBAAiBj3J,GACb,MAAMk3J,EAAU1C,GAAmB,IAAMx0J,EAAI,EAAI,IAAMA,EAAI,EACrDjhF,EAAS,GACf,IAAIq6B,EAAI1hC,KACJusB,EAAOmV,EACX,IAAK,IAAI4G,EAAS,EAAGA,EAASk3M,EAASl3M,IAAU,CAC7C/b,EAAOmV,EACPr6B,EAAOzG,KAAK2rB,GACZ,IAAK,IAAItqB,EAAI,EAAGA,EAAI,IAAMqmF,EAAI,GAAIrmF,IAC9BsqB,EAAOA,EAAKvL,IAAI0gB,GAChBr6B,EAAOzG,KAAK2rB,GAEhBmV,EAAInV,EAAK8xN,QACZ,CACD,OAAOh3O,CACV,CACDo4O,KAAKvsN,EAAGwsN,IACCA,GAAe1/O,KAAK09O,OAAOV,GAAc2C,QAC1CD,EAAc1uM,GAAM2uM,MACxB,MAAMr3J,EAAKo3J,GAAeA,EAAYE,cAAiB,EACvD,GAAI,IAAMt3J,EACN,MAAM,IAAI1oE,MAAM,iEAEpB,IAAIigO,EAAcH,GAAeI,GAAiB72O,IAAIy2O,GACjDG,IACDA,EAAc7/O,KAAKu/O,iBAAiBj3J,GAChCo3J,GAAqB,IAANp3J,IACfu3J,EAAc7C,GAAc+C,WAAWF,GACvCC,GAAiB52O,IAAIw2O,EAAaG,KAG1C,IAAIn+M,EAAIs7M,GAAc0B,KAClBt6N,EAAI44N,GAAc0B,KACtB,MAAMc,EAAU,GAAK1C,GAAmB,IAAMx0J,EAAI,IAAMA,GAClD03J,EAAa,IAAM13J,EAAI,GACvBznE,EAAOmO,OAAO,GAAKs5D,EAAI,GACvB23J,EAAY,GAAK33J,EACjB43J,EAAUlxN,OAAOs5D,GACvB,IAAK,IAAIhgD,EAAS,EAAGA,EAASk3M,EAASl3M,IAAU,CAC7C,MAAM/gC,EAAS+gC,EAAS03M,EACxB,IAAIG,EAAQ3hL,OAAOtrC,EAAIrS,GAMvB,GALAqS,IAAMgtN,EACFC,EAAQH,IACRG,GAASF,EACT/sN,GAAK+mN,IAEK,IAAVkG,EAAa,CACb,IAAI1sE,EAAKosE,EAAYt4O,GACjB+gC,EAAS,IACTmrI,EAAKA,EAAGt+H,UACZ/wB,EAAIA,EAAEpD,IAAIyyJ,EACb,KACI,CACD,IAAI1iK,EAAS8uO,EAAYt4O,EAAS1E,KAAKD,IAAIu9O,GAAS,GAChDA,EAAQ,IACRpvO,EAASA,EAAOokC,UACpBzT,EAAIA,EAAE1gB,IAAIjQ,EACb,CACJ,CACD,MAAO,CAAE2wB,IAAGtd,IACf,CACDg8N,SAASrB,EAAQW,GACb,IACIpyM,EACA+yM,EAFAntN,EAAI+rN,GAAgBF,GAGxB,GAAIjC,GAAkB,CAClB,MAAM,MAAEoC,EAAF,GAASj0M,EAAT,MAAak0M,EAAb,GAAoBj0M,GAAOk0M,GAAgBlsN,GACjD,IAAMwO,EAAG29M,EAAKj7N,EAAGk8N,GAAQtgP,KAAKy/O,KAAKx0M,EAAIy0M,IACjCh+M,EAAG49M,EAAKl7N,EAAGm8N,GAAQvgP,KAAKy/O,KAAKv0M,EAAIw0M,GACnCR,IACAG,EAAMA,EAAIlqM,UACVgqM,IACAG,EAAMA,EAAInqM,UACdmqM,EAAM,IAAItC,GAAcjvN,GAAIuxN,EAAIh3O,EAAIm0O,GAAM9sM,MAAO2vM,EAAI/2O,EAAG+2O,EAAI92O,GAC5D8kC,EAAQ+xM,EAAIr+N,IAAIs+N,GAChBe,EAAOC,EAAIt/N,IAAIu/N,EAClB,KACI,CACD,MAAM,EAAE7+M,EAAF,EAAKtd,GAAMpkB,KAAKy/O,KAAKvsN,EAAGwsN,GAC9BpyM,EAAQ5L,EACR2+M,EAAOj8N,CACV,CACD,OAAO44N,GAAc+C,WAAW,CAACzyM,EAAO+yM,IAAO,EAClD,CACD9C,WAAgC,IAAvBiD,EAAuB,uDAAhBnD,GAAOr9O,KAAKwI,GACxB,MAAM,EAAEF,EAAF,EAAKC,EAAL,EAAQC,GAAMxI,KACdygP,EAAMD,EACNE,EAAM3yN,GAAI0yN,EAAMA,GAChBE,EAAM5yN,GAAI2yN,EAAMD,GAChB1sM,EAAKhmB,GAAIzlB,EAAIo4O,GACbprM,EAAKvnB,GAAIxlB,EAAIo4O,GAEnB,GADW5yN,GAAIvlB,EAAIi4O,KACRxG,GACP,MAAM,IAAIr6N,MAAM,oBACpB,OAAO,IAAIoxB,GAAM+C,EAAIuB,EACxB,EAEL0nM,GAAc2C,KAAO,IAAI3C,GAAcP,GAAMC,GAAID,GAAME,GAAI1C,IAC3D+C,GAAc0B,KAAO,IAAI1B,GAAchD,GAAKC,GAAKD,IACjD,MAAM8F,GAAmB,IAAIh3O,QACtB,MAAMkoC,GACTv6B,YAAYnO,EAAGC,GACXvI,KAAKsI,EAAIA,EACTtI,KAAKuI,EAAIA,CACZ,CACDq4O,eAAeZ,GACXhgP,KAAK4/O,aAAeI,EACpBF,GAAiBx6I,OAAOtlG,KAC3B,CACD6gP,WACI,OAAO7gP,KAAKuI,EAAI2xO,KAAQF,EAC3B,CACuB,yBAACt9N,GACrB,MAAMokO,EAA2B,KAAjBpkO,EAAMrc,OAChBiI,EAAIy4O,GAAcD,EAAUpkO,EAAQA,EAAMwlK,SAAS,IACzD,IAAK8+D,GAAoB14O,GACrB,MAAM,IAAIsX,MAAM,yBAEpB,IAAIrX,EA4SZ,SAAiBD,GACb,MAAM,EAAE62G,GAAMs9H,GACRwE,EAAMjyN,OAAO,GACbkyN,EAAOlyN,OAAO,IACdmyN,EAAOnyN,OAAO,IACdoyN,EAAOpyN,OAAO,IACdqyN,EAAOryN,OAAO,IACdsyN,EAAOtyN,OAAO,IACdwjB,EAAMlqC,EAAIA,EAAIA,EAAK62G,EACnBvmC,EAAMpmC,EAAKA,EAAKlqC,EAAK62G,EACrB9lC,EAAMkoK,GAAK3oK,EAAI2jK,IAAO3jK,EAAMumC,EAC5BrlC,EAAMynK,GAAKloK,EAAIkjK,IAAO3jK,EAAMumC,EAC5B5pB,EAAOgsJ,GAAKznK,EAAIogK,IAAO1nM,EAAM2sE,EAC7BjpB,EAAOqrJ,GAAKhsJ,EAAK2rJ,GAAQ3rJ,EAAO4pB,EAChC3nB,EAAO+pJ,GAAKrrJ,EAAKirJ,GAAQjrJ,EAAOipB,EAChCqiI,EAAOD,GAAK/pJ,EAAK6pJ,GAAQ7pJ,EAAO2nB,EAChCsiI,EAAQF,GAAKC,EAAKF,GAAQE,EAAOriI,EACjCuiI,EAAQH,GAAKE,EAAMJ,GAAQ7pJ,EAAO2nB,EAClCwiI,EAAQJ,GAAKG,EAAMnF,IAAO3jK,EAAMumC,EAChC7oE,EAAMirM,GAAKI,EAAMP,GAAQlrJ,EAAOipB,EAChC5oE,EAAMgrM,GAAKjrM,EAAI2qM,GAAOzuM,EAAM2sE,EAClC,OAAOoiI,GAAKhrM,EAAI2jM,GACnB,CAlUe0H,CADGhF,GAAUt0O,IAErB,MAAMm1C,GAAUl1C,EAAI0xO,MAASA,GAC7B,GAAI6G,EACIrjM,IACAl1C,EAAIwlB,IAAKxlB,QAEZ,CACyC,KAAP,EAAXmU,EAAM,MACP+gC,IACnBl1C,EAAIwlB,IAAKxlB,GAChB,CACD,MAAM+kC,EAAQ,IAAI0D,GAAM1oC,EAAGC,GAE3B,OADA+kC,EAAMu0M,iBACCv0M,CACV,CACyB,2BAAC5wB,GACvB,MAAMpU,EAAIy4O,GAAcrkO,EAAMwlK,SAAS,EAAG,KACpC35K,EAAIw4O,GAAcrkO,EAAMwlK,SAAS,GAAI,KACrC50I,EAAQ,IAAI0D,GAAM1oC,EAAGC,GAE3B,OADA+kC,EAAMu0M,iBACCv0M,CACV,CACa,eAAChgB,GACX,MAAM5Q,EAAQolO,GAAYx0N,GACpBjhB,EAAMqQ,EAAMrc,OACZ8pD,EAASztC,EAAM,GACrB,GAAY,KAARrQ,GAAuB,KAARA,IAA0B,IAAX89C,GAA8B,IAAXA,GACjD,OAAOnqD,KAAK+hP,kBAAkBrlO,GAElC,GAAY,KAARrQ,GAAyB,IAAX89C,EACd,OAAOnqD,KAAKgiP,oBAAoBtlO,GACpC,MAAM,IAAIkD,MAAJ,+GAAkHvT,GAC3H,CACoB,sBAACuvB,GAClB,OAAOoV,GAAM2uM,KAAKS,SAAS6B,GAAoBrmN,GAClD,CACmB,qBAAC0rK,EAASzkL,EAAW0kL,GAErC,MAAMn7L,EAAI81O,GADV56C,EAAUw6C,GAAYx6C,KAEhB,EAAE92K,EAAF,EAAKC,GAAM0xN,GAAmBt/N,GACpC,GAAiB,IAAb0kL,GAA+B,IAAbA,EAClB,MAAM,IAAI3nL,MAAM,kDAEpB,MAAM9Y,EAAoB,EAAXygM,EAAe,KAAO,KAC/BvmF,EAAIhwE,GAAMoxM,QAAQt7O,EAASu7O,GAAY7xN,KACvC,EAAE0C,GAAMupN,GACRt6J,EAAOk7J,GAAO7sN,EAAG0C,GACjBsY,EAAKzd,IAAK3hB,EAAI+1E,EAAMjvD,GACpBuY,EAAK1d,GAAI0C,EAAI0xD,EAAMjvD,GACnB2qB,EAAI7M,GAAM2uM,KAAK2C,qBAAqBthI,EAAGx1E,EAAIC,GACjD,IAAKoS,EACD,MAAM,IAAIj+B,MAAM,+CAEpB,OADAi+B,EAAEgkM,iBACKhkM,CACV,CACD0kM,aAAiC,IAAtBC,EAAsB,wDAC7B,OAAOC,GAAWziP,KAAKkvB,MAAMszN,GAChC,CACDtzN,QAA4B,IAAtBszN,EAAsB,wDACxB,MAAMl6O,EAAI+5O,GAAYriP,KAAKsI,GAC3B,GAAIk6O,EAAc,CACd,MAAM17O,EAAS9G,KAAK6gP,WAAa,KAAO,KACxC,MAAO,GAAP,OAAU/5O,GAAV,OAAmBwB,EACtB,CAEG,MAAO,KAAP,OAAYA,GAAZ,OAAgB+5O,GAAYriP,KAAKuI,GAExC,CACDm6O,SACI,OAAO1iP,KAAKkvB,OAAM,GAAMjrB,MAAM,EACjC,CACD0+O,SACI,OAAO3iP,KAAKuiP,YAAW,GAAMt+O,MAAM,EACtC,CACD49O,iBACI,MAAMp4M,EAAM,kCACN,EAAEnhC,EAAF,EAAKC,GAAMvI,KACjB,IAAKghP,GAAoB14O,KAAO04O,GAAoBz4O,GAChD,MAAM,IAAIqX,MAAM6pB,GACpB,MAAMypC,EAAOnlD,GAAIxlB,EAAIA,GAErB,GAAIwlB,GAAImlD,EADM0pK,GAAUt0O,MACE0xO,GACtB,MAAM,IAAIp6N,MAAM6pB,EACvB,CACDi0M,OAAO/vN,GACH,OAAO3tB,KAAKsI,IAAMqlB,EAAMrlB,GAAKtI,KAAKuI,IAAMolB,EAAMplB,CACjD,CACD4sC,SACI,OAAO,IAAInE,GAAMhxC,KAAKsI,EAAGylB,IAAK/tB,KAAKuI,GACtC,CACD81O,SACI,OAAOrB,GAAcS,WAAWz9O,MAAMq+O,SAASd,UAClD,CACDv8N,IAAI2M,GACA,OAAOqvN,GAAcS,WAAWz9O,MAAMghB,IAAIg8N,GAAcS,WAAW9vN,IAAQ4vN,UAC9E,CACDsB,SAASlxN,GACL,OAAO3tB,KAAKghB,IAAI2M,EAAMwnB,SACzB,CACDirM,SAASrB,GACL,OAAO/B,GAAcS,WAAWz9O,MAAMogP,SAASrB,EAAQ/+O,MAAMu9O,UAChE,CACD+E,qBAAqBzkM,EAAG/qB,EAAGC,GACvB,MAAMosF,EAAI69H,GAAcS,WAAWz9O,MAC7B4iP,EAAK9vN,IAAMknN,IAAOlnN,IAAMmnN,IAAOj6O,OAASgxC,GAAM2uM,KAAOxgI,EAAE2/H,eAAehsN,GAAKqsF,EAAEihI,SAASttN,GACtF+vN,EAAK7F,GAAcS,WAAW5/L,GAAGihM,eAAe/rN,GAChDgwJ,EAAM6/D,EAAG5hO,IAAI6hO,GACnB,OAAO9/D,EAAI26D,OAAOV,GAAc0B,WAAQ59O,EAAYiiL,EAAIw6D,UAC3D,EAIL,SAASuF,GAASryN,GACd,OAAO+tC,OAAO1nD,SAAS2Z,EAAE,GAAI,KAAO,EAAI,KAAOA,EAAIA,CACtD,CACD,SAASsyN,GAAY3mO,GACjB,GAAIA,EAAK/b,OAAS,GAAiB,IAAZ+b,EAAK,GACxB,MAAM,IAAIwD,MAAJ,yCAA4CojO,GAAW5mO,KAEjE,MAAM/P,EAAM+P,EAAK,GACX0tB,EAAM1tB,EAAK8lK,SAAS,EAAG71K,EAAM,GACnC,IAAKA,GAAOy9B,EAAIzpC,SAAWgM,EACvB,MAAM,IAAIuT,MAAJ,2CAEV,GAAe,IAAXkqB,EAAI,IAAeA,EAAI,IAAM,IAC7B,MAAM,IAAIlqB,MAAM,8CAEpB,MAAO,CAAExD,KAAM2kO,GAAcj3M,GAAMopC,KAAM92D,EAAK8lK,SAAS71K,EAAM,GAChE,CAlBD2kC,GAAM2uM,KAAO,IAAI3uM,GAAMyrM,GAAMC,GAAID,GAAME,IACvC3rM,GAAM0tM,KAAO,IAAI1tM,GAAMgpM,GAAKA,IAgCrB,MAAM5+L,GACT3kC,YAAY+Z,EAAGC,GACXzwB,KAAKwwB,EAAIA,EACTxwB,KAAKywB,EAAIA,EACTzwB,KAAK6hP,gBACR,CACiB,mBAACv0N,GACf,MAAMiE,EAAMjE,aAAenR,WACrBlR,EAAO,wBACb,GAAmB,kBAARqiB,IAAqBiE,EAC5B,MAAM,IAAI7E,UAAJ,UAAiBzhB,EAAjB,oCACV,MAAMkB,EAAMolB,EAAMyxN,GAAW11N,GAAOA,EACpC,GAAmB,MAAfnhB,EAAI9L,OACJ,MAAM,IAAIuf,MAAJ,UAAa3U,EAAb,2BACV,OAAO,IAAImwC,GAAU6nM,GAAY92O,EAAIlI,MAAM,EAAG,KAAMg/O,GAAY92O,EAAIlI,MAAM,GAAI,MACjF,CACa,eAACqpB,GACX,MAAMiE,EAAMjE,aAAenR,WAC3B,GAAmB,kBAARmR,IAAqBiE,EAC5B,MAAM,IAAI7E,UAAJ,oDACV,MAAM,EAAE8D,EAAF,EAAKC,GAlCnB,SAA2BrU,GACvB,GAAIA,EAAK/b,OAAS,GAAgB,IAAX+b,EAAK,GACxB,MAAM,IAAIwD,MAAJ,iCAAoCojO,GAAW5mO,KAEzD,GAAIA,EAAK,KAAOA,EAAK/b,OAAS,EAC1B,MAAM,IAAIuf,MAAM,uCAEpB,MAAQxD,KAAMoU,EAAG0iD,KAAMgwK,GAAWH,GAAY3mO,EAAK8lK,SAAS,KACpD9lK,KAAMqU,EAAGyiD,KAAMiwK,GAAeJ,GAAYG,GAClD,GAAIC,EAAW9iP,OACX,MAAM,IAAIuf,MAAJ,uDAA0DojO,GAAWG,KAE/E,MAAO,CAAE3yN,IAAGC,IACf,CAqBwB2yN,CAAkB7xN,EAAMjE,EAAMm1N,GAAWn1N,IAC1D,OAAO,IAAI8tB,GAAU5qB,EAAGC,EAC3B,CACa,eAACnD,GACX,OAAOttB,KAAKqjP,QAAQ/1N,EACvB,CACDu0N,iBACI,MAAM,EAAErxN,EAAF,EAAKC,GAAMzwB,KACjB,IAAKsjP,GAAmB9yN,GACpB,MAAM,IAAI5Q,MAAM,0CACpB,IAAK0jO,GAAmB7yN,GACpB,MAAM,IAAI7Q,MAAM,yCACvB,CACD2jO,WACI,MAAMjxN,EAAOmqN,GAAMvpN,GAAK+mN,GACxB,OAAOj6O,KAAKywB,EAAI6B,CACnB,CACDkxN,aACI,OAAOxjP,KAAKujP,WAAa,IAAInoM,GAAUp7C,KAAKwwB,EAAGisN,GAAMvpN,EAAIlzB,KAAKywB,GAAKzwB,IACtE,CACDyjP,gBAAoC,IAAtBjB,EAAsB,wDAChC,OAAOC,GAAWziP,KAAK0jP,SAASlB,GACnC,CACDkB,WAA+B,IAAtBlB,EAAsB,wDAC3B,MAAMmB,EAAOb,GAASc,GAAoB5jP,KAAKywB,IAC/C,GAAI+xN,EACA,OAAOmB,EACX,MAAME,EAAOf,GAASc,GAAoB5jP,KAAKwwB,IACzCszN,EAAOF,GAAoBC,EAAKxjP,OAAS,GACzC0jP,EAAOH,GAAoBD,EAAKtjP,OAAS,GACzCA,EAASujP,GAAoBC,EAAKxjP,OAAS,EAAIsjP,EAAKtjP,OAAS,EAAI,GACvE,MAAO,KAAP,OAAYA,EAAZ,aAAuByjP,GAAvB,OAA8BD,EAA9B,aAAuCE,GAAvC,OAA8CJ,EACjD,CACDpB,aACI,OAAOviP,KAAKyjP,eACf,CACDv0N,QACI,OAAOlvB,KAAK0jP,UACf,CACDM,oBACI,OAAOvB,GAAWziP,KAAKikP,eAC1B,CACDA,eACI,OAAO5B,GAAYriP,KAAKwwB,GAAK6xN,GAAYriP,KAAKywB,EACjD,EAEL,SAASyzN,KAAuB,2BAARC,EAAQ,yBAARA,EAAQ,gBAC5B,IAAKA,EAAOtuN,OAAO9C,GAAMA,aAAa5W,aAClC,MAAM,IAAIyD,MAAM,4BACpB,GAAsB,IAAlBukO,EAAO9jP,OACP,OAAO8jP,EAAO,GAClB,MAAM9jP,EAAS8jP,EAAOxkO,QAAO,CAACmT,EAAGvB,IAAQuB,EAAIvB,EAAIlxB,QAAQ,GACnDyQ,EAAS,IAAIqL,WAAW9b,GAC9B,IAAK,IAAI4B,EAAI,EAAGgvE,EAAM,EAAGhvE,EAAIkiP,EAAO9jP,OAAQ4B,IAAK,CAC7C,MAAMsvB,EAAM4yN,EAAOliP,GACnB6O,EAAO5H,IAAIqoB,EAAK0/C,GAChBA,GAAO1/C,EAAIlxB,MACd,CACD,OAAOyQ,CACV,CACD,MAAMszO,GAAQx6O,MAAM9G,KAAK,CAAEzC,OAAQ,MAAO,CAACogB,EAAGxe,IAAMA,EAAEqK,SAAS,IAAI61K,SAAS,EAAG,OAC/E,SAAS6gE,GAAWqB,GAChB,KAAMA,aAAkBloO,YACpB,MAAM,IAAIyD,MAAM,uBACpB,IAAI0N,EAAM,GACV,IAAK,IAAIrrB,EAAI,EAAGA,EAAIoiP,EAAOhkP,OAAQ4B,IAC/BqrB,GAAO82N,GAAMC,EAAOpiP,IAExB,OAAOqrB,CACV,CACD,MAAMg3N,GAAYt1N,OAAO,uEACzB,SAASqzN,GAAY/3M,GACjB,GAAmB,kBAARA,EACP,MAAM,IAAI1qB,MAAM,mBACpB,KAAMo6N,IAAO1vM,GAAOA,EAAMg6M,IACtB,MAAM,IAAI1kO,MAAM,2BACpB,OAAO0qB,EAAIh+B,SAAS,IAAI61K,SAAS,GAAI,IACxC,CACD,SAASoiE,GAASj6M,GACd,MAAMvX,EAAI0vN,GAAWJ,GAAY/3M,IACjC,GAAiB,KAAbvX,EAAE1yB,OACF,MAAM,IAAIuf,MAAM,4BACpB,OAAOmT,CACV,CACD,SAAS6wN,GAAoBt5M,GACzB,MAAMhd,EAAMgd,EAAIh+B,SAAS,IACzB,OAAoB,EAAbghB,EAAIjtB,OAAJ,WAAqBitB,GAAQA,CACvC,CACD,SAAS21N,GAAY31N,GACjB,GAAmB,kBAARA,EACP,MAAM,IAAIZ,UAAU,4CAA8CY,GAEtE,OAAO0B,OAAO,KAAD,OAAM1B,GACtB,CACD,SAASm1N,GAAWn1N,GAChB,GAAmB,kBAARA,EACP,MAAM,IAAIZ,UAAU,2CAA6CY,GAErE,GAAIA,EAAIjtB,OAAS,EACb,MAAM,IAAIuf,MAAM,4CAA8C0N,EAAIjtB,QACtE,MAAMgE,EAAQ,IAAI8X,WAAWmR,EAAIjtB,OAAS,GAC1C,IAAK,IAAI4B,EAAI,EAAGA,EAAIoC,EAAMhE,OAAQ4B,IAAK,CACnC,MAAMmG,EAAQ,EAAJnG,EACJuiP,EAAUl3N,EAAIrpB,MAAMmE,EAAGA,EAAI,GAC3BukB,EAAO6xC,OAAO1nD,SAAS0tO,EAAS,IACtC,GAAIhmL,OAAO26B,MAAMxsE,IAASA,EAAO,EAC7B,MAAM,IAAI/M,MAAM,yBACpBvb,EAAMpC,GAAK0qB,CACd,CACD,OAAOtoB,CACV,CACD,SAAS08O,GAAcrkO,GACnB,OAAOumO,GAAYD,GAAWtmO,GACjC,CACD,SAASolO,GAAYx0N,GACjB,OAAOA,aAAenR,WAAaA,WAAWrZ,KAAKwqB,GAAOm1N,GAAWn1N,EACxE,CACD,SAAS2xN,GAAgB30M,GACrB,GAAmB,kBAARA,GAAoBk0B,OAAOqiH,cAAcv2I,IAAQA,EAAM,EAC9D,OAAOtb,OAAOsb,GAClB,GAAmB,kBAARA,GAAoBg5M,GAAmBh5M,GAC9C,OAAOA,EACX,MAAM,IAAI5d,UAAU,sDACvB,CACD,SAASqB,GAAI+E,GAAgB,IAAbC,EAAa,uDAAT0pN,GAAMt9H,EACtB,MAAMruG,EAASgiB,EAAIC,EACnB,OAAOjiB,GAAUkpO,GAAMlpO,EAASiiB,EAAIjiB,CACvC,CACD,SAASywO,GAAKj5O,EAAGonC,GACb,MAAM,EAAEyvE,GAAMs9H,GACd,IAAI3yM,EAAMxhC,EACV,KAAOonC,KAAUsqM,IACblwM,GAAOA,EACPA,GAAOq1E,EAEX,OAAOr1E,CACV,CAwBD,SAASuzM,GAAOx1M,GAA0B,IAAlB48M,EAAkB,uDAAThI,GAAMt9H,EACnC,GAAIt3E,IAAWmyM,IAAOyK,GAAUzK,GAC5B,MAAM,IAAIp6N,MAAJ,oDAAuDioB,EAAvD,gBAAqE48M,IAE/E,IAAI3xN,EAAI/E,GAAI8Z,EAAQ48M,GAChB1xN,EAAI0xN,EACJn8O,EAAI0xO,GAAKzxO,EAAI0xO,GAAKrnM,EAAIqnM,GAAKx5N,EAAIu5N,GACnC,KAAOlnN,IAAMknN,IAAK,CACd,MAAMvtN,EAAIsG,EAAID,EACRtC,EAAIuC,EAAID,EACRa,EAAIrrB,EAAIsqC,EAAInmB,EACZyG,EAAI3qB,EAAIkY,EAAIgM,EAClBsG,EAAID,EAAGA,EAAItC,EAAGloB,EAAIsqC,EAAGrqC,EAAIkY,EAAGmyB,EAAIjf,EAAGlT,EAAIyS,CAC1C,CACD,MAAM8sD,EAAMjtD,EACZ,GAAIitD,IAAQi6J,GACR,MAAM,IAAIr6N,MAAM,0BACpB,OAAOmO,GAAIzlB,EAAGm8O,EACjB,CAkBD,MAAMC,GAAa,CAAC5xN,EAAGC,KAAOD,EAAIC,EAAImnN,IAAOnnN,EACvC4xN,GAAO,CACTtyM,GAAIrjB,OAAO,sCACXsjB,IAAK2nM,GAAMjrN,OAAO,sCAClBujB,GAAIvjB,OAAO,uCACXwjB,GAAIxjB,OAAO,sCACX41N,UAAW51N,OAAO,wCAEtB,SAASowN,GAAgB/2O,GACrB,MAAM,EAAE6qB,GAAMupN,IACR,GAAEpqM,EAAF,GAAMC,EAAN,GAAUC,EAAV,GAAcC,EAAd,UAAkBoyM,GAAcD,GAChCpxM,EAAKmxM,GAAWlyM,EAAKnqC,EAAG6qB,GACxBugB,EAAKixM,IAAYpyM,EAAKjqC,EAAG6qB,GAC/B,IAAI+X,EAAKld,GAAI1lB,EAAIkrC,EAAKlB,EAAKoB,EAAKlB,EAAIrf,GAChCgY,EAAKnd,IAAKwlB,EAAKjB,EAAKmB,EAAKjB,EAAItf,GACjC,MAAMgsN,EAAQj0M,EAAK25M,EACbzF,EAAQj0M,EAAK05M,EAKnB,GAJI1F,IACAj0M,EAAK/X,EAAI+X,GACTk0M,IACAj0M,EAAKhY,EAAIgY,GACTD,EAAK25M,GAAa15M,EAAK05M,EACvB,MAAM,IAAIhlO,MAAM,2CAA6CvX,GAEjE,MAAO,CAAE62O,QAAOj0M,KAAIk0M,QAAOj0M,KAC9B,CACD,SAASg3M,GAAan7O,GAClB,MAAM,EAAEmsB,GAAMupN,GAERvlM,EAAqB,EADRnwC,EAAK1G,OACO,IAC/B,IAAI+L,EAAI20O,GAAch6O,GAKtB,OAJImwC,EAAQ,IACR9qC,IAAS4iB,OAAOkoB,IAChB9qC,GAAK8mB,IACL9mB,GAAK8mB,GACF9mB,CACV,CACD,IAAIy4O,GACAC,GAmDJ,SAASxB,GAAmBh5M,GACxB,OAAO0vM,GAAM1vM,GAAOA,EAAMmyM,GAAMvpN,CACnC,CACD,SAAS8tN,GAAoB12M,GACzB,OAAO0vM,GAAM1vM,GAAOA,EAAMmyM,GAAMt9H,CACnC,CAiBD,SAAS8iI,GAAoB/gP,GACzB,IAAIopC,EACJ,GAAmB,kBAARppC,EACPopC,EAAMppC,OAEL,GAAmB,kBAARA,GAAoBs9D,OAAOqiH,cAAc3/K,IAAQA,EAAM,EACnEopC,EAAMtb,OAAO9tB,QAEZ,GAAmB,kBAARA,EAAkB,CAC9B,GAAmB,KAAfA,EAAIb,OACJ,MAAM,IAAIuf,MAAM,oCACpB0qB,EAAM24M,GAAY/hP,EACrB,KACI,MAAIA,aAAeib,YAMpB,MAAM,IAAIuQ,UAAU,8BALpB,GAAmB,KAAfxrB,EAAIb,OACJ,MAAM,IAAIuf,MAAM,oCACpB0qB,EAAMy2M,GAAc7/O,EAIvB,CACD,IAAKoiP,GAAmBh5M,GACpB,MAAM,IAAI1qB,MAAM,qCACpB,OAAO0qB,CACV,CAUD,SAAS63M,GAAmBt/N,GACxB,GAAIA,aAAqBu4B,GAErB,OADAv4B,EAAUg/N,iBACHh/N,EAEX,IACI,OAAOu4B,GAAUioM,QAAQxgO,EAI5B,CAFD,MAAOrH,GACH,OAAO4/B,GAAU2pM,YAAYliO,EAChC,CACJ,CAmQDmuB,GAAM2uM,KAAKiB,eAAe,GAC1B,MAAMr+M,GAAS,CACX59B,KAAMqgP,GACNC,IAAqB,kBAAT58M,MAAqB,WAAYA,KAAOA,KAAK9F,YAASzhC,GAOhEokP,GAAuB,CAAC,EACjBv7M,GAAQ,CACjBq5M,WADiB,GAEjBP,WAFiB,GAGjByB,YAHiB,GAIjBn2N,OACAsvN,UACA8H,kBAAkBvpN,GACd,IAEI,OADAqmN,GAAoBrmN,IACb,CAIV,CAFD,MAAOpgB,GACH,OAAO,CACV,CACJ,EACD4pO,iBAAkBb,GAClBc,qBAAsBpD,GACtBqD,iBAAmBv+O,IAEf,IADAA,EAAO+6O,GAAY/6O,IACV1G,OAAS,IAAM0G,EAAK1G,OAAS,KAClC,MAAM,IAAIuf,MAAM,yDAEpB,OAAO2kO,GADKx2N,GAAIgzN,GAAch6O,GAAO01O,GAAMvpN,EAAI+mN,IAAOA,GACtD,EAEJj4M,YAAa,WAAsB,IAArBujN,EAAqB,uDAAP,GACxB,GAAIhjN,GAAO0iN,IACP,OAAO1iN,GAAO0iN,IAAIv8M,gBAAgB,IAAIvsB,WAAWopO,IAEhD,GAAIhjN,GAAO59B,KAAM,CAClB,MAAM,YAAEq9B,GAAgBO,GAAO59B,KAC/B,OAAOwX,WAAWrZ,KAAKk/B,EAAYujN,GACtC,CAEG,MAAM,IAAI3lO,MAAM,oDAEvB,EACD4lO,iBAAkB,IACP77M,GAAM27M,iBAAiB37M,GAAM3H,YAAY,KAEpDxG,OAAQ6pK,iBAAuB,2BAAbogD,EAAa,yBAAbA,EAAa,gBAC3B,GAAIljN,GAAO0iN,IAAK,CACZ,MAAMt8M,QAAepG,GAAO0iN,IAAIS,OAAOp8M,OAAO,UAAW46M,MAAeuB,IACxE,OAAO,IAAItpO,WAAWwsB,EACzB,CACI,GAAIpG,GAAO59B,KAAM,CAClB,MAAM,WAAEghP,GAAepjN,GAAO59B,KACxBoC,EAAO4+O,EAAW,UAExB,OADAF,EAASlkP,SAASoyB,GAAM5sB,EAAKsiC,OAAO1V,KAC7BxX,WAAWrZ,KAAKiE,EAAKuiC,SAC/B,CAEG,MAAM,IAAI1pB,MAAM,+CAEvB,EACDgmO,WAAYvgD,eAAOnkM,GAAqB,2BAAbukP,EAAa,iCAAbA,EAAa,kBACpC,GAAIljN,GAAO0iN,IAAK,CACZ,MAAMY,QAAatjN,GAAO0iN,IAAIS,OAAOI,UAAU,MAAO5kP,EAAK,CAAE+J,KAAM,OAAQlE,KAAM,CAAEkE,KAAM,aAAe,EAAO,CAAC,SAC1G4Q,EAAUqoO,MAAeuB,GACzB98M,QAAepG,GAAO0iN,IAAIS,OAAOxqM,KAAK,OAAQ2qM,EAAMhqO,GAC1D,OAAO,IAAIM,WAAWwsB,EACzB,CACI,GAAIpG,GAAO59B,KAAM,CAClB,MAAM,WAAEohP,GAAexjN,GAAO59B,KACxBoC,EAAOg/O,EAAW,SAAU7kP,GAElC,OADAukP,EAASlkP,SAASoyB,GAAM5sB,EAAKsiC,OAAO1V,KAC7BxX,WAAWrZ,KAAKiE,EAAKuiC,SAC/B,CAEG,MAAM,IAAI1pB,MAAM,oDAEvB,EACDomO,gBAAYllP,EACZmlP,oBAAgBnlP,EAChBolP,WAAY7gD,eAAOnlM,GACf,IAAIimP,EAAOjB,GAAqBhlP,GAChC,QAAaY,IAATqlP,EAAoB,CACpB,MAAMC,QAAaz8M,GAAMnO,OAAOrf,WAAWrZ,KAAK5C,GAAM+X,GAAMA,EAAEpU,WAAW,MACzEsiP,EAAOjC,GAAYkC,EAAMA,GACzBlB,GAAqBhlP,GAAOimP,CAC/B,CANmC,2BAAbV,EAAa,iCAAbA,EAAa,kBAOpC,OAAO97M,GAAMnO,OAAO2qN,KAASV,EAChC,EACDY,eAAgB,SAACnmP,GACb,GAA2B,oBAAhB2kP,GACP,MAAM,IAAI9H,GAAS,+CACvB,IAAIoJ,EAAOjB,GAAqBhlP,GAChC,QAAaY,IAATqlP,EAAoB,CACpB,MAAMC,EAAOvB,GAAY1oO,WAAWrZ,KAAK5C,GAAM+X,GAAMA,EAAEpU,WAAW,MAClEsiP,EAAOjC,GAAYkC,EAAMA,GACzBlB,GAAqBhlP,GAAOimP,CAC/B,CARiC,2BAAbV,EAAa,iCAAbA,EAAa,kBASlC,OAAOZ,GAAYsB,KAASV,EAC/B,EACDh2M,aAA+C,IAApCuwM,EAAoC,uDAAvB,EAAG1yM,EAAoB,uDAAZ0D,GAAM2uM,KACrC,MAAM5uO,EAASu8B,IAAU0D,GAAM2uM,KAAOryM,EAAQ,IAAI0D,GAAM1D,EAAMhlC,EAAGglC,EAAM/kC,GAGvE,OAFAwI,EAAO6vO,eAAeZ,GACtBjvO,EAAOqvO,SAAS7D,IACTxrO,CACV,GAEL7N,OAAO4tI,iBAAiBnnG,GAAO,CAC3Bq8M,WAAY,CACR91M,cAAc,EACdjnC,IAAG,IACQ47O,GAEX37O,IAAIsoB,GACKqzN,KACDA,GAAcrzN,EACrB,GAELy0N,eAAgB,CACZ/1M,cAAc,EACdjnC,IAAG,IACQ67O,GAEX57O,IAAIsoB,GACKszN,KACDA,GAAkBtzN,EACzB,KCrpCF,MAkBM80N,GAAiB,CAC5B77M,UAAW,IACX8qI,MAAM,GChBR,SAASgxE,GAAQxiE,GAKf,MAJI,CAAC,GAAI,IAAI7oF,SAAS6oF,EAAI1jL,UACxB0jL,EAAMk4D,GCFH,SAAyBpgN,EAAW6tK,GACzC,GAAyB,KAArB7tK,EAAUx7B,OACZ,OAAOw7B,EAAUqmJ,SAAS,GAG5B,GAAyB,KAArBrmJ,EAAUx7B,OACZ,MAAM,IAAIuf,MAAM,8BAGlB,IAAK6jK,KAAcimB,GAAUP,KAC3B,OAAO7D,GAAKzpK,GAAWqmJ,SAAS,GAGlC,MAAM,EACJ55K,EADI,EAEJC,GACEyoC,GAAMoxM,QAAQvmN,GAClB,OAAO4/J,GAAUkpC,GAAQr8N,EAAGg+O,IAAiB3hB,GAAQp8N,EAAG+9O,IACzD,CDhBqBl/C,CAAgBrjB,KAG7BA,EAAI9/K,OAAO,GACnB,CELD,SAASuiP,GAAgBpjP,GACvB,OAAI0gL,GAAM1gL,IAAUwG,MAAM4G,QAAQpN,GACzB6gL,GAAS7gL,GACP+xK,GAAM/xK,IAAUi5O,GAAkBj5O,EAAMkJ,YAC1C8xK,GAASh7K,EAAMkJ,YACbkkL,GAASptL,GACX6gL,GAAS7gL,GAGXA,CACR,CAUM,MAAMqjP,WAAiCxY,GAC5Cx3N,YAAYggM,GACVz4L,MAAMy4L,EAAU+vC,GAD8B,uDAAlB,IAAIrqO,YACQ,IACzC,CAMDyS,GAAGjB,GACD,OAAO3P,MAAM4Q,GAAG43N,GAAgB74N,GACjC,CAMDgpM,UACE,OAAO32N,KAAKivB,QACb,CAMDA,SACE,OAAOjvB,KAAKsM,UACb,CAMD42N,cACE,OAAOljO,KAAKivB,QACb,CAMD3iB,WACE,OFvDG,SAAwBo6O,GAC7B,IAAKA,EACH,MAAO,KAGT,MAAMC,EAAa1iE,GAASyiE,GAE5B,IAAK,CAAC,GAAI,GAAI,GAAI,IAAIxrJ,SAASyrJ,EAAWtmP,QACxC,MAAM,IAAIuf,MAAM,uCAGlB,MAAM8D,EAAU4lL,GAASi9C,GAAQI,IAAc,GAAG,GAC5C5/O,EAAOuiM,GAAS2yC,GAAYv4N,IAAW,GAAG,GAChD,IAAI5S,EAAS,GAEb,IAAK,IAAI7O,EAAI,EAAGA,EAAI,GAAIA,IACtB6O,EAAS,GAAH,OAAMA,GAAN,OAAegG,SAAS/P,EAAK9E,GAAI,IAAM,EAAIyhB,EAAQzhB,GAAG0oB,cAAgBjH,EAAQzhB,IAGtF,MAAO,KAAP,OAAY6O,EACb,CEmCU81O,CAAe5mP,KACvB,CAMDs2N,YACE,MAAO,WACR,ECrEI,MAAMh6B,WAAYgxC,GAAAA,KAAU,KAAI,uDAExB,MAFwB,ECJvC,MAIMuZ,GAAY,IAAI95N,GAJD,KAKf+5N,GAAY,IAAI/5N,GAAG,GAAG0B,KAAK,IAC3Bs4N,GAAY,IAAIh6N,GAAG,GAAG0B,KAAK,IAGjC,SAASu4N,GAAmB5jP,GAE1B,OAAIA,aAAiB6jP,GAGZ7jP,EAAM4yK,OACJglD,GAAK53N,IAAU84N,GAAS94N,IAAU+xK,GAAM/xK,IAAU0gL,GAAM1gL,IAAUsyK,GAAStyK,GAC7EA,EAGF4jP,GAAmBx8C,GAAcpnM,GACzC,CASM,MAAM6jP,WAA4B3qD,GACvC7lL,YAAYggM,GACVz4L,MAAMy4L,EAAUuwC,GADuB,uDAAX,IAAIj6N,GAAG,IAEpC,CAEgB,kBAAC43B,GAChB,MAAMvhD,EAAQ2yK,GAAOpxH,GAErB,OAAIvhD,EAAMyrB,IAAIg4N,IACL,EACEzjP,EAAM2d,GAAG+lO,IACX,EACE1jP,EAAM2d,GAAGgmO,IACX,EAGF,CACR,CAEgB,kBAACxtO,GAChB,MAAMy9N,EAAQz9N,EAAM,GAEpB,OAlDiB,MAkDby9N,EACK,CAAC,EAAG,GAlDI,MAmDNA,EACF,CAAC,EAAG,GAnDI,MAoDNA,EACF,CAAC,EAAG,GAGN,CAAC,EAAG,EACZ,CAEiB,mBAACz9N,GACjB,OAAQA,EAAMlZ,QACZ,KAAK,EACH,OAAO,IAAI8b,WAAW,CAhET,MAkEf,KAAK,EACH,OAAO,IAAIA,WAAW,CAlET,MAoEf,KAAK,EACH,OAAO,IAAIA,WAAW,CApET,MAsEf,QACE,OAAO,IAAIA,WAAW,IAE3B,CAMDyS,GAAGjB,GAED,OAAIqtM,GAAKrtM,IAAUuuM,GAASvuM,GACnB3P,MAAM4Q,GAAGjB,GAIX3P,MAAM4Q,GAAG5uB,KAAKy2M,SAAS28B,iBAAiB,eAAgB,CAACzlN,IACjE,CAMDgpM,UACE,OAAO32N,KAAKivB,QACb,CAMDA,SACE,OAAOjvB,KAAKsM,UACb,CAMD42N,cACE,OAAOljO,KAAKivB,QACb,CAMD3iB,WACE,MAAMjM,EAAS4mP,GAAoBC,WAAWlnP,MAC9C,OAAO6qM,GAAc7qM,KAAKo0N,QAAQlyC,SAAS,EAAG7hL,GAASL,KAAKy2M,SAAS2iB,UACtE,CAMD9C,YACE,MAAO,cACR,EChII,MAAM6wB,GAAoB,IAAIhrO,WAAW,CAAC,MAuBjD,SAASirO,GAAqB3wC,EAAUrzM,GACtC,OAAOA,aAAiBikP,GAA8BjkP,EAAM2jF,MAAQ3jF,aAAiBqjP,IAA4BrjP,aAAiB6jP,GAAsB7jP,EAAQ0gL,GAAM1gL,IAAUwG,MAAM4G,QAAQpN,IAAU+xK,GAAM/xK,GAdhN,SAAmBqzM,EAAUrzM,GAG3B,GAAqB,KAAjBA,EAAM/C,OACR,OAAOo2M,EAAS28B,iBAAiB,oBAAqB,CAAChwO,IAClD,GAAiB,MAAbA,EAAM,GACf,OAAOqzM,EAAS28B,iBAAiB,oBAAqB,CAAChwO,EAAM8+K,SAAS,KAGxE,MAAO36K,EAAQlH,GAAU4mP,GAAoBK,WAAWlkP,GACxD,OAAOqzM,EAAS28B,iBAAiB,eAAgB,CAACtP,GAAQ1gO,EAAM8+K,SAAS36K,EAAQA,EAASlH,KAC3F,CAGwN0nO,CAAUtxB,EAAUxyB,GAAS7gL,IAAU43N,GAAK53N,IAAU84N,GAAS94N,IAAUsyK,GAAStyK,GAASqzM,EAAS28B,iBAAiB,eAAgB,CAAChwO,IArB/V,SAAsBqzM,EAAUrzM,GAC9B,MAAM8lC,EAAUshK,GAAcpnM,GAC9B,OAA0B,KAAnB8lC,EAAQ7oC,OAAgBo2M,EAAS28B,iBAAiB,oBAAqB,CAAClqM,IAAYutK,EAAS28B,iBAAiB,eAAgB,CAACtP,GAAQ56L,IAC/I,CAkBwWq+M,CAAa9wC,EAAUrzM,EAC/X,CAWM,MAAMikP,WAAoCrR,GAC/Cv/N,YAAYggM,GACVz4L,MAAMy4L,EAAU2wC,GAAqB3wC,EADS,uDAAlB,IAAIt6L,YAEjC,CAMG6mN,oBACF,MAAMwkB,EAAYxnP,KAAKynP,WACvB,OAAOD,GACPA,EAAY,EAAI,EAAI,EACrB,CAMGC,iBACF,OAAOznP,KAAK+mF,iBAAiBkgK,GAAsBA,GAAoBC,WAAWlnP,KAAK+mF,OAAS/mF,KAAK+mF,MAAMi8I,aAC5G,CAMD9zM,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDkC,YACE,MAAO,SACR,CAODlC,MAAM+O,GACJ,MAAM14B,EAAUzqM,KAAK+mF,MAAMqtI,QAAQlyC,SAAS,EAAGliL,KAAKynP,YACpD,OAAOtkB,EAAS14B,EAAUhP,GAAUz7L,KAAK+mF,iBAAiBkgK,GAAsBA,GAAoBS,YAAYj9C,GAAW08C,GAAmB18C,EAC/I,ECpFH,SAAS+7C,GAAgBpjP,GACvB,GAAI0gL,GAAM1gL,IAAUwG,MAAM4G,QAAQpN,GAChC,OAAO6gL,GAAS7gL,GACX,IAAKA,EACV,OAAO,IAAI+Y,WACN,GAAIg5J,GAAM/xK,GACf,OAAOg7K,GAASh7K,GACX,GAAIotL,GAASptL,GAClB,OAAOonM,GAAcpnM,EAAMkJ,YAG7B,MAAM,IAAIsT,MAAJ,4EAA+Exc,GACtF,CAED,MAAMukP,WAAsB1Z,GAC1Bx3N,YAAYggM,GAA0C,IAAhCmxC,EAAgC,uDAAlB,IAClC,MAAM1+M,EAAUs9M,GADoC,wCAIpD,GAFqC,EAAjBt9M,EAAQ7oC,OAEVunP,GAAe1+M,EAAQ05F,MAAK7vG,GAAKA,IACjD,MAAM,IAAInT,MAAJ,+CAAkDgoO,GAAe,EAAjE,yBAAmF1+M,EAAQ7oC,SAGnG2d,MAAMy4L,EAAUvtK,EAAS0+M,EAC1B,CAMDh5N,GAAGjB,GACD,OAAO3P,MAAM4Q,GAAG43N,GAAgB74N,GACjC,CAMDgpM,UACE,OAAO32N,KAAKivB,QACb,CAMDA,SACE,OAAOjvB,KAAKsM,UACb,CAMD42N,cACE,OAAOljO,KAAKivB,QACb,CAMD3iB,WACE,OAAOu+L,GAAc7qM,KAAMA,KAAKy2M,SAAS2iB,UAC1C,CAMD9C,YACE,MAAO,WACR,EAYI,MAAMuxB,WAAyBF,GACpClxO,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU,IAAKrzM,EACtB,EAGI,MAAM0kP,WAA2BH,GACtClxO,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU,IAAKrzM,EACtB,EC3FI,MAAM2kP,WAAqB7f,GAChCzxN,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU,CACdtsJ,OAAQ,SAER69L,WAAY,kBACX5kP,EACJ,CAMG6kP,kBACF,OAAOjoP,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMG4zB,iBACF,OAAOhoP,KAAKijO,KAAK,aAClB,CAMGl8N,WACF,OAAO/G,KAAKmqD,OAAOpjD,IACpB,CAMGojD,aACF,OAAOnqD,KAAKijO,KAAK,SAClB,ECpCH,SAASilB,GAAWzxC,EAAUx3G,GAC5B,OAAOA,EAAK9mE,OAAOxY,QAAO,CAAC7O,EAAD,EAGvBlN,KAAU,IAHsB,KACjCqH,EADiC,KAEjCnG,GACW,EAEX,OADAgM,EAAO7F,EAAKghO,SAAL,eAAsBroO,IAAS0I,YAAcmqM,EAASi/B,iBAAiB5wO,GACvEgM,CAAP,GACC,CAAC,EACL,CAID,SAASq3O,GAAoB1xC,EAAUrzM,EAAOglP,GAE5C,MAAM,KACJl3O,EADI,UAEJ6wN,GACE3+N,EAGEilP,EAActmB,aAAqBumB,GAAmBvmB,EAAU3N,QAAU2N,EAE1E9iI,EAAOmpJ,GAAS3xC,EAASurB,aAAaqmB,GAAappJ,KAEzD,MAAO,CACL/tF,OACA2lO,QAASqR,GAAWzxC,EAAUx3G,GAC9B8iI,YACA9iI,OAEH,CAID,SAASspJ,GAAiB9xC,EAAUrzM,EAAOglP,GAEzC,MAAMrmB,EAAYtrB,EAAS+xC,eAAevkP,QAC1C89N,EAAU74N,IAAI9F,EAAM8+K,SAAS,EAAG,GAAI,GAEpC,MAAMjjF,EAAOmpJ,GAAS3xC,EAASurB,aAAaD,GAAW9iI,KAEvD,MAAO,CACL/tF,KAAM9N,EAAM8+K,SAAS,GACrB20D,QAASqR,GAAWzxC,EAAUx3G,GAC9B8iI,YACA9iI,OAEH,CA8BM,MAAMqpJ,WAAyBra,GACpCx3N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUrzM,EAAO,GACxB,CAMD8/N,cACE,OAAOljO,KAAKkvB,OACb,EASI,MAAMu5N,WAAoBvgB,GAC/BzxN,YAAYggM,EAAUrzM,EAAO67F,GAC3B,MAAM/1D,EAtCV,SAAoButK,GAA2C,IAAjCrzM,EAAiC,uDAAzB,IAAI+Y,WAAcisO,EAAO,uCAC7D,GAAItkE,GAAM1gL,IAAU+xK,GAAM/xK,GACxB,OAAOmlP,GAAiB9xC,EAAUxyB,GAAS7gL,GAAQglP,GAC9C,GAAIzuH,GAASv2H,IAAUA,EAAM2+N,WAAa3+N,EAAM8N,KACrD,OAAOi3O,GAAoB1xC,EAAUrzM,EAAOglP,GAG9C,MAAM,IAAIxoO,MAAJ,qCAAwCxc,EAAxC,4BAAiEA,GACxE,CA8BmBslP,CAAWjyC,EAAUrzM,EAAO67F,GAE5C,IACEjhF,MAAMy4L,EAAU,CACdsrB,UAAWumB,GAEXp3O,KAAMg3N,GAAAA,KAAYh/L,EAAQ2tM,UACzB3tM,EAWJ,CAVC,MAAO1tB,GACP,IAAIiK,EAAS,kBAEb,IACE,MAAMxN,EAAIw+L,EAASurB,aAAa94L,EAAQ64L,WACxCt8M,EAAS,GAAH,OAAMxN,EAAEugM,QAAR,YAAmBvgM,EAAEwN,OAE5B,CADC,MAAOjK,GACR,CAED,MAAM,IAAIoE,MAAJ,gCAAmC6F,EAAnC,cAA+CjK,EAAMK,SAC5D,CAED7b,KAAKooP,MAAQl/M,EAAQ+1D,IACtB,CAMG/tF,WACF,MAAO,IAAIlR,KAAKijO,KAAK,QAAQrkN,SAC9B,CAMGi4N,cACF,OAAOqR,GAAWloP,KAAKy2M,SAAUz2M,KAAKi/F,KACvC,CAMG0pJ,kBACF,MAAO,IAAI3oP,KAAKijO,KAAK,QAAQ1hK,UAC9B,CAMGwgK,gBACF,OAAO/hO,KAAKijO,KAAK,aAAa7O,OAC/B,CAMGh4M,WACF,OAAOpc,KAAKijO,KAAK,QAAQ7O,OAC1B,CAMGn1H,WACF,OAAOj/F,KAAKooP,KACb,CAMG3iO,aACF,OAAOzlB,KAAKy2M,SAASurB,aAAahiO,KAAK+hO,WAAWt8M,MACnD,CAMG+yL,cACF,OAAOx4M,KAAKy2M,SAASurB,aAAahiO,KAAK+hO,WAAWvpB,OACnD,CAMDl5G,GAAG3xE,GACD,OAAOA,EAAMo0M,UAAU,KAAO/hO,KAAK+hO,UAAU,IAAMp0M,EAAMo0M,UAAU,KAAO/hO,KAAK+hO,UAAU,EAC1F,CAMDpL,QAAQQ,GACN,IAAI5I,EAAOq6B,EAEX,IAAI/+O,EAEJ,IACEA,EAAO7J,KAAKy2M,SAASurB,aAAahiO,KAAK+hO,UAExC,CADC,MAAOvmN,GACR,CAED,OAAOw5J,GAAa,CAClB9jK,KAAMlR,KAAK2oP,YAAYhpO,QAAO,CAACzO,EAAD,SAAQgiB,EAAGJ,GAAX,SAAkBkiJ,GAAa9jK,EAAM,CACjE,CAACgiB,GAAIJ,EAAE6jM,QAAQQ,IADa,GAE1B,CAAC,GACL1xM,OAA2B,QAAlB8oM,EAAQ1kN,SAA4B,IAAV0kN,OAAmB,EAASA,EAAM9oM,OACrE+yL,QAA6B,QAAnBowC,EAAS/+O,SAA6B,IAAX++O,OAAoB,EAASA,EAAOpwC,SACxE2e,GAActtN,EAAO,CACtBsuM,KAAMtuM,EAAKo1F,KAAKk5G,KAAK7uM,KAAI0tC,GAAKA,EAAE1qC,cAC9B,KACL,CAMDgqN,YACE,MAAO,MACR,ECxOH,SAASuyB,GAAYpyC,EAAU3xM,EAAM1B,GAAuB,IAAhB0lP,IAAgB,yDAE1D,OAAI1lP,GAASs2H,GAAWt2H,EAAM8oO,iBACrB9oO,EAGFqzM,EAAS28B,iBAAiBtuO,EAAM,CAACgkP,EAAU9sB,GAAO54N,IAAU24N,GAAY34N,GAAS,KAAOwG,MAAM4G,QAAQpN,GAASA,EAAQ,CAACA,GAASA,GACzI,CAMD,SAASgb,GAAOq4L,EAAUrzM,GACxB,OACAA,GAASs2H,GAAWt2H,EAAMm+D,SAAW,IAAIn+D,EAAMm+D,WAAar+D,OAAOq+D,QAAQn+D,GAAS,CAAC,IAAIuc,QAAO,CAACkK,EAAD,KAAuB,IAAhB3oB,EAAKkC,GAAW,EAErH,OADAymB,EAAI3oB,GAPR,SAAqBu1M,EAAUv1M,EAAKkC,GAClC,MAAe,eAARlC,EAAuB2nP,GAAYpyC,EAAU,cAAerzM,GAAO,GAAiB,kBAARlC,EAA0B2nP,GAAYpyC,EAAU,mBAAoBrzM,GAAiB,gBAARlC,EAAwB2nP,GAAYpyC,EAAU,oBAAqBrzM,GAASA,CAC7O,CAKc2lP,CAAYtyC,EAAUv1M,EAAKkC,GAC/BymB,CAAP,GACC,CACD8gL,WAAY8L,EAAS28B,iBAAiB,cAAe,IACrD/Z,cAAe5iB,EAAS28B,iBAAiB,mBAAoB,IAC7D9Z,YAAa7iB,EAAS28B,iBAAiB,oBAAqB,KAE/D,CAEM,MAAM4V,WAA+BlmB,GAC1CrsN,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUr4L,GAAOq4L,EAAUrzM,GAClC,CAMGunM,iBACF,OAAO3qM,KAAKijO,KAAK,aAClB,CAMG5J,oBACF,OAAOr5N,KAAKijO,KAAK,gBAClB,CAMG3J,kBACF,OAAOt5N,KAAKijO,KAAK,cAClB,ECrDI,MAAMgmB,GAAWjlE,GAAY,QACvBklE,GAAWllE,GAAY,QACvBmlE,GAAWnlE,GAAY,QACvBolE,GAAUplE,GAAY,QAqB5B,MAAMqlE,WAAiCpb,GAC5Cx3N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUylB,GAAS94N,GAASuhO,GAAQvhO,EAAO,CAC/CmyK,MAAM,IACHnyK,EAAO,GACb,CAMGkmP,aACF,OAAOtpP,KAAK4uB,GAAGq6N,GAChB,CAMGM,aACF,OAAOvpP,KAAK4uB,GAAGs6N,GAChB,CAMGM,gBACF,OAAOxpP,KAAK4uB,GAAGu6N,GAChB,CAMGM,YACF,OAAOzpP,KAAK4uB,GAAGw6N,GAChB,CAMDM,cAAchtO,EAAOitO,GACnB,GAA0B,OAAtBA,QAAoD,IAAtBA,GAAgCA,EAAkBtpP,OAAQ,CAC1F,GAAIL,KAAKspP,OACP,OAjER,SAAuB7yC,EAAU/5L,EAAOitO,GACtC,OAAOA,EAAkBlzC,EAAS28B,iBAAiB,mBAAoB,CAAC12N,EAAM03M,OAAM,KAAQw1B,WAAW77N,IAAI,IAAIhB,GAAG48N,EAAkBtpP,SAASma,WAC9I,CA+DcqvO,CAAc7pP,KAAKy2M,SAAU/5L,EAAOitO,GACtC,GAAI3pP,KAAKupP,OACd,OA/DR,SAAuB9yC,EAAU/5L,EAAOitO,GAEtC,OAAOA,EADQlzC,EAAS28B,iBAAiB,yBAA0B,CAAC12N,EAAM03M,OAAM,KAChDhxN,MAAMoX,WACvC,CA4DcsvO,CAAc9pP,KAAKy2M,SAAU/5L,EAAOitO,EAE9C,CAGD,GAAI3pP,KAAKypP,OAA0B,KAAjB/sO,EAAMrc,OACtB,OAhEN,SAA0Bo2M,EAAU/5L,GAClC,OAAO+5L,EAAS28B,iBAAiB,YAAa,CAAC12N,GAChD,CA8DYqtO,CAAiB/pP,KAAKy2M,SAAU/5L,EAI1C,CAMDi6M,UACE,OAAO32N,KAAKsM,UACb,CAMDgqN,YACE,MAAO,mBACR,CAMDhqN,WACE,OAAOtM,KAAKqjO,QAAU7hC,GAAYxhM,MAAQspM,GAAStpM,KACpD,ECtGI,MAAMmnP,GAAoB,IAAIhrO,WAAW,CAAC,MAyBjD,SAASirO,GAAqB3wC,EAAUrzM,GACtC,OAAOA,aAAiB4mP,GAAsB5mP,EAAM2jF,MAAQ3jF,aAAiBykP,IAAoBzkP,aAAiB6jP,GAAsB7jP,EAAQ43N,GAAK53N,IAAU84N,GAAS94N,IAAUsyK,GAAStyK,GAASqzM,EAAS28B,iBAAiB,eAAgB,CAAChwO,IAAUwG,MAAM4G,QAAQpN,IAAU+xK,GAAM/xK,IAAU0gL,GAAM1gL,GAhBzS,SAAmBqzM,EAAUrzM,GAG3B,GAAqB,KAAjBA,EAAM/C,OACR,OAAOo2M,EAAS28B,iBAAiB,YAAa,CAAChwO,IAC1C,GAAiB,MAAbA,EAAM,GACf,OAAOqzM,EAAS28B,iBAAiB,YAAa,CAAChwO,EAAM8+K,SAAS,KAGhE,MAAO36K,EAAQlH,GAAU4mP,GAAoBK,WAAWlkP,GACxD,OAAOqzM,EAAS28B,iBAAiB,eAAgB,CAACtP,GAAQ1gO,EAAM8+K,SAAS36K,EAAQA,EAASlH,KAC3F,CAKiT0nO,CAAUtxB,EAAUxyB,GAAS7gL,IAvB/U,SAAsBqzM,EAAUrzM,GAC9B,MAAM8lC,EAAUshK,GAAcpnM,GAC9B,OAA0B,KAAnB8lC,EAAQ7oC,OAAgBo2M,EAAS28B,iBAAiB,YAAa,CAAClqM,IAAYutK,EAAS28B,iBAAiB,eAAgB,CAACtP,GAAQ56L,IACvI,CAoBwVq+M,CAAa9wC,EAAUrzM,EAC/W,CAWM,MAAM4mP,WAA4BhU,GACvCv/N,YAAYggM,GACVz4L,MAAMy4L,EAAU2wC,GAAqB3wC,EADS,uDAAlB,IAAIt6L,YAEjC,CAMG6mN,oBACF,MAAMwkB,EAAYxnP,KAAKynP,WACvB,OAAOD,GACPA,EAAY,EAAI,EAAI,EACrB,CAMGC,iBACF,OAAOznP,KAAK+mF,iBAAiBkgK,GAAsBA,GAAoBC,WAAWlnP,KAAK+mF,OAAS/mF,KAAK+mF,MAAMi8I,aAC5G,CAMDtuL,UACE,MAAMtxC,EAAQpD,KAAK+mF,MAAMqtI,QAAQlyC,SAAS,EAAGliL,KAAKynP,YAClD,MAAO,CACLzgK,MAAO,CAAC,IAAI7qE,WAAWnc,KAAK+mF,iBAAiBkgK,GAAsBA,GAAoBS,YAAYtkP,GAAS+jP,IAAoB/jP,GAEnI,CAMD8rB,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDkC,YACE,MAAO,SACR,CAODlC,MAAM+O,GACJ,MAAM14B,EAAUzqM,KAAK+mF,MAAMqtI,QAAQlyC,SAAS,EAAGliL,KAAKynP,YACpD,OAAOtkB,EAAS14B,EAAUhP,GAAUz7L,KAAK+mF,iBAAiBkgK,GAAsBA,GAAoBS,YAAYj9C,GAAW08C,GAAmB18C,EAC/I,EChGH,SAASs9B,GAAUtxB,EAAU1yB,GAC3B,MAAI,CAAC,EAAG,IAAI7oF,SAAS6oF,EAAI1jL,QAChB,CACLyqG,GAAIi5E,GAEkB,KAAfA,EAAI1jL,OACN,CACL4pP,UAAWlmE,GAEJA,EAAI1jL,QAAU,EAChB,CACL6pP,MAAOzzC,EAAS28B,iBAAiB,eAAgB,CAACrvD,IAAMvpK,YAIrDupK,CACR,CAuBM,MAAMomE,WAA4B/iB,GACvC3wN,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAU,CACd3rG,GAAI,YACJo/I,MAAO,wBACP3mB,IAAK,QAEL6mB,UAAW,OAEXH,UAAW,QA9BjB,SAAwBxzC,EAAUrzM,GAChC,OAAIA,aAAiBykP,GACZ,CACL/8I,GAAI1nG,GAEG0gL,GAAM1gL,GAER2kO,GAAUtxB,EAAUrzM,GAClBA,aAAiB+mP,GACnB/mP,EACEA,aAAiB6jP,IAAuBjsB,GAAK53N,IAAU84N,GAAS94N,GAClE,CACL8mP,MAAOhuB,GAAS94N,GAASA,EAAQA,EAAMoX,YAEhCg2K,GAASptL,GACX2kO,GAAUtxB,EAAUjM,GAAcpnM,EAAMkJ,aAG1ClJ,CACR,CAYMinP,CAAe5zC,EAAUrzM,GAC7B,CAMDsxC,UACE,MAAM,MACJqyC,EADI,MAEJC,EAAQ,IACNhnF,KAAK+mF,MAAMryC,UACf,MAAO,CACLqyC,QACAC,MAAO,CAAC,IAAI7qE,WAAW,CAACnc,KAAK4D,WAAYojF,GAE5C,CAMD16E,WACE,OAAOtM,KAAKoD,MAAMkJ,UACnB,ECvEI,MAAM0vL,WAAajjE,QACxBtiH,YAAYggM,GAAyB,IAAfrzM,EAAe,wDACnC4a,MAAM8lK,GAAM1gL,GAAsB,IAAbA,EAAM,GAAWA,aAAiB21H,QAAU31H,EAAMq6F,YAAcr6F,GACrFpD,KAAKy2M,SAAWA,CACjB,CAMGusB,oBACF,OAAO,CACR,CAMGj8N,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAO/+D,KAAKsqP,OACb,CAMGA,cACF,OAAQtqP,KAAKuqP,MACd,CAMGA,aACF,OAAOvqP,KAAKy9F,SACb,CAMD7uE,GAAGjB,GACD,OAAO3tB,KAAKy9F,aAAe9vE,aAAiBorG,QAAUprG,EAAM8vE,UAAY9vE,EACzE,CAMD+mB,UACE,MAAO,CACLsyC,MAAO,CAAChnF,KAAKo0N,SAEhB,CAMDllM,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDuC,UACE,OAAO32N,KAAKivB,QACb,CAMDA,SACE,OAAOjvB,KAAKy9F,SACb,CAMDylI,cACE,OAAOljO,KAAKivB,QACb,CAMDqnM,YACE,MAAO,MACR,CAMDhqN,WACE,OAAOtM,KAAKivB,SAAS3iB,UACtB,CAQD8nN,MAAM+O,GACJ,OAAO,IAAIhnN,WAAW,CAACnc,KAAKy9F,UAAY,EAAI,GAC7C,EC7HH,MAAM+sJ,GAAW,IAOjB,SAASC,GAAernP,GACtB,OAAOA,EAAQ,IAAI+Y,WAAW,CAACquO,MAAwB,IAAIruO,WAAW,CAPvD,GAQhB,CAgBD,SAASuuO,GAAWj0C,EAAUrzM,GAC5B,OAAI0gL,GAAM1gL,GAbZ,SAAuBA,GACrB,OAAOA,EAAM/C,OAAS+C,EAAM8+K,SAAS,EAAG,GAAK,IAAI/lK,WAAW,CAb7C,GAchB,CAYUwuO,CAAcvnP,GACZ24N,GAAY34N,IAAUA,aAAiB21H,SAAWi7E,GAAU5wM,GAC9DqnP,GAAe,IAAIG,GAAKn0C,EAAUrzM,GAAOmnP,QACvCruB,GAAS94N,GACXqnP,GAAernP,EAAQ,GAZlC,SAAwBqzM,EAAUrzM,GAChC,OAAO,IAAI+Y,WAAW,EAAE,IAAIyuO,GAAKn0C,EAAUrzM,EAAMynP,KAAKN,OAASC,GAnBhD,GAmBuE/zC,EAAS28B,iBAAiB,aAAc,CAAChwO,EAAM0nP,YAjBtH,IAiB+IlnP,OAC/J,CAaQmnP,CAAet0C,EAAUrzM,EACjC,mCAQM,MAAM4nP,WAAoB/c,GAI/Bx3N,YAAYggM,EAAUrzM,GAIpB,MAAM8lC,EAAUwhN,GAAWj0C,EAAUrzM,GACrC4a,MAAMy4L,EAAUvtK,EAAS,GALE,8EAM3B,GAAAlpC,KAAA,IAAakpC,EAAQ,GAAKshN,MAAcA,IACxC,GAAAxqP,KAAA,GAAmBA,KAAKy2M,SAAS28B,iBAAiB,aAAc,CApDnD,IAoDoDlqM,EAAQ,KAC1E,CAMG4hN,iBACF,OAAO,GAAA9qP,KAAP,GACD,CAMGirP,YACF,OAAO,GAAAjrP,KAAP,GACD,CAMGkrP,YACF,OAAQlrP,KAAKirP,KACd,CAMDt0B,QAAQQ,GACN,MAAO,CACL2zB,WAAY9qP,KAAK8qP,WAAWn0B,QAAQQ,GACpCg0B,KAAMnrP,KAAKirP,MAAQ,MAAQ,MAE9B,CAMD/nB,cACE,MAAO,CACL2nB,IAAK7qP,KAAKirP,MACVH,WAAY9qP,KAAK8qP,WAAW5nB,cAE/B,CAMD5M,YACE,MAAO,MACR,EC1FH,SAAS80B,GAAahoP,GACpB,GAAIwG,MAAM4G,QAAQpN,IAAUotL,GAASptL,GAAQ,CAC3C,MAAM2gL,EAAME,GAAS7gL,GACrB,MAAO,CAAC2gL,EAAI1jL,OAAS,EAAG0jL,EACzB,CAED,OAxBF,SAAyB3gL,GACvB,IAAKA,IAAUA,EAAM/C,OACnB,MAAO,CAAC,EAAG,IAAI8b,YAIjB,MAAO5U,EAAQlH,GAAU2jO,GAAkB5gO,GACrC0uB,EAAQvqB,EAAS1E,KAAK8a,KAAKtd,EAAS,GAE1C,GAAIyxB,EAAQ1uB,EAAM/C,OAChB,MAAM,IAAIuf,MAAJ,yEAA4EkS,EAA5E,mBAA4F1uB,EAAM/C,SAG1G,MAAO,CAACA,EAAQ+C,EAAM8+K,SAAS36K,EAAQuqB,GACxC,CAUQu5N,CAAgBjoP,EACxB,mCASM,MAAMkoP,WAAe/nB,GAM1B9sN,YAAYggM,EAAUrzM,GAAsB,IAAfmoP,EAAe,wDAC1C,MAAOljB,EAAetkD,GAAOqnE,GAAahoP,GAC1C4a,MAAMy4L,EAAU1yB,GAF0B,8EAG1C,GAAA/jL,KAAA,GAAsBqoO,GACtB,GAAAroO,KAAA,GAAcurP,EACf,CAMGvoB,oBACF,OAAOhjO,KAAKK,OAAS6kO,GAAa,GAAAllO,KAAD,KAAsBK,MACxD,CAMDq0C,UACE,MAAO,CACLsyC,MAAO,CAACk+I,GAAa,GAAAllO,KAAD,KAAuBge,MAAMo2M,SAEpD,CAEDuC,UACE,MAAO,KAAP,OAAY,IAAI32N,KAAKo0N,OAAM,IAAO9qN,KAAI0tC,GAAK,kBAAWA,EAAE1qC,SAAS,IAAKrI,OAAO,KAAIqF,KAAImnB,GAAK,GAAAzwB,KAAA,IAAcywB,EAAIA,EAAEpmB,MAAM,IAAIuiB,UAAU/lB,KAAK,MAAKA,KAAK,KAClJ,CAMDyvN,YACE,MAAO,QACR,CAODlC,MAAM+O,GACJ,MAAMqoB,EAASxtO,MAAMo2M,QACrB,OAAO+O,EAASqoB,EAAS7vD,GAAgB,CAACupC,GAAa,GAAAllO,KAAD,KAAuBwrP,GAC9E,qBC/EI,MAAMC,WAAcjtL,OAGzB/nD,YAAYggM,EAAUrzM,GAEd,IAFqB,UAC3BqnC,EAAY,IACN,uDAAJ,CAAC,EACHzsB,MAAM8lK,GAAM1gL,IAAU+xK,GAAM/xK,GAA0B,IAAjBA,EAAM/C,OAAe,ECVvD,SAAoB+C,GAGnB,IAH0B,UAChCqnC,EAAY,GADoB,KAEhC8qI,GAAO,GACD,uDAAJ,CAAC,EACH,GAAkB,KAAd9qI,GAAkC,KAAdA,EACtB,MAAM,IAAI7qB,MAAM,iDACX,GAAIxc,EAAM/C,OAASoqC,EAAY,EACpC,MAAM,IAAI7qB,MAAJ,2DAA8D6qB,EAAY,EAA1E,yBAA4FrnC,EAAM/C,SAG1G,MAAMqrP,EAAK,IAAIl/D,SAASppL,EAAMulC,OAAQvlC,EAAM6pL,YAC5C,OAAqB,KAAdxiJ,EAAmBihN,EAAGC,WAAW,EAAGp2E,GAAQm2E,EAAGE,WAAW,EAAGr2E,EACrE,CDFiEs2E,CAAW5nE,GAAS7gL,GAAQ,CACxFqnC,cACGrnC,GAAS,GAHR,uCAIN,GAAApD,KAAA,GAAkByqC,GAClBzqC,KAAKgjO,cAAgBv4L,EAAY,EACjCzqC,KAAKyjO,iBAAmBzjO,KAAKgjO,cAC7BhjO,KAAKy2M,SAAWA,CACjB,CAEU,YAAChsK,GACV,OAAO,cAAcghN,GACnBh1O,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUrzM,EAAO,CACrBqnC,aAEH,EAGJ,CAMG1jC,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAA0B,IAAnB/+D,KAAKy9F,SACb,CAMD7uE,GAAGjB,GACD,OAAO3tB,KAAKy9F,YAAcj/B,OAAO7wC,EAClC,CAMD+mB,UACE,MAAO,CACLsyC,MAAO,CAAChnF,KAAKo0N,SAEhB,CAMDllM,QACE,OAAOo6K,GAAStpM,KAAKo0N,QACtB,CAMDuC,UACE,OAAO32N,KAAKsM,UACb,CAMD2iB,SAGE,OAAOjvB,KAAKkvB,OACb,CAMD1U,WACE,OAAOxa,KAAKy9F,SACb,CAMDylI,cACE,OAAOljO,KAAKwa,UACb,CAMD87M,YACE,MAAO,IAAP,UAAWt2N,KAAX,IACD,CAMDo0N,QACE,OEtHG,WAGC,IAHmBhxN,EAGnB,uDAH2B,GAAK,UACtCqnC,EAAY,GAD0B,KAEtC8qI,GAAO,GACD,uDAAJ,CAAC,EACH,GAAkB,KAAd9qI,GAAkC,KAAdA,EACtB,MAAM,IAAI7qB,MAAM,iDAGlB,MAAM9O,EAAS,IAAIqL,WAAWsuB,EAAY,GACpCihN,EAAK,IAAIl/D,SAAS17K,EAAO63B,OAAQ73B,EAAOm8K,YAQ9C,OANkB,KAAdxiJ,EACFihN,EAAGI,WAAW,EAAGttL,OAAOp7D,GAAQmyK,GAEhCm2E,EAAGK,WAAW,EAAGvtL,OAAOp7D,GAAQmyK,GAG3BzkK,CACR,CFoGUk7O,CAAWhsP,KAAM,CACtByqC,UAAW,GAAAzqC,KAAF,KAEZ,EGzHI,MAAMisP,WAAYR,GAAAA,KAAW,KAAI,wDAExB,MAFwB,ECAjC,MAAMS,WAAYT,GAAAA,KAAW,KAAI,wDAExB,MAFwB,ECAjC,MAAMU,WAAWzgB,GAAAA,KAAS,IAAG,sDAEtB,KAFsB,ECA7B,MAAM0gB,WAAY1gB,GAAAA,KAAS,KAAI,sDAExB,MAFwB,ECA/B,MAAM2gB,WAAY3gB,GAAAA,KAAS,KAAI,sDAExB,MAFwB,ECA/B,MAAM4gB,WAAY5gB,GAAAA,KAAS,KAAI,sDAExB,MAFwB,ECA/B,MAAM6gB,WAAa7gB,GAAAA,KAAS,MAAK,sDAE1B,OAF0B,ECAjC,MAAM8gB,WAAa9gB,GAAAA,KAAS,MAAK,sDAE1B,OAF0B,ECUjC,MAAM+gB,WAAmB3gB,GAC9Br1N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUm0C,GAAM9mE,GAAM1gL,IAAU+xK,GAAM/xK,GAfhD,SAAmBqzM,EAAUrzM,GAK3B,OAAoB,IAAbA,EAAM,GAAW,KAAO,IAAIwnP,GAAKn0C,EAAuB,IAAbrzM,EAAM,GACzD,CASwD2kO,CAAUtxB,EAAUxyB,GAAS7gL,IAAUA,GAC5FpD,KAAKyjO,iBAAmB,CACzB,CAMGT,oBACF,OAAO,CACR,CAMGsnB,cACF,QAAOtqP,KAAKgsO,SAAUhsO,KAAKoD,MAAMq6F,SAClC,CAMG8sJ,aACF,QAAOvqP,KAAKgsO,QAAShsO,KAAKoD,MAAMq6F,SACjC,CAMD/oD,UACE,MAAO,CACLsyC,MAAO,CAAChnF,KAAKo0N,SAEhB,CAMDkC,UAAU6M,GACR,OAAOA,EAAS,OAAS,cAC1B,CAOD/O,MAAM+O,GACJ,OAAIA,EACKnlN,MAAMo2M,OAAM,GAGdp0N,KAAKgsO,OAAS,IAAI7vN,WAAW,CAACnc,KAAKuqP,OAAS,EAAI,IAAM,IAAIpuO,WAAW,CAAC,GAC9E,EC1EH,MAAMqxN,GAAa,0BAyCZ,MAAMkf,WAAa3pP,OAGxB0T,YAAYggM,EAAUrzM,GACpB,MAAO+I,EAAKk8N,GA1ChB,SAAoBjlO,GAClB,GAAI0gL,GAAM1gL,GAAQ,CAChB,IAAKA,EAAM/C,OACT,MAAO,CAAC,GAAI,GAKd,GAAI+C,aAAiBmgO,GACnB,MAAO,CAAC/hC,GAAYp+L,GAAQ,GAG9B,MAAOmE,EAAQlH,GAAU2jO,GAAkB5gO,GACrC0uB,EAAQvqB,EAASlH,EAEvB,GAAIA,EAASmtO,GACX,MAAM,IAAI5tN,MAAJ,uBAA0Bvf,EAAOiM,WAAjC,oBAAuDkhO,KACxD,GAAI17M,EAAQ1uB,EAAM/C,OACvB,MAAM,IAAIuf,MAAJ,uEAA0EkS,EAA1E,mBAA0F1uB,EAAM/C,SAGxG,MAAO,CAACmhM,GAAYp+L,EAAM8+K,SAAS36K,EAAQuqB,IAASA,EACrD,CAAM,OAAIqjJ,GAAM/xK,GACR,CAACo+L,GAAYpjB,GAASh7K,IAAS,GAGjC,CAACA,EAAQA,EAAMkJ,WAAa,GAAI,EACxC,CAegCqgP,CAAWvpP,GACxC4a,MAAM7R,GAFqB,8BAFjB,OAKVnM,KAAKy2M,SAAWA,EAChBz2M,KAAKyjO,iBAAmB4E,CACzB,CAMGrF,oBACF,OAAOhjO,KAAKo0N,QAAQ/zN,MACrB,CAMG0G,WACF,OAAO/G,KAAKy2M,SAAS1vM,KAAK/G,KAAKo0N,QAChC,CAMGr1J,cACF,OAAuB,IAAhB/+D,KAAKK,MACb,CAMGA,aAEF,OAAO2d,MAAM3d,MACd,CAMDuuB,GAAGjB,GACD,QAAO6iK,GAAS7iK,IAAS3tB,KAAKsM,aAAeqhB,EAAMrhB,UACpD,CAMDooC,UACE,MAAMtxC,EAAQ4gL,GAAYhmK,MAAM1R,YAChC,MAAO,CACL06E,MAAO5jF,EAAM/C,OAAS,CAAC6kO,GAAa9hO,EAAM/C,QAAS+C,GAAS,CAAC8hO,GAAa9hO,EAAM/C,SAEnF,CAMDusP,YAAYC,GACV,GAAA7sP,KAAA,GAAiB6sP,EAClB,CAMD39N,QAGE,OAAOo6K,GAAStpM,KAAKo0N,OAAM,GAC5B,CAMDuC,UACE,OAAO32N,KAAKivB,QACb,CAMDA,SACE,OAAOjvB,KAAKsM,UACb,CAMD42N,cACE,OAAOljO,KAAKivB,QACb,CAMDqnM,YACE,MAAO,MACR,CAMDhqN,WACE,OAAO,GAAAtM,KAAA,KAAkBge,MAAM1R,UAChC,CAOD8nN,MAAM+O,GAGJ,MAAM14B,EAAUzmB,GAAYhmK,MAAM1R,YAClC,OAAO62N,EAAS14B,EAAU8iC,GAAiB9iC,EAC5C,ECnKI,MAAMk8B,WAAa+lB,GACxBj2O,YAAYggM,GACVz4L,MAAMy4L,EAD0B,uDAAJ,IAE5Bz2M,KAAK4sP,YAAY3c,GAASjwO,KAAKsM,YAChC,CAMDgqN,YACE,MAAO,MACR,ECfI,MAAMh0B,WAAWgrC,GAAAA,KAAU,IAAG,uDAEtB,KAFsB,ECA9B,MAAM17M,WAAY07M,GAAAA,KAAU,KAAI,uDAExB,MAFwB,ECAhC,MAAMwf,WAAaxf,GAAAA,KAAU,MAAK,uDAE1B,OAF0B,ECAlC,MAAMyf,WAAazf,GAAAA,KAAU,MAAK,uDAE1B,OAF0B,ECElC,MAAM0f,WAAc1wD,GACzB7lL,YAAYggM,EAAUrzM,GAEpB,MADA4a,MAAMy4L,EAAUrzM,GACV,IAAIwc,MAAM,8MACjB,ECUH,SAASqtO,GAAWx2C,EAAUrzM,GAC5B,OAAI0gL,GAAM1gL,IAAUotL,GAASptL,GApB/B,SAAuBqzM,EAAUrzM,GAC/B,MAAM03M,EAAY13M,EAAM,GAExB,IAAK03M,EACH,MAAO,MAACh6M,OAAWA,GACd,GAAIg6M,GAAa,GAAKA,GAAa,GAAI,CAC5C,MAAMz6M,EAASy6M,EAAY,EACrB1+L,EAAOhZ,EAAM8+K,SAAS,EAAG7hL,EAAS,GAExC,MAAO,CAACo2M,EAAS28B,iBAAiB,MAAO,CAACh3N,IAAQ,EACnD,CAAM,GAAI0+L,GAAa,IAAMA,GAAa,GACzC,MAAO,CAAC13M,EAAM8+K,SAAS,EAAG,IAAS44B,EAAY,IAGjD,MAAM,IAAIl7L,MAAJ,wDAA2Dk7L,GAClE,CAMUoyC,CAAcz2C,EAAUxyB,GAAS7gL,IAC9BA,EAKL,CAACA,OAAOtC,GAJN,MAACA,OAAWA,EAKtB,CAQM,MAAMqsP,WAAa/lB,GACxB3wN,YAAYggM,EAAUrzM,GAkBpB,GAjBA4a,MAAMy4L,EAAU,CACdo1B,KAAM,OAENtI,IAAK,QAGL6pB,YAAa,OAEbC,OAAQ,OAGRC,UAAW,OAEXC,YAAa,WAETN,GAAWx2C,EAAUrzM,IAEvBpD,KAAKwtP,OAASxtP,KAAKytP,MAAMptP,OAAS,GACpC,MAAM,IAAIuf,MAAM,8DAEnB,CAEG8tO,oBACF,OAAO1tP,KAAKoD,KACb,CAEGuqP,kBACF,OAAO3tP,KAAKoD,KACb,CAEGqqP,YACF,OAAOztP,KAAKoD,KACb,CAEGwqP,eACF,OAAO5tP,KAAKoD,KACb,CAEGyqP,oBACF,OAAO7tP,KAAKoD,KACb,CAEG0qP,oBACF,OAAsB,IAAf9tP,KAAK4D,KACb,CAEGmqP,kBACF,OAAsB,IAAf/tP,KAAK4D,KACb,CAEG8jO,aACF,OAAsB,IAAf1nO,KAAK4D,KACb,CAEG4pP,YACF,OAAsB,IAAfxtP,KAAK4D,KACb,CAEGoqP,eACF,OAAsB,IAAfhuP,KAAK4D,KACb,CAEGqqP,oBACF,OAAsB,IAAfjuP,KAAK4D,KACb,CAMGo/N,oBACF,OAAOhjO,KAAKo0N,QAAQ/zN,MACrB,CAMD+zN,QACE,GAAmB,IAAfp0N,KAAK4D,MACP,OAAO,IAAIuY,WAAW,GACjB,GAAmB,IAAfnc,KAAK4D,MAAa,CAE3B,MAAMwY,EAAOpc,KAAKoD,MAAMgxN,OAAM,GACxB/zN,EAASwC,KAAKg7D,IAAIzhD,EAAK/b,OAAQ,IAC/B0jL,EAAM,IAAI5nK,WAAW9b,EAAS,GAGpC,OAFA0jL,EAAI76K,IAAI,CAAC7I,EAAS,GAAI,GACtB0jL,EAAI76K,IAAIkT,EAAK8lK,SAAS,EAAG7hL,GAAS,GAC3B0jL,CACR,CAGD,MAAMA,EAAM,IAAI5nK,WAAW,IAG3B,OAFA4nK,EAAI76K,IAAI,CAAClJ,KAAK4D,MAAQ,IAAK,GAC3BmgL,EAAI76K,IAAIlJ,KAAKoD,MAAMgxN,QAAS,GACrBrwC,CACR,EC1II,SAASmqE,GAAU76N,EAAQvuB,GAChC,MAAM4tO,EAAUr/M,EAAOm9M,WAAW1rO,GAClC,OAAO4tO,EAAQhB,YAAcgB,EAAQ5tO,IACtC,CCCD,MAAMqpP,GAAa,CAEjBC,WAAY,CAAC,IAAI,GAEjBC,iBAAkB,CAAC,IAAI,GAEvBC,WAAY,CAAC,IAAI,GAEjBC,SAAU,CAAC,GAAG,GACdC,QAAS,CAAC,IAAI,GACdC,QAAS,CAAC,IAAI,GACdC,aAAc,CAAC,GAAG,IAOb,SAASC,GAAkBl4C,EAAU3xM,EAAMmuO,GAChD,MAAM9/I,EAAa+6J,GAAUz3C,EAASpjL,OANjC,SAAyBvuB,GAC9B,OAAOA,EAAK8pP,QAAU9pP,EAAK+pP,QAAU/pP,EAAKgqP,MAAM1rP,KACjD,CAI+C2rP,CAAgBjqP,IAC9D,OAAOmuO,EAAa,UAAH,OAAa9/I,EAAb,KAA6BA,CAC/C,CAkED,SAAS67J,GAAmBv4C,EAAUrzM,EAAO67F,GAC3C,IAAKA,IAASA,EAAKn6F,KAAKuqL,MACtB,MAAO,GAGT,MAAM,QACJ4/D,EADI,IAEJ/tP,GACE+9F,EAAKn6F,KAAKgqP,MACR3qO,EAA0B,IAAnB8qO,EAAQ5uP,OAAe,CAACa,GAAOu1M,EAASpjL,OAAO67N,UAAUhuP,GAAK6/H,IAAIouH,QAC/E,OA5BF,SAAuB14C,EAAUrzM,EAAO6rP,GAEtC,IAAI1nP,EAAS,GACb,MAAMuJ,EAAS,IAAIlH,MAAMqlP,EAAQ5uP,QAEjC,IAAK,IAAI4B,EAAI,EAAGA,EAAIgtP,EAAQ5uP,OAAQ4B,IAAK,CACvC,MAAOmtP,EAAQtqP,GAAQmqP,EAAQhtP,IACxBotP,EAASC,GAAanB,GAAWiB,EAAOtqP,MACzCokC,EAAUomN,EAAY74C,EAAS28B,iBAAiB8a,GAAUz3C,EAASpjL,OAAQvuB,GAAO,CAAC1B,EAAM8+K,SAAS36K,EAAS8nP,KAAa54C,EAAS28B,iBAAiB,MAAO,CAAChwO,EAAM8+K,SAAS36K,EAAQA,EAAS8nP,KAChM9nP,GAAU8nP,GAAWC,EAAYpmN,EAAQ85L,cAAgB,GACzDlyN,EAAO7O,GAAKinC,CACb,CAED,OAAOp4B,CACR,CAcQy+O,CAAc94C,EAAUrzM,EAAO6rP,EAAQ3lP,KAAI,CAAC8C,EAAGnK,IAAM,CAACmK,EAAG+X,EAAKliB,MACtE,gFA2CM,MAAMutP,WAAmB/hB,GAS9Bh3N,YAAYggM,EAAUrzM,GAAsB,IAAfypP,EAAe,uDAAJ,CAAC,EACvC,MAAM,IACJ3rP,EADI,OAEJukB,EAFI,QAGJ+yL,GAlIN,SAA0Bp1M,GACxB,GAAI0gL,GAAM1gL,KAAWA,GAASotL,GAASptL,GAErC,MAAO,CACLlC,IAAKkC,GAEF,GAAIA,aAAiBosP,GAC1B,MAAO,CACLtuP,IAAKkC,EACLqiB,OAAQriB,EAAMqiB,OACd+yL,QAASp1M,EAAMo1M,SAEZ,GAAI9+E,GAAWt2H,GACpB,MAAO,CACLlC,IAAKkC,IACLqiB,OAAQriB,EAAMqiB,OACd+yL,QAASp1M,EAAMo1M,SAEZ,GAAI5uM,MAAM4G,QAAQpN,GAAQ,CAC/B,MAAO+H,EAAI+F,EAAO,IAAM9N,EAExB,IAAKs2H,GAAWvuH,GACd,MAAM,IAAIyU,MAAM,gDAGlB,GAAIzU,EAAG8zF,MAAQ9zF,EAAG8zF,KAAKn6F,KAAKuqL,MAAO,CACjC,MAAM/lL,EAAM6B,EAAG8zF,KAAKn6F,KAAKgqP,MAEzB,IAAKllP,MAAM4G,QAAQU,IAASA,EAAK7Q,SAAWiJ,EAAI2lP,QAAQ5uP,OACtD,MAAM,IAAIuf,MAAJ,+BAAkCtW,EAAI2lP,QAAQ5uP,OAA9C,oCAET,CAED,MAAO,CACLa,IAAKiK,KAAM+F,GACXuU,OAAQta,EAAGsa,OACX+yL,QAASrtM,EAAGqtM,QAEf,CAED,MAAM,IAAI54L,MAAJ,kCAAqCxc,EAArC,kBACP,CA0FOqsP,CAAiBrsP,GACrB4a,MAAMy4L,EAAUv1M,GAN0B,mMAO1C,GAAAlB,KAAA,GAxCJ,SAAiBy2M,EAAUrzM,GACzB,GAAIA,aAAiBosP,GACnB,OAAOpsP,EAAM+vF,WACR,GAAIumC,GAAWt2H,GACpB,OAAOurP,GAAkBl4C,EAAUrzM,EAAM67F,KAAKn6F,MACzC,GAAI8E,MAAM4G,QAAQpN,GAAQ,CAC/B,MAAO+H,GAAM/H,EAEb,GAAI+H,EAAG8zF,KACL,OAAO0vJ,GAAkBl4C,EAAUtrM,EAAG8zF,KAAKn6F,KAE9C,CAGD,MAAO,KACR,CAyBsB4qP,CAAQj5C,EAAUrzM,IAErCpD,KAAK2vP,QAzDT,SAAiBvsP,GACf,GAAIA,aAAiBosP,GACnB,OAAOpsP,EAAM67F,KACR,GAAIy6B,GAAWt2H,GACpB,OAAOA,EAAM67F,KACR,GAAIr1F,MAAM4G,QAAQpN,GAAQ,CAC/B,MAAO+H,GAAM/H,EACb,OAAO+H,EAAG8zF,IACX,CAGF,CA8CgB2wJ,CAAQxsP,GAAQypP,EAASr0C,SAAWA,EAASq0C,EAASpnO,QAAUA,EAC9E,CAMGvU,WACF,OAAO,GAAAlR,KAAP,GACD,CAMGi/F,WACF,OAAO,GAAAj/F,KAAP,GACD,CAMGylB,aACF,OAAO,GAAAzlB,KAAP,GACD,CAMGmzF,iBACF,OAAO,GAAAnzF,KAAP,GACD,CAMGw4M,cACF,OAAO,GAAAx4M,KAAP,GACD,CAEDs/F,GAAGp+F,GACD,OAAOA,EAAIs3M,UAAYx4M,KAAKw4M,SAAWt3M,EAAIukB,SAAWzlB,KAAKylB,MAC5D,CAMDkqO,QAAQ1wJ,EAAMu5G,EAAS/yL,GACrB,GAAAzlB,KAAA,GAAai/F,GACb,GAAAj/F,KAAA,GAAeylB,GAAU,GAAAzlB,KAAJ,KACrB,GAAAA,KAAA,GAAgBw4M,GAAW,GAAAx4M,KAAJ,KAEnBi/F,GACF,GAAAj/F,KAAA,GAAmB2uP,GAAkB3uP,KAAKy2M,SAAUx3G,EAAKn6F,OAG3D,IACE,GAAA9E,KAAA,GAAagvP,GAAmBhvP,KAAKy2M,SAAUz2M,KAAKo0N,OAAM,GAAOn1H,GAElE,CADC,MAAOzjF,GACR,CAED,OAAOxb,IACR,CAMD22N,UACE,OAAO,GAAA32N,KAAA,IAAWK,OAAS,GAAAL,KAAA,IAAWsJ,KAAIwpB,GAAKA,EAAE6jM,YAAa34M,MAAM24M,SACrE,CAMDL,YACE,MAAO,YACR,ECrPI,MCIMu5B,GAAM,CAEjBC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,qBAAsB,CACpB/6O,QAAS,KACT2jO,iBAAkB,aAEpBqX,4BAA6B,8BAC7BC,oBAAqB,sBACrBC,YAAa,CACXC,QAAS,yBACTzc,UAAW,wBAEb0c,0BAA2B,4BAC3BC,kBAAmB,CACjBrlP,KAAM,OACNuK,QAAS,6BACT+6O,MAAO,mCACP9sO,OAAQ,gCACR+sO,UAAW,iCACXp1O,OAAQ,yBAEVq1O,wBAAyB,0BACzBC,wBAAyB,CACvBzlP,KAAM,OACN0O,SAAU,0BACV7U,KAAM,sBACN0hH,SAAU,QACV2xF,KAAM,aAERw4C,oBAAqB,CACnBr4E,MAAO,CACLi4D,MAAO,OACPtrI,IAAK,CACHmqJ,OAAQ,mBACRluP,IAAK,OACLkC,MAAO,OACPwtP,OAAQ,QAEVC,UAAW,CACTzB,OAAQ,mBACR0B,KAAM,OACNC,KAAM,OACN3tP,MAAO,OACP4tP,WAAY,sBAIlBC,mBAAoB,CAClBnqP,OAAQ,OACR+oB,MAAO,gCAETqhO,iBAAkB,CAChB54E,MCvDsB,CACxB81E,WAAY,KAEZE,WAAY,KAEZD,iBAAkB,KAElBG,QAAS,KACTC,QAAS,KACTC,aAAc,KAEdH,SAAU,QCXC4C,GAAa,CACxBlmP,KAAM,OACNktB,OAAQ,gBACRv0B,MAAO,KACPu0M,KAAM,aAEK9kK,GAAK,CAChB+9M,SAAU,CACRnmP,KAAM,eACNnG,KAAM,kBACN++N,SAAU,eACV1rB,KAAM,aAERk5C,gBAAiB,eACjBC,QAAS,UACTC,QAAS,CACPj2O,KAAM,UACNxF,OAAQ,wBACRirH,IAAK,aACLo3E,KAAM,aAERq5C,WAAY,CACVl5E,MAAO,CACLm5E,UAAW,sBACXC,QAAS,oBACTC,SAAU,qBACV/nP,MAAO,kBACPuiO,MAAO,kBACPylB,UAAW,sBACXrnB,QAAS,oBACTsnB,YAAa,wBAGbC,mBAAoB,SAGxBC,gBAAiB,CACf1lP,IAAK,MACLvH,KAAM,mBAERktP,sBAAuB,CACrBC,aAAc,kBACdC,aAAc,mBAEhBC,kBAAmB,CACjBrtP,KAAM,mBAERstP,oBAAqB,CACnBj6N,OAAQ,iBAEVk6N,oBAAqB,sBACrBC,mBAAoB,CAClBxtP,KAAM,mBAERytP,gBAAiB,uBACjBC,iBAAkB,CAChBvnP,KAAM,OACNnG,KAAM,2BAER2tP,kBAAmB,CACjBl9L,SAAU,mBAEZ47L,eC5DWuB,GAAM,CAEjBC,gBAAiB,CACf/uO,GAAI,kBACJ9e,KAAM,WAGR8tP,iBAAkB59E,GAAa,CAAC,EAAGm8E,GAAY,CAC7CjgP,KAAM,cAER2hP,iBAAkB79E,GAAa,CAAC,EAAGm8E,GAAY,CAC7CjgP,KAAM,cAER4hP,4BAA6B,CAC3B7nP,KAAM,OACNnG,KAAM,OACN++N,SAAU,gBAEZkvB,oBAAqB/9E,GAAa,CAAC,EAAGm8E,GAAY,CAChDjgP,KAAM,qCAGR8hP,qBAAsB,CACpBluP,KAAM,iBACNmQ,QAAS,KACT2jO,iBAAkB,mCAEpBqa,YAAa,CACX5/N,OAAQ,mBACR6/N,QAAS,yBACTvf,UAAW,uBACX7uO,KAAM,kBAERquP,sBAAuB,CACrBruP,KAAM,kBAERsuP,0BAA2B,CACzBnoP,KAAM,OACNnG,KAAM,iBACN1B,MAAO,QACP+0M,KAAM,aAERk7C,uBAAwB,CACtBvuP,KAAM,kBAERwuP,uBAAwB,CACtBxuP,KAAM,kBAERyuP,kBAAmB,CACjBtoP,KAAM,OACNuK,QAAS,mCACT+6O,MAAO,gCACP9sO,OAAQ,iCACR+sO,UAAW,iCACXp1O,OAAQ,iCACRxX,MAAO,MAET4vP,yBAA0B,CACxB1sP,OAAQ,OAER+oB,MAAO,gCAET4jO,2BAA4B,CAC1BztP,WAAY,OACZlB,KAAM,iBACN4uP,iBAAkB,kBAEpBC,wBAAyB,CACvB1oP,KAAM,OACN0O,SAAU,0BACV7U,KAAM,sBACN0hH,SAAU,QACV2xF,KAAM,aAERy7C,wBAAyB,0BACzBC,oBAAqB,CACnBv7E,MAAO,CACLi4D,MAAO,iBACPtrI,IAAK,CACHgqJ,QAAS,wBACT/tP,IAAK,iBAELkC,MAAO,oBAIb0wP,iBAAkB,oBC9EpB,IACEnzE,IAAK,CAAC,EACNh+C,QLfqB,CACrBoxH,SAAU,CAAC,CACTvgK,QAAS,CACPikF,SAAU,CACRpoG,YAAa,oCACbv5D,OAAQ,GACRhR,KAAM,mBAGVmQ,QAAS,KKOX0M,MAAOqzJ,GAAa,CAAC,ECbL,CAEhBg/E,gBAAiB,CACf/oP,KAAM,OACNktM,KAAM,aAER87C,gBAAiB,CACfhpP,KAAM,OACNiG,KAAM,YACNinM,KAAM,aAER+7C,2BAA4B,CAC1BjpP,KAAM,OACNnG,KAAM,QAERqvP,mBAAoB,CAClBlpP,KAAM,OACNiG,KAAM,kCACNinM,KAAM,aAERi8C,WAAY,CACVhE,QAAS,yBAEXiE,yBAA0B,CACxBppP,KAAM,OACNnG,KAAM,OACN1B,MAAO,QACP+0M,KAAM,aAERm8C,iBAAkB,CAChBrpP,KAAM,OACNuK,QAAS,4BACT+6O,MAAO,kCACP9sO,OAAQ,+BACR+sO,UAAW,gCACXp1O,OAAQ,wBAEVm5O,uBAAwB,CACtBtpP,KAAM,OACN0O,SAAU,yBACV7U,KAAM,qBACN0hH,SAAU,QACV2xF,KAAM,aAERq8C,uBAAwB,CACtBl8E,MAAO,CAAC,WAAY,UAAW,aAEjCm8E,mBAAoB,CAClBn8E,MAAO,CACLi4D,MAAO,OACPtrI,IAAK,CACHmqJ,OAAQ,kBACRluP,IAAK,OACLkC,MAAO,OACPwtP,OAAQ,QAEVC,UAAW,CACTzB,OAAQ,kBACR0B,KAAM,OACNC,KAAM,OACN3tP,MAAO,OACP4tP,WAAY,qBAIlB0D,gBAAiB,CACfp8E,MAAO,CACL81E,WAAY,KAEZE,WAAY,KAEZE,QAAS,KACTC,QAAS,KACTC,aAAc,OAGlBiG,kBAAmB,CACjB7tP,OAAQ,OACR+oB,MAAO,gCC9EQ,CAEjB+kO,iBAAkB,kBAClBC,iBAAkB,kBAClBC,4BAA6B,6BAC7BC,oBAAqB,qBACrBC,YAAa,CACX5E,QAAS,0BAEX6E,0BAA2B,2BAC3BC,kBAAmB,CACjBjqP,KAAM,OACNuK,QAAS,6BACT+6O,MAAO,mCACP9sO,OAAQ,gCACR+sO,UAAW,iCACXp1O,OAAQ,yBAEV+5O,wBAAyB,yBACzBC,wBAAyB,CACvBnqP,KAAM,OACN0O,SAAU,0BACV7U,KAAM,sBACN0hH,SAAU,QACV2xF,KAAM,aAERk9C,oBAAqB,CACnB/8E,MAAO,CACLi4D,MAAO,OACPtrI,IAAK,CACHmqJ,OAAQ,mBACRluP,IAAK,OACLkC,MAAO,OACPwtP,OAAQ,QAEVC,UAAW,CACTzB,OAAQ,mBACR0B,KAAM,OACNC,KAAM,OACN3tP,MAAO,OACP4tP,WAAY,sBAIlBsE,mBAAoB,CAClBxuP,OAAQ,OACR+oB,MAAO,gCAET0lO,iBAAkB,CAChBj9E,MAAO,CACL81E,WAAY,KAEZE,WAAY,KAEZD,iBAAkB,KAElBG,QAAS,KACTC,QAAS,KACTC,aAAc,QF7CemB,GGbhB,CAEjB2F,iBAAkB,mBAClBC,iBAAkB,mBAClBC,qBAAsB,uBACtBC,4BAA6B,8BAC7BC,oBAAqB,sBACrBC,YAAa,CACXzF,QAAS,yBACTzc,UAAW,wBAEbmiB,0BAA2B,4BAC3BC,kBAAmB,CACjB9qP,KAAM,OACNuK,QAAS,6BACT+6O,MAAO,mCACP9sO,OAAQ,gCACR+sO,UAAW,iCACXp1O,OAAQ,wBACRxX,MAAO,MAEToyP,wBAAyB,0BACzBC,wBAAyB,0BACzBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,iBAAkB,oBCzBD,CAEjBC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,qBAAsB,uBACtBC,4BAA6B,8BAC7BC,oBAAqB,sBACrBC,YAAa,CACXtG,QAAS,yBACTzc,UAAW,wBAEbgjB,0BAA2B,4BAC3BC,kBAAmB,CACjB3rP,KAAM,OACNuK,QAAS,6BACT+6O,MAAO,mCACP9sO,OAAQ,gCACR+sO,UAAW,iCACXp1O,OAAQ,wBACRxX,MAAO,MAETizP,wBAAyB,0BACzBC,wBAAyB,CACvB7rP,KAAM,OACN0O,SAAU,0BACV7U,KAAM,sBACN0hH,SAAU,QACV2xF,KAAM,aAER4+C,oBAAqB,CACnBz+E,MAAO,CACLi4D,MAAO,OACPtrI,IAAK,CACHmqJ,OAAQ,mBACRluP,IAAK,OACLkC,MAAO,OACPwtP,OAAQ,QAEVC,UAAW,CACTzB,OAAQ,mBACR0B,KAAM,OACNC,KAAM,OACN3tP,MAAO,OACP4tP,WAAY,oBAEdgG,KAAM,CACJC,OAAQ,YACRhI,QAAS,wBACT7rP,MAAO,UAIb8zP,mBAAoB,CAClBpwP,OAAQ,OACR+oB,MAAO,gCAETsnO,iBAAkB,oBJ3C8BzE,GAAK,CAEnD0E,oBAAqB,mBACrBC,oBAAqB,mBACrBC,wBAAyB,uBACzBC,+BAAgC,8BAChCC,uBAAwB,sBACxBC,eAAgB,cAChBC,yBAA0B,wBAC1BC,6BAA8B,4BAC9BC,0BAA2B,yBAC3BC,0BAA2B,yBAC3BC,qBAAsB,oBACtBC,4BAA6B,2BAC7BC,aAAc,kBACdC,8BAA+B,6BAC/BC,2BAA4B,0BAC5BC,2BAA4B,0BAC5BC,uBAAwB,sBACxBC,cAAe,mBAEfC,eAAgB,gBAEhBC,YAAa,CACXjgF,MAAO,CACLkgF,GAAI,6BACJC,GAAI,6BACJC,GAAI,6BACJC,GAAI,6BACJC,GAAI,6BACJC,GAAI,6BACJC,GAAI,6BACJC,GAAI,6BACJC,GAAI,6BAEJC,GAAI,aACJC,IAAK,cACLC,IAAK,cACLC,IAAK,cACLC,IAAK,cACLC,IAAK,mBKvDPC,GAAgB,CACpBC,cAAe,CACbnqL,YAAa,2BACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,UAERA,KAAM,SAGJ20P,GAAgB,CACpBxkP,QAAS,CACPo6D,YAAa,sCACbv5D,OAAQ,GACRhR,KAAM,uBAGJ40P,GAAgB,CACpBC,iBAAkB,CAChBtqL,YAAa,4CACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,WAERA,KAAM,SAGG69H,GAAU,CACrBi3H,KAAM,CAAC,CACLpmK,QAASwhF,GAAa,CACpB//J,QAAS,CACPo6D,YAAa,sCACbv5D,OAAQ,GACRhR,KAAM,mBAEPy0P,GAAeG,IAClBzkP,QAAS,GACR,CACDu+E,QAASwhF,GAAa,CACpB//J,QAAS,CACPo6D,YAAa,sCACbv5D,OAAQ,GACRhR,KAAM,uBAEPy0P,GAAeG,IAClBzkP,QAAS,GACR,CACDu+E,QAASwhF,GAAa,CAAC,EAAGykF,GAAeF,GAAeG,IACxDzkP,QAAS,GACR,CACDu+E,QAASwhF,GAAa,CACpB6kF,iBAAkB,CAChBxqL,YAAa,4CACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,WAERA,KAAM,SAEP20P,GAAeF,IAClBtkP,QAAS,KCvCA6kP,GAAe,CAI1BC,QAAS,mBACTC,OAAQ,eACRC,mBAAoB,mBAIpBC,IAAK,YACLC,UAAW,YAIXC,UAAW,kBACXC,eAAgB,oBAElB,IACE15E,IAAK,CAAC,EACNh+C,QAFa,GAGbhhH,MAAOqzJ,GAAa,CAAC,EAtCH,CAClBslF,QAAS,mBACTC,SAAU,oBACVC,SAAU,qBACVC,SAAU,qBACVC,UAAW,sBACXC,UAAW,uBACXC,OAAQ,kBACRC,OAAQ,mBACRC,OAAQ,mBACRC,QAAS,oBACTC,QAAS,mBACTC,QAAS,oBACTC,YAAa,yBAyBwB,CACnCC,UAAW,cACXC,YAAa,2BACbC,YAAa,qBACbC,YAAa,qBACbC,YAAa,YACbC,aAAc,sBACd/iF,QAAS,eACTpB,QAAS,MACTokF,QAAS,qBACTC,UAAW,UACXC,MAAO,eACPC,YAAa,MACbC,eAAgB,cAChBC,cAAe,cACfC,KAAM,cACNC,SAAU,OACVC,WAAY,WACZC,yBAA0B,CACxBC,eAAgB,MAChBC,aAAc,OAEhBC,kBAAmB,CACjB/jF,MAAO,CACLgkF,iBAAkB,qCAGtBC,kBAAmB,2BACnBC,UAAW,OACXC,aAAc,CACZC,MAAO,MACPC,MAAO,KACPC,MAAO,MAETC,OAAQ,CACNn4C,KAAM,mBAERo4C,WAAY,CACVxkF,MAAO,CACLykF,MAAO,QAEPC,kBAAmB,mBAEnBC,gBAAiB,OAEjBC,OAAQ,SAERC,UAAW,YAEXC,KAAM,OAENC,WAAY,aAEZhB,kBAAmB,oBAEnBiB,0BAA2B,SAI/BC,iBAAkB,CAChBC,OAAQ,SACRC,YAAa,UAEfC,IAAK,eACLC,IAAK,eACLC,KAAM,iBACNC,KAAM,iBACNC,KAAM,iBACNC,KAAM,iBACNC,MAAO,mBACPC,MAAO,mBACPn3K,KAAM,OACNo3K,OAAQ,CACNr5C,WAAY,OACZh9K,OAAQ,uBACRs2N,UAAW,OACXC,eAAgB,OAChB90N,OAAQ,UAEV+0N,cAAe,CACbx5C,WAAY,OAEZh9K,OAAQ,eAEVy2N,oBAAqB,sBACrBpU,MAAO,MACPqU,cAAe,4CACfC,qBAAsB,QACtBC,eAAgB,qBAChBC,SAAU,4BACVC,UAAW,MACXC,eAAgB,UAChBlmF,aAAc,eACdmmF,aAAc,YACdC,SAAU,iBACVC,aAAc,sBACdC,YAAa,CACX1mF,MAAO,CACL2mF,QAAS,WACTC,QAAS,WACTC,MAAO,aAGXC,OAAQ,mBACRC,WAAY,QACZC,OAAQ,yBACRC,aAAc,CACZjnF,MAAO,CAEL0hF,OAAQ,iBAGZwF,SAAU,iBACVC,cAAe,eACfC,cAAe,CACbhD,MAAO,MACPC,MAAO,KACPC,MAAO,MAET+C,KAAM,CACJrnF,MAAO,CAAC,MAAO,OAEjBsnF,QAAS,OACTC,YAAa,OACbC,SAAU,CACRxnF,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QAEhEynF,gBAAiB,CACfjrO,KAAM,SACNolG,MAAO,UAET8lI,YAAa,gCACbC,6BAA8B,CAC5B14O,MAAO,QACP24O,cAAe,gCAEjBC,8BAA+B,CAC7B54O,MAAO,QACP64O,eAAgB,0BAElBC,KAAM,MACNC,aAAc,MACdC,YAAa,QACbC,YAAa,CACXC,WAAY,QACZC,aAAc,QACd55P,OAAQ,QACR65P,UAAW,cACXtlC,QAAS,eAEXulC,aAAc,CACZC,UAAW,cAEbC,oBAAqB,MACrBC,qBAAsB,MACtBC,eAAgB,QAChBC,gBAAiB,CACf7vB,OAAQ,CACN8vB,SAAU,QAEZC,UAAW,OACXlZ,YAAa,OACbiZ,SAAU,MACVE,YAAa,OAEfC,wBAAyB,CACvBC,MAAO,UACPC,MAAO,gBAETC,YAAa,YACbC,cAAe,cACftoF,OAAQ,MACRuoF,iBAAkB,UAElBrE,WAAY,6BACZH,OAAQ,mBACRE,KAAM,6BACND,UAAW,gCCtNf,IACEx8E,IAAK,CAAC,EACNh/J,MAAOqzJ,GAAa,CAAC,ECLL,CAChB2sF,SAAU,CACR12P,KAAM,eACNnG,KAAM,kBACN++N,SAAU,eACV1rB,KAAM,aAERypD,gBAAiB,MACjBC,QAAS,YACTC,QAAS,CACPxmP,KAAM,UACNxF,OAAQ,uBACRirH,IAAK,cAEPghI,WAAY,CACVzpF,MAAO,CACLm5E,UAAW,sBACXC,QAAS,oBACTC,SAAU,qBACV/nP,MAAO,kBACPuiO,MAAO,kBACPylB,UAAW,sBACXrnB,QAAS,oBACTq1B,QAAS,oBACT/N,YAAa,0BAGjBmQ,gBAAiB,CACf31P,IAAK,MACLvH,KAAM,mBAERm9P,sBAAuB,CACrBhQ,aAAc,kBACdC,aAAc,mBAEhBgQ,kBAAmB,CACjBp9P,KAAM,mBAERq9P,oBAAqB,CACnBhqO,OAAQ,iBAEViqO,kBAAmB,OACnBC,kBAAmB,CACjB9sM,SAAU,mBAEZ+sM,oBAAqB,CACnBhqF,MAAO,CAAC,OAAQ,OAAQ,MAAO,KAAM,MAAO,MAAO,MAAO,OAAQ,OAAQ,KAAM,MAAO,MAAO,MAAO,OAAQ,SAE/GiqF,mBAAoB,CAClBz9P,KAAM,mBAER09P,gBAAiB,uBACjBC,iBAAkB,CAChBx3P,KAAM,OACNnG,KAAM,2BAER49P,WAAY,CACVz3P,KAAM,OACNktB,OAAQ,gBACRv0B,MAAO,aACP++P,aAAc,cACdxqD,KAAM,cDxDoB9kK,GAAI,CAE9BuvN,QAAS,WACTC,eAAgB,kBAChBC,OAAQ,UACRC,OAAQ,UACRC,UAAW,aACXC,eAAgB,kBAChBC,qBAAsB,wBACtBC,iBAAkB,oBAClBC,mBAAoB,sBACpBC,mBAAoB,sBACpBC,kBAAmB,qBACnBC,eAAgB,kBAChBC,gBAAiB,mBACjBC,iBAAkB,oBAClBC,UAAW,gBErBf,IACE/iF,IAAK,CAAC,EACNh/J,MAAO,CACLgiP,iBAAkB,CAChB76C,MAAO,YACPvtE,SAAU,aAEZqoH,cAAe,CACbC,OAAQ,gBACRjtF,QAAS,wBAEXktF,aAAc,CACZruD,QAAS,gBACT1tK,SAAU,OACVg8N,aAAc,QAEhBC,oBAAqB,CACnBn4D,SAAU,eACVo4D,YAAa,eACbC,UAAW,gBAEbC,aAAc,CACZr7C,MAAO,YACPs7C,OAAQ,YACRC,MAAO,YACPC,QAAS,YACTC,OAAQ,gBACR3tF,QAAS,uBACT4tF,WAAY,gBACZT,aAAc,OACdl4D,SAAU,MACVo4D,YAAa,MACbC,UAAW,MACXn8N,SAAU,QAEZ08N,cAAe,CACb7tF,QAAS,uBACT3rK,KAAM,UACNygL,OAAQ,UACR3nI,SAAU,KACVhc,SAAU,QAEZ2yI,cAAe,MACfgqF,qBAAsB,cC3C1B,IACE/jF,IAAK,CAAC,EACNh/J,MAAO,CACLgjP,eAAgB,CACdrsF,MAAO,CACLssF,gBAAiB,cACjBC,MAAO,gCCLf,IACElkF,IAAK,CAAC,EACNh+C,QCNqB,CACrBmiI,QAAS,CAAC,CACRtxK,QAAS,CACPuxK,YAAa,CACX11L,YAAa,yCACbv5D,OAAQ,GACRhR,KAAM,oBAERkgQ,cAAe,CACb31L,YAAa,sCACbv5D,OAAQ,GACRhR,KAAM,iBAGVmQ,QAAS,KDPX0M,MAAO,CACLsjP,iBAAkB,CAChBrb,WAAY,SERZsb,GAAe,CACnBC,cAAe,CACb91L,YAAa,mDACbv5D,OAAQ,GACRhR,KAAM,SAERsgQ,oBAAqB,CACnB/1L,YAAa,mDACbv5D,OAAQ,GACRhR,KAAM,QAERugQ,6BAA8B,CAC5Bh2L,YAAa,mFACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,cACNnG,KAAM,gBAERA,KAAM,mCAERwgQ,WAAY,CACVj2L,YAAa,yFACbv5D,OAAQ,GACRhR,KAAM,SAERygQ,8CAA+C,CAC7Cl2L,YAAa,2DACbv5D,OAAQ,CAAC,CACP7K,KAAM,oBACNnG,KAAM,yBACL,CACDmG,KAAM,gBACNnG,KAAM,4BAERA,KAAM,iBChCV,IACE67K,ICNiB,CACjB6kF,gBAAiB,CACfn2L,YAAa,0HACbv5D,OAAQ,GACRhR,KAAM,0CDGR69H,QDiCqB,CACrB8iI,QAAS,CAAC,CACRjyK,QAASwhF,GAAa,CACpB0wF,cAAe,CACbr2L,YAAa,wFACbv5D,OAAQ,GACRhR,KAAM,6BAEPogQ,IACHjwP,QAAS,GACR,CACDu+E,QAASwhF,GAAa,CACpB0wF,cAAe,CACbr2L,YAAa,gDACbv5D,OAAQ,GACRhR,KAAM,+BAEPogQ,IACHjwP,QAAS,KClDX0M,MAAO,CACLgkP,aAAc,CACZrtF,MAAO,CAAC,eAAgB,gCAAiC,gCAE3DstF,oBAAqB,MACrBC,uBAAwB,CACtB5tP,EAAG,aACH6tP,aAAc,gBAEhBC,gBAAiB,MACjBC,sBAAuB,CACrBC,SAAU,cACVrc,WAAY,aACZsc,YAAa,SACbC,aAAc,UAEhBC,yBAA0B,CACxBC,aAAc,MACdC,YAAa,MACbruP,EAAG,aACHsuP,mBAAoB,0CACpBC,WAAY,aACZV,aAAc,gBAEhBW,2BAA4B,CAC1BJ,aAAc,MACdC,YAAa,MACbruP,EAAG,aACHsuP,mBAAoB,0CACpBC,WAAY,aACZE,eAAgB,QAElBC,WAAY,MACZC,gBAAiB,qBACjBC,SAAU,kBACVC,MAAO,CACLC,WAAY,MACZC,UAAW,OACXr+M,SAAU,MACVo8M,YAAa,0CACbyB,WAAY,OAEZ/0K,OAAQ,0BAEVw1K,gBAAiB,CACf71M,QAAS,WACTC,UAAW,WACX61M,cAAe,YAEjBC,qBAAsB,CACpB7uF,MAAO,CACLkgF,GAAI,OACJC,GAAI,2BAGR2O,uBAAwB,CACtBnvP,EAAG,aACH6tP,aAAc,gBAEhBuB,wBAAyB,QACzBC,WAAY,OAEZC,iBAAkB,CAChBjvF,MAAO,CACLsnF,QAAS,OAET4H,QAAS,0BACTC,eAAgB,iCAChBC,aAAc,iCAGlBC,wBAAyB,CACvBC,eAAgB,MAEhBhe,WAAY,aACZie,UAAW,YACXC,SAAU,YAEZC,+BAAgC,CAC9BH,eAAgB,MAEhBhe,WAAY,cAEdoe,6BAA8B,CAC5BJ,eAAgB,MAChBhe,WAAY,aACZie,UAAW,YACXC,SAAU,YAEZG,sBAAuB,CACrB3vF,MAAO,CACLkvF,QAAS,+BACTU,UAAW,mCAGfC,6BAA8B,CAC5BP,eAAgB,MAChBhe,WAAY,aACZwe,OAAQ,kBACRP,UAAW,YACXC,SAAU,YAEZO,+BAAgC,CAC9BT,eAAgB,MAChBhe,WAAY,aACZwe,OAAQ,mBAMVE,uBAAwB,CACtBhwF,MAAO,CACLl3J,KAAM,MACNH,IAAK,MACLsnP,IAAK,MACLC,MAAO,QAGXC,WAAY,MACZC,QAAS,WACTC,UAAW,WACXC,SAAU,aE/Hd,IACEjoF,IAAK,CAAC,EACNh/J,MAAO,CACLknP,YAAa,CACXC,KAAM,UACNC,SAAU,UACVC,WAAY,UACZC,UAAW,WAEbC,iBAAkB,CAChBtlP,GAAI,iBACJigP,OAAQ,UACRsF,MAAO,cACPC,QAAS,mBAEX7vF,YAAa,CACX31J,GAAI,iBACJigP,OAAQ,UACRuF,QAAS,WAEXC,cAAe,CACb/wF,MAAO,CAAC,OAAQ,aAElBgxF,QAAS,CACPhxF,MAAO,CAAC,MAAO,OAAQ,QAEzBixF,YAAa,CACX3lP,GAAI,oBACJigP,OAAQ,WAEV2F,kBAAmB,UACnBC,gBAAiB,CACfliQ,OAAQ,UACRmiQ,SAAU,UACVC,cAAe,eAEjBC,gBAAiB,CACfv8B,KAAM,CACJw8B,mBAAoB,EACpBC,SAAU,EACVC,QAAS,EACTtzF,IAAK,EACLuzF,IAAK,OCxCb,IACErpF,ICNiB,CACjBspF,iBAAkB,CAChB56L,YAAa,2EACbv5D,OAAQ,GACRhR,KAAM,QAERolQ,wBAAyB,CACvB76L,YAAa,wFACbv5D,OAAQ,GACRq0P,OAAQ,CAAC,iBAAkB,0BAA2B,6BACtDrlQ,KAAM,0BDHR69H,QEPqB,CACrBynI,SAAU,CAAC,CACT52K,QAAS,CACP62K,cAAe,CACbh7L,YAAa,gDACbv5D,OAAQ,GACRhR,KAAM,yBAGVmQ,QAAS,IAEXq1P,YAAa,CAAC,CACZ92K,QAAS,CACP+2K,oBAAqB,CACnBl7L,YAAa,yDACbv5D,OAAQ,GACRhR,KAAM,qBAER0lQ,yBAA0B,CACxBn7L,YAAa,oDACbv5D,OAAQ,GACRhR,KAAM,0BAGVmQ,QAAS,KFhBX0M,MAAO,CACL8oP,kBAAmB,CACjB7mP,GAAI,MACJvX,IAAK,MACLzH,KAAM,QAER8lQ,gBAAiB,CACf3hO,QAAS,eACT+1I,YAAa,cACb6rF,eAAgB,kBAElBC,QAAS,WACTC,sBAAuB,CACrBC,WAAY,kBACZC,WAAY,+BAEdC,sBAAuB,CACrBpnP,GAAI,MACJvX,IAAK,MACLzH,KAAM,QAERqmQ,aAAc,+BACdC,eAAgB,SAChBC,YAAa,OACbC,eAAgB,MAChBC,aAAc,CACZC,WAAY,mBACZ1nP,GAAI,oBG/BV,IACE+8J,IAAK,CAAC,EACNh+C,QCNqB,CACrB4oI,UAAW,CAAC,CACV/3K,QAAS,CACPg4K,mBAAoB,CAClBn8L,YAAa,yDACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,SAERA,KAAM,0CAER2mQ,mBAAoB,CAClBp8L,YAAa,gCACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,oBAERA,KAAM,sCAGVmQ,QAAS,KDbX0M,MAAO,CACL+pP,eAAgB,CACdC,OAAQ,OACR73J,SAAU,OACV83J,UAAW,OACXvhP,QAAS,wBAEXwhP,gBAAiB,CACfF,OAAQ,QACRC,UAAW,QACXE,mBAAoB,iCACpB3wN,OAAQ,OACR4wN,gBAAiB,OAEnBC,cAAe,CACbL,OAAQ,QACR73J,SAAU,QACVm4J,WAAY,0BAEdC,kBAAmB,CACjBjhQ,KAAM,QACNgM,WAAY,uCAEdk1P,mBAAoB,CAClB7zF,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEvI8zF,gBAAiB,CACfn1P,WAAY,iCACZo1P,cAAe,OACfC,gBAAiB,OACjBC,MAAO,MACPC,YAAa,MACbC,OAAQ,MACRC,aAAc,MACdC,UAAW,MACXC,UAAW,oCEzCXC,GAAc,CAElBC,YAAa,CACXz9L,YAAa,0BACbv5D,OAAQ,GACRhR,KAAM,SAGJioQ,GAAc,CAClBC,gBAAiB,CACf39L,YAAa,6BACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,cAERA,KAAM,6BAGJmoQ,GAAc,CAClBC,gBAAiB,CACf79L,YAAa,sCACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,SACL,CACDmG,KAAM,OACNnG,KAAM,iBAERA,KAAM,wBAERqoQ,oBAAqB,CACnB99L,YAAa,gCACbv5D,OAAQ,CAAC,CACP7K,KAAM,WACNnG,KAAM,iBAERA,KAAM,mBAGJsoQ,GAAc,CAElBC,eAAgB,CACdh+L,YAAa,4BACbv5D,OAAQ,GACRhR,KAAM,WCzCV,IACE67K,IAAK,CAAC,EACNh+C,QD0CqB,CACrB2qI,aAAc,CAAC,CACb95K,QAASwhF,GAAa,CACpBg4F,gBAAiB,CACf39L,YAAa,6BACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,cAERA,KAAM,yBAEPmoQ,GAAaG,IAChBn4P,QAAS,GACR,CACDu+E,QAASwhF,GAAa,GACnB+3F,GAAaE,GAAaG,IAC7Bn4P,QAAS,GACR,CACDu+E,QAASwhF,GAAa,GACnB63F,GAAaE,GAAaE,GAAaG,IAC1Cn4P,QAAS,GACR,CACDu+E,QAASwhF,GAAa,GACnB63F,GAAaI,GAAaG,IAC7Bn4P,QAAS,GACR,CACDu+E,QAASwhF,GAAa,CACpBu4F,eAAgB,CACdl+L,YAAa,4BACbv5D,OAAQ,GACRhR,KAAM,WAEP+nQ,GAAaI,IAChBh4P,QAAS,KC1EX0M,MAAO,CACL6rP,qBAAsB,CACpBC,KAAM,OACNC,WAAY,OACZtyP,OAAQ,gBAEVuyP,aAAc,CACZvxP,KAAM,uCAERwxP,mBAAoB,YCbxB,IACEjtF,IAAK,CAAC,EACNh/J,MAAO,CACLksP,iBAAkB,CAChBv1F,MAAO,CACLw1F,QAAS,6BACTC,OAAQ,cAGZC,YAAa,MACbC,cAAe,MACfC,WAAY,CACVtqQ,MAAO,gBACPmzK,UAAW,cACXo3F,KAAM,iBACNC,KAAM,kBAERp0F,MAAO,CACLp2K,MAAO,gBACPmzK,UAAW,cACXo3F,KAAM,iBACNC,KAAM,iBACNpqQ,IAAK,iBCtBX,IACE28K,IAAK,CAAC,EACNh/J,MAAO,CACL0sP,YAAa,YACbC,aAAc,aCFlB,IACE3tF,ICNiB,CACjB92K,KAAM,CACJwlE,YAAa,gCACbv5D,OAAQ,CAAC,CACP7K,KAAM,cACNnG,KAAM,uBACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,sBAER0pQ,WAAY,CACVn/L,YAAa,gEACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,aACL,CACDmG,KAAM,MACNnG,KAAM,QACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,iBAER0gM,YAAa,CACXn2H,YAAa,6BACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,sBACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,6BAER2pQ,eAAgB,CACdp/L,YAAa,sFACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,aACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,uBAER4pQ,WAAY,CACVr/L,YAAa,2DAGbywJ,SAAU,wBACVhqN,OAAQ,CAAC,CACP7K,KAAM,gBACNnG,KAAM,qBACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,qBD/DR69H,QEPqB,CACrBgsI,aAAc,CAAC,CACbn7K,QAAS,CACP3pF,KAAM,CACJwlE,YAAa,+DACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,aACL,CACDmG,KAAM,OACNnG,KAAM,aACL,CACDmG,KAAM,QACNnG,KAAM,WACL,CACDmG,KAAM,WACNnG,KAAM,OACL,CACDmG,KAAM,sBACNnG,KAAM,mBACL,CACDmG,KAAM,YACNnG,KAAM,YAERA,KAAM,sBAER8pQ,YAAa,CACXv/L,YAAa,iDACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,aACL,CACDmG,KAAM,MACNnG,KAAM,UAERA,KAAM,iBAER0gM,YAAa,CACXn2H,YAAa,8BACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,aACL,CACDmG,KAAM,QACNnG,KAAM,WACL,CACDmG,KAAM,WACNnG,KAAM,OACL,CACDmG,KAAM,sBACNnG,KAAM,mBACL,CACDmG,KAAM,OACNnG,KAAM,SACL,CACDmG,KAAM,OACNnG,KAAM,SACL,CACDmG,KAAM,OACNnG,KAAM,UAERA,KAAM,6BAER+pQ,YAAa,CACXx/L,YAAa,4DACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,aACL,CACDmG,KAAM,OACNnG,KAAM,SACL,CACDmG,KAAM,sBACNnG,KAAM,oBAERA,KAAM,qBAGVmQ,QAAS,KFtEX0M,MAAO,CACLmtP,kBAAmB,CACjBC,OAAQ,SACRC,YAAa,MACbC,UAAW,MACXC,SAAU,WACVC,cAAe,UACfC,SAAU,UACVC,YAAa,cACbC,UAAW,sBACXC,UAAW,gBAEbC,SAAU,OACVC,WAAY,CACVn3F,MAAO,CACLo3F,OAAQ,QACRC,SAAU,SAGdC,kBAAmB,CACjBhhH,OAAQ,YACRnvI,KAAM,QACNowP,oBAAqB,mBAEvBC,iBAAkB,+CAClBC,sBAAuB,CACrBb,SAAU,WACVt4F,QAAS,WAEXo5F,oBAAqB,CACnBphH,OAAQ,YACR57E,KAAM,YACN5vE,MAAO,UACPgnB,SAAU,MACVylP,oBAAqB,kBACrBI,UAAW,SAEbC,+BAAgC,CAC9B3nN,OAAQ,KACRnsC,KAAM,OAER+zP,wBAAyB,CACvB73F,MAAO,CACL83F,QAAS,iCACTxwP,MAAO,SAGXywP,+BAAgC,CAC9BhvK,MAAO,sBACPjlF,KAAM,QACNk0P,YAAa,OAEfC,wBAAyB,CACvBj4F,MAAO,CACL83F,QAAS,iCACTxwP,MAAO,SAGX4wP,qBAAsB,CACpBnvK,MAAO,sBACPjlF,KAAM,SAERq0P,yBAA0B,8CAC1BC,wBAAyB,CACvBJ,YAAa,MACbK,aAAc,OACd7/P,OAAQ,4BAEV8/P,mBAAoB,CAClBN,YAAa,MACbO,YAAa,MACbC,eAAgB,iBAChBH,aAAc,OACd7/P,OAAQ,4BAEVigQ,aAAc,CACZz4F,MAAO,CACL04F,MAAO,oBACPC,UAAW,0BAGfC,kBAAmB,CACjB7jC,KAAM,CACJtgM,WAAY,GACZokO,aAAc,EACdC,WAAY,EACZC,SAAU,EACVC,aAAc,IAGlBC,oBAAqB,CACnBlkC,KAAM,CACJtgM,WAAY,GACZykO,OAAQ,IAGZC,mBAAoB,WACpBC,gBAAiB,CACfzC,UAAW,MACXF,OAAQ,UAEV4C,gBAAiB,CACftwK,MAAO,sBACPjlF,KAAM,SAERw1P,IAAK,MACLC,mBAAoB,CAClBjkL,OAAQ,SACRlqE,QAAS,SACTouP,QAAS,SACTr8D,QAAS,SACTs8D,iBAAkB,SAClBC,eAAgB,SAChBC,iBAAkB,SAClB9C,cAAe,SACfrwF,YAAa,SACbl8I,IAAK,SACLsvO,YAAa,SACbp4P,IAAK,SACLP,MAAO,SACP44P,aAAc,SACdltQ,OAAQ,SACRmtQ,cAAe,SACfC,UAAW,SACXC,UAAW,SACXC,kBAAmB,SACnBrqO,OAAQ,SACRsqO,aAAc,SACdC,qBAAsB,SACtBC,oBAAqB,SACrBC,iBAAkB,SAClBC,WAAY,SACZC,kBAAmB,SACnBC,aAAc,SACdtE,WAAY,SACZuE,kBAAmB,SACnBC,SAAU,SACVnpQ,KAAM,SACNopQ,sBAAuB,SACvBC,iBAAkB,SAClBC,kBAAmB,SACnB3tE,YAAa,SACb4tE,wBAAyB,SACzBC,yBAA0B,SAC1BC,YAAa,SACbC,mBAAoB,SACpBl0N,cAAe,SACfm0N,qBAAsB,SACtBC,cAAe,SACfC,qBAAsB,SACtBC,cAAe,SACfC,qBAAsB,UAExBC,cAAe,CACbjmL,OAAQ,SACRlqE,QAAS,SACTouP,QAAS,SACTr8D,QAAS,SACTs8D,iBAAkB,SAClBC,eAAgB,SAChBC,iBAAkB,SAClB9C,cAAe,SACfrwF,YAAa,SACbl8I,IAAK,SACLsvO,YAAa,SACbp4P,IAAK,SACLP,MAAO,SACP44P,aAAc,SACdltQ,OAAQ,SACRmtQ,cAAe,SACfC,UAAW,SACXyB,qBAAsB,SACtBxB,UAAW,SACXyB,2BAA4B,SAC5BC,8BAA+B,SAC/BzB,kBAAmB,SACnBrqO,OAAQ,SACRsqO,aAAc,SACdC,qBAAsB,SACtBC,oBAAqB,SACrBC,iBAAkB,SAClBC,WAAY,SACZC,kBAAmB,SACnBC,aAAc,SACdtE,WAAY,SACZuE,kBAAmB,SACnBC,SAAU,SACVnpQ,KAAM,SACNoqQ,gBAAiB,SACjBhB,sBAAuB,SACvBC,iBAAkB,SAClBC,kBAAmB,SACnB3tE,YAAa,SACb0uE,uBAAwB,SACxBd,wBAAyB,SACzBC,yBAA0B,SAC1Bc,uBAAwB,SACxBb,YAAa,SACbC,mBAAoB,SACpBl0N,cAAe,SACfm0N,qBAAsB,SACtBC,cAAe,SACfC,qBAAsB,SACtBC,cAAe,SACfC,qBAAsB,SACtBQ,WAAY,UAEdC,qBAAsB,CACpBzlH,OAAQ,YACRxrJ,MAAO,UACPgnB,SAAU,MACV3K,KAAM,QACNrD,KAAM,QACNuP,KAAM,SAER2oP,qBAAsB,CACpBpjC,UAAW,uBACXtiF,OAAQ,YACRxrJ,MAAO,UACPgnB,SAAU,MACVylP,oBAAqB,kBACrBpwP,KAAM,QACNrD,KAAM,QACNuP,KAAM,SAER4oP,mBAAoB,CAClBrjC,UAAW,uBACXtiF,OAAQ,YACRxrJ,MAAO,UACPgnB,SAAU,MACVylP,oBAAqB,kBACrBpwP,KAAM,aACNrD,KAAM,QACNuP,KAAM,SAER6oP,+BAAgC,4CAChCC,+BAAgC,yCAChCC,0BAA2B,CACzBxjC,UAAW,iCACXo/B,YAAa,MACbO,YAAa,MACbC,eAAgB,iBAChBH,aAAc,OACd7/P,OAAQ,0BAEV6jQ,4BAA6B,CAC3B7jQ,OAAQ,kBACR8jQ,UAAW,YACXnG,eAAgB,0BAElBoG,yBAA0B,CACxB/jQ,OAAQ,kBACR8jQ,UAAW,aAEbE,uBAAwB,kDACxBC,mBAAoB,CAClBC,SAAU,MACVC,QAAS,MACTC,SAAU,MACVzpG,OAAQ,MACR0pG,IAAK,MACLz2K,GAAI,MACJ02K,KAAM,MACNC,QAAS,MACTC,gBAAiB,MACjBzrQ,KAAM,MACN0rQ,aAAc,MACdC,qBAAsB,MACtBC,SAAU,MACVC,SAAU,MACVC,UAAW,MACXC,UAAW,MACXC,UAAW,MACXC,cAAe,MACfC,WAAY,MACZC,OAAQ,MACRC,OAAQ,MACRC,UAAW,MACXC,OAAQ,MACRC,cAAe,MACfC,cAAe,MACfC,WAAY,MACZC,MAAO,MACPC,MAAO,MACPC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,QAAS,MACTC,QAAS,MACTC,QAAS,MACTC,QAAS,MACTC,OAAQ,MACRC,MAAO,MACPC,OAAQ,MACRC,OAAQ,MACRC,QAAS,MACTC,QAAS,MACTC,QAAS,MACTC,QAAS,OAEXC,YAAa,CACXC,YAAa,MACbC,YAAa,MACbC,QAAS,MACTlhH,WAAY,MACZmhH,YAAa,MACbC,UAAW,MACXC,YAAa,MACbC,WAAY,MACZC,SAAU,OAEZC,OAAQ,CACNR,YAAa,MACbC,YAAa,MACbC,QAAS,MACTlhH,WAAY,MACZmhH,YAAa,MACbC,UAAW,MACXC,YAAa,MACbC,WAAY,OAEdG,iBAAkB,CAChBC,gBAAiB,eACjBj9N,QAAS,eACTk9N,QAAS,eACTC,SAAU,eACVtJ,UAAW,eACX9vP,KAAM,QACNq5P,gBAAiB,OAEnBC,eAAgB,CACdzgG,MAAO,CACL0gG,WAAY,cACZC,WAAY,SAGhBC,cAAe,CACbjkQ,QAAS,MACTkkQ,mBAAoB,MACpBC,YAAa,MACbC,cAAe,MACfC,sBAAuB,MACvBC,qBAAsB,MACtBC,kBAAmB,MACnBC,cAAe,MACfC,oBAAqB,MACrBC,qBAAsB,MACtBC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,MAChBC,cAAe,OACfC,cAAe,OAEjBC,cAAe,CACbhlQ,QAAS,MACTkkQ,mBAAoB,MACpBC,YAAa,MACbC,cAAe,MACfC,sBAAuB,MACvBC,qBAAsB,MACtBC,kBAAmB,MACnBC,cAAe,MACfC,oBAAqB,MACrBC,qBAAsB,MACtBO,aAAc,MACdN,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,MAChBC,cAAe,OACfC,cAAe,OAEjBG,cAAe,CACbllQ,QAAS,MACT8kQ,cAAe,OACfK,OAAQ,cACRC,mBAAoB,qBACpBC,cAAe,sBAEjBC,SAAU,CACRtlQ,QAAS,MACT8kQ,cAAe,OACfK,OAAQ,SACRC,mBAAoB,qBACpBC,cAAe,iBAEjBE,OAAQ,OACRC,eAAgB,CACdniG,MAAO,CACLoiG,OAAQ,UACRC,OAAQ,YAGZC,sBAAuB,OACvBC,OAAQ,UG9YZ,IACEl6F,IAAK,CAAC,EACNh/J,MAAO,CACLm5P,YAAa,CACXxiG,MAAO,CACLyiG,SAAU,sBACVC,MAAO,qBAGXC,iBAAkB,CAChBpwB,IAAK,UACLqwB,IAAK,WAEPC,oBAAqB,CACnBhwB,KAAM,OACN11C,QAAS,WAEX2lE,WAAY,CACV9iG,MA1BwB,CAC9B,OACA,WACA,WACA,WACA,WACA,WACA,aAqBI+iG,YAAa,CACXC,MAAO,UACPC,QAAS,WAEXC,eAAgB,CACdljG,MAAO,CACLmjG,QAAS,cACTC,UAAW,4BAGfC,wBAAyB,CACvBv/P,KAAM,QACN0M,SAAU,YACV8tJ,QAAS,UACTglG,MAAO,cACPC,OAAQ,uBAEVC,UAAW,yBACXC,UAAW,MACXC,SAAU,OACVC,WAAY,CACV3jG,MAAO,CACL4jG,KAAM,YACNC,OAAQ,cAGZC,gBAAiB,MACjBC,oBAAqB,CACnBr4Q,IAAK,cACLs4Q,aAAc,OACdvlG,UAAW,gBACXv+G,MAAO,eAETqhH,eAAgB,CACdvB,MAAO,CACLikG,QAAS,mBACTC,SAAU,2BAGdC,uBAAwB,CACtBC,SAAU,OACV14Q,IAAK,eAEP24Q,iBAAkB,CAChB34Q,IAAK,cACLs4Q,aAAc,OACdvlG,UAAW,gBACXv+G,MAAO,cACPokN,MAAO,SAETC,MAAO,CACL1O,KAAM,UACNC,KAAM,UACN0O,QAAS,WAEXC,OAAQ,CACNzkG,MAAO,CACL0kG,OAAQ,eACRC,WAAY,qBAGhBC,aAAc,CACZ5B,MAAO,wBACP6B,YAAa,cACbC,MAAO,aAETC,iBAAkB,iCAClBC,iBAAkB,CAChB7nE,QAAS,UACT9jM,OAAQ,YACRm5O,WAAY,aACZqyB,YAAa,cACbC,MAAO,eCnGb,IACEz8F,ICLiB,CACjB48F,cAAe,CACbluM,YAAa,4EACbv5D,OAAQ,CAAC,CACPy4P,YAAY,EACZtjQ,KAAM,KACNnG,KAAM,SAERA,KAAM,uBDFR6c,MAAO,CACL67P,WAAY,CACVC,WAAY,MACZC,kBAAmB,MACnBt7F,SAAU,MACVu7F,mBAAoB,SEP1B,IACEh9F,IAAK,CAAC,EACNh+C,QCNqB,CACrBi7I,sBAAuB,CAAC,CACtBpqL,QAAS,CACPuxK,YAAa,CACX11L,YAAa,wEACbv5D,OAAQ,GACRhR,KAAM,qBAGVmQ,QAAS,KDFX0M,MAAO,CAAC,GEJV,IACEg/J,IAAK,CAAC,EACNh/J,MAAO,CACLk8P,aAAc,MACdC,aAAc,CACZ9lE,IAAK,YACL+lE,UAAW,eACXC,eAAgB,gBAElBC,WAAY,CACV3lG,MAAO,CACLy1F,OAAQ,OACRmQ,SAAU,OACVC,UAAW,iBAGfC,SAAU,MACVC,KAAM,cACNC,UAAW,MACXC,UAAW,CACTC,WAAY,YACZC,QAAS,YACTC,IAAK,UACLC,MAAO,WAETC,cAAe,CACbtmG,MAAO,CAAC,yBAA0B,yBAA0B,sBCzBlE,IACEqI,ICLiB,CACjBk+F,YAAa,CACXxvM,YAAa,kEACbv5D,OAAQ,CAAC,CACP7K,KAAM,cACNnG,KAAM,QACL,CACDmG,KAAM,WACNnG,KAAM,QACL,CACDmuO,YAAY,EACZhoO,KAAM,aACNnG,KAAM,cAERA,KAAM,gBAERg6Q,cAAe,CACbzvM,YAAa,gEACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,aACL,CACDmuO,YAAY,EACZhoO,KAAM,gBACNnG,KAAM,kBAERA,KAAM,SDpBR6c,MAAO,CACLo9P,aAAc,CACZ3tC,OAAQ,CACNxtB,UAAW,QAEbA,UAAW,YACXo7D,IAAK,eAEPC,YAAa,CACXC,WAAY,OACZC,2BAA4B,OAC5BC,mBAAoB,OACpBC,iBAAkB,OAClBC,mBAAoB,OACpBC,UAAW,UEjBjB,IACE5+F,IAAK,CAAC,EACNh/J,MAAO,CACL69P,WAAY,CACVv+Q,MAAO,OACPw0M,QAAS,QAEXgqE,YAAa,CACXC,WAAY,aACZt8Q,MAAO,QACPu8Q,QAAS,OACTj7D,KAAM,eAERk7D,cAAe,CACbF,WAAY,aACZt8Q,MAAO,OACPu8Q,QAAS,OACTj7D,KAAM,eAERm7D,OAAQ,CACNn8P,QAAS,OACTkC,OAAQ,YACRxJ,KAAM,SAER0jQ,YAAa,CACXt4P,SAAU,OACVonI,OAAQ,QAEVmxH,UAAW,CACTznG,MAAO,CACL0nG,eAAgB,OAChBC,cAAe,OACfC,YAAa,OACbC,aAAc,OACdC,kBAAmB,OACnBC,YAAa,OACbC,gBAAiB,OACjBC,oBAAqB,OACrBC,YAAa,OACbC,SAAU,OACVC,UAAW,OACXC,YAAa,OACbC,YAAa,OACb7jB,MAAO,SAGX8jB,UAAW,CACTvoG,MAAO,CACLwoG,aAAc,OACdC,mBAAoB,OACpBC,iBAAkB,YAClBjkB,MAAO,SAGXkkB,WAAY,CACV3oG,MAAO,CACL4oG,QAAS,cACTthQ,MAAO,YACP4xP,OAAQ,aACR2P,MAAO,cAGXC,WAAY,CACV9oG,MAAO,CAAC,aAEV+oG,YAAa,CACX/oG,MAAO,CAAC,UAAW,WAAY,eClErC,IACEqI,IAAK,CAAC,EACNh/J,MAAO,CACL2/P,UAAW,mBACXC,aAAc,sBACdC,iBAAkB,0BAClBC,mBAAoB,iBACpBC,YAAa,qBACbC,mBAAoB,4BACpBC,qBAAsB,8BACtBC,iBAAkB,0BAClBC,wBAAyB,iCAEzBC,IAAK,eACLjqC,YAAa,qBACbD,UAAW,mBAEXmqC,aAAc,OACdC,eAAgB,CACd3pG,MAAO,CACL2mF,QAAS,mBACTC,QAAS,mBACTC,MAAO,mBAGX/jN,UAAW,OACX8mO,cAAe,uBACfC,eAAgB,WAChBC,iBAAkB,OAClBC,iBAAkB,SC7BtB,IACE1hG,IAAK,CAAC,EACNh/J,MAAO,CACL2gQ,aAAc,CACZC,eAAgB,mBAChBC,YAAa,oBAEfC,MAAO,CACLnqG,MAAO,CACLuzD,KAAM,OACNpzD,QAAS,cAGbiqG,cAAe,CACbr5O,OAAQ,QACRs5O,KAAM,QACNC,KAAM,SAERC,mBAAoB,CAClBvqG,MAAO,CACLmgF,GAAI,kBAGRqqB,iBAAkB,kBCvBtB,IACEniG,IAAK,CAAC,EACNh/J,MAAO,CACLohQ,WAAY,CACVC,WAAY,cACZnf,OAAQ,UACR7rD,IAAK,YACL6jE,OAAQ,eAEVoH,iBAAkB,CAChBC,OAAQ,UACRF,WAAY,cACZp/Q,MAAO,cACP+N,OAAQ,eAEVwxQ,YAAa,MACbC,QAAS,CACPvf,OAAQ,UACR7rD,IAAK,eCpBLqrE,GAAgB,CACpBhe,6BAA8B,CAC5Bh2L,YAAa,+EACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,SACL,CACDmG,KAAM,cACNnG,KAAM,gBAERA,KAAM,mCAERw+Q,oBAAqB,CACnBj0M,YAAa,wJACbv5D,OAAQ,GACRhR,KAAM,iBAERygQ,8CAA+C,CAC7Cl2L,YAAa,2DACbv5D,OAAQ,CAAC,CACP7K,KAAM,oBACNnG,KAAM,4BACL,CACDmG,KAAM,gBACNnG,KAAM,4BAERA,KAAM,iBCtBV,IACE67K,ICNiB,CACjB4iG,cAAe,CACbl0M,YAAa,wGACbv5D,OAAQ,CAAC,CACP7K,KAAM,cACNnG,KAAM,gBAERA,KAAM,iCAER0+Q,WAAY,CACVn0M,YAAa,6FACbv5D,OAAQ,GACRhR,KAAM,uBAERolQ,wBAAyB,CACvB76L,YAAa,uCACbv5D,OAAQ,GACRq0P,OAAQ,CAAC,iBAAkB,0BAA2B,6BACtDrlQ,KAAM,8BDXR69H,QDuBqB,CACrB8gJ,WAAY,CAAC,CACXjwL,QAASwhF,GAAa,CACpB0uG,eAAgB,CACdr0M,YAAa,wCACbv5D,OAAQ,GACRhR,KAAM,UAEPu+Q,IACHpuQ,QAAS,GACR,CACDu+E,QAAS6vL,GACTpuQ,QAAS,KClCX0M,MAAO,CACLgiQ,eAAgB,MAChBC,cAAe,qBACfC,aAAc,CACZC,mBAAoB,gBACpBC,MAAO,MACPC,uBAAwB,wBACxBC,qBAAsB,qBACtBC,oBAAqB,uBAEvBC,sBAAuB,CACrBC,MAAO,iCACPC,oBAAqB,uBAEvBC,0BAA2B,CACzBv9Q,KAAM,YACN8gC,OAAQ,cACRzrB,KAAM,gBAENpX,SAAU,kCAEZu/Q,mBAAoB,qBACpBC,oBAAqB,0BACrBC,gBAAiB,MACjBC,UAAW,CACTpsG,MAAO,CACLqsG,UAAW,OACXC,KAAM,kBAGVC,cAAe,CACbC,oBAAqB,eAEvBC,sBAAuB,QACvBC,oBAAqB,CACnB1sG,MAAO,CACL2sG,QAAS,2BACTC,UAAW,6BAGfC,yBAA0B,CACxBpB,MAAO,QACPqB,aAAc,uBAEhBC,yBAA0B,CACxBC,YAAa,MACbnoI,SAAU,cACV65F,MAAO,uCACP/gC,OAAQ,wCAEVsvE,eAAgB,CACdC,WAAY,OACZC,aAAc,eAEhBC,cAAe,CACbF,WAAY,YACZC,aAAc,cACdE,WAAY,+BAEdC,iBAAkB,CAChBJ,WAAY,YACZC,aAAc,eAEhBI,uBAAwB,CACtBC,UAAW,mBACXjjQ,UAAW,qBACXe,GAAI,eAENmiQ,qBAAsB,CACpBxgO,MAAO,MACPygO,OAAQ,gBACRC,gBAAiB,eAEnBC,0BAA2B,QAC3BC,cAAe,kBACfC,cAAe,iCACfC,cAAe,CACbC,gBAAiB,gBACjB9tN,MAAO,cACP+tN,YAAa,cACbC,UAAW,YACXC,UAAW,aAEbC,aAAc,CACZC,YAAa,cACbnuN,MAAO,eAETouN,cAAe,CACbD,YAAa,cACbnuN,MAAO,eAETquN,WAAY,CACVC,cAAe,MACf1iP,QAAS,yBAEX2iP,SAAU,CACRD,cAAe,MACf1iP,QAAS,yBAEX4iP,oBAAqB,CACnBjD,MAAO,MACPkD,KAAM,aACN11N,WAAY,mBAEd21N,WAAY,CACV3hO,MAAO,MACP4hO,YAAa,MACbC,gBAAiB,MACjBC,SAAU,WACV1B,WAAY,cAEd2B,MAAO,MACPC,oBAAqB,CACnBZ,YAAa,cACbnuN,MAAO,cACP8tN,gBAAiB,iBAEnBkB,YAAa,CACXlvG,MAAO,CACLmvG,KAAM,OACNf,aAAc,eACdgB,OAAQ,OACRd,cAAe,oBE/HvB,IACEjmG,IAAK,CAAC,EACNh/J,MAAO,CACLgmQ,eAAgB,CACdt6C,KAAM,CACJtgM,WAAY,GAEZ66O,QAAS,EACTC,MAAO,EACPC,IAAK,EACLC,KAAM,EACNC,MAAO,GACPC,eAAgB,GAChBC,MAAO,GACPC,QAAS,MAGbC,uBAAwB,eACxBC,kBAAmB,CACjBC,WAAY,8BACZn6N,QAAS,OACTo6N,MAAO,OACPtjC,IAAK,OACLujC,KAAM,OACNruN,MAAO,OACPsuN,eAAgB,eAChBt/D,MAAO,QAETxvC,aAAc,CACZu3D,UAAW,oBACXo3C,WAAY,8BACZn6N,QAAS,OACTo6N,MAAO,OACPtjC,IAAK,OACLujC,KAAM,OACNruN,MAAO,OACPsuN,eAAgB,eAChBt/D,MAAO,OACPu/D,QAAS,QAEXpuG,kBAAmB,CACjBhC,MAAO,CACLqwG,QAAS,OACTC,QAAS,UACTC,WAAY,OACZC,UAAW,OACXC,UAAW,OACXC,WAAY,OACZC,UAAW,SAGfC,sBAAuB,sCACvBC,kBAAmB,CACjBC,WAAY,6BACZxyG,QAAS,UACT7yI,KAAM,qBAERslP,aAAc,CACZn4C,UAAW,oBACXk4C,WAAY,6BACZxyG,QAAS,UACT7yI,KAAM,gBAERulP,eAAgB,MAChBC,cAAe,CACb1pP,QAAS,YACT2pP,IAAK,UACLrxP,OAAQ,oBCnEd,IACEwoJ,IAAK,CAAC,EACNh/J,MAAO,CACL8nQ,UAAW,MACXC,mBAAoB,YACpBhwG,UAAW,CACToF,YAAa,cACb6qG,aAAc,qBACdC,aAAc,eACdhiB,eAAgB,YAChBiiB,cAAe,OAEjBC,eAAgB,CACdhrG,YAAa,cACb6qG,aAAc,qBACdC,aAAc,eACdhiB,eAAgB,aAElBmiB,gBAAiB,gBACjBC,aAAc,gBACdC,mBAAoB,CAClBC,OAAQ,eACRC,kBAAmB,0BCtBzB,IACExpG,IAAK,CAAC,EACNh/J,MAAO,CACLyoQ,UAAW,WACXC,cAAe,CACb3zG,MAAO,UACP1mJ,MAAO,cACP3vB,OAAQ,cACRm4D,MAAO,cACP+zC,OAAQ,UCPd,IACEo0E,ICNiB,CACjB2pG,mBAAoB,CAClBj7M,YAAa,iDACbv5D,OAAQ,CAAC,CACP7K,KAAM,cACNnG,KAAM,YACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,gBAERylR,cAAe,CACbl7M,YAAa,2CACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,OACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,sBDlBR69H,QEPqB,CACrB6nJ,OAAQ,CAAC,CACPh3L,QAAS,CACPi3L,qBAAsB,CACpBp7M,YAAa,iEACbv5D,OAAQ,CAAC,CACP7K,KAAM,cACNnG,KAAM,sBAERA,KAAM,kEAER4lR,eAAgB,CACdr7M,YAAa,mDACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,iBAERA,KAAM,wDAER6lR,SAAU,CACRt7M,YAAa,qCACbv5D,OAAQ,GACRhR,KAAM,0BAER8lR,mBAAoB,CAClBv7M,YAAa,+DACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,+BACL,CACDmG,KAAM,QACNnG,KAAM,kBAERA,KAAM,wBAER+lR,6BAA8B,CAC5Bx7M,YAAa,iEACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,SACNnG,KAAM,+BACL,CACDmG,KAAM,QACNnG,KAAM,kBAERA,KAAM,wBAERgmR,aAAc,CACZz7M,YAAa,yCACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,0BACL,CACDmG,KAAM,QACNnG,KAAM,aAERA,KAAM,wBAERimR,uBAAwB,CACtB17M,YAAa,4CACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,OACNnG,KAAM,0BACL,CACDmG,KAAM,QACNnG,KAAM,aAERA,KAAM,yBAGVmQ,QAAS,KFnEX0M,MAAO,CACLqpQ,cAAe,CACbC,YAAa,oBACbC,UAAW,eACXr7P,MAAO,aAETs7P,uBAAwB,QACxBC,SAAU,CACR9yG,MAAO,CAAC,OAAQ,UAAW,SAAU,gBAAiB,SAAU,eAAgB,qBAAsB,qBAExG+yG,kBAAmB,CACjBznE,UAAW,YACX0nE,OAAQ,QACR/pB,MAAO,SAETgqB,aAAc,MACdC,aAAc,CACZ5nE,UAAW,YACX6nE,KAAM,QACNlqB,MAAO,SAETmqB,aAAc,MACdC,SAAU,CACRC,UAAW,eACXV,UAAW,eACXr7P,MAAO,eG7Bb,IACE8wJ,IAAK,CAAC,EACNh+C,QCNqB,CACrBkpJ,mBAAoB,CAAC,CACnBr4L,QAAS,CACPs4L,gBAAiB,CACfz8M,YAAa,oDACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,cAERA,KAAM,YAGVmQ,QAAS,KDLX0M,MAAO,CACLoqQ,WAAY,CACVzzG,MAAO,CAAC,iBAAkB,+BENhC,IACEqI,IAAK,CAAC,EACNh/J,MAAO,CACLqqQ,kBAAmB,oDACnBC,KAAM,WACNC,eAAgB,CACdjmB,SAAU,WACVkmB,UAAW,iBAEbC,SAAU,sBACVC,eAAgB,QAChBC,WAAY,OACZC,SAAU,cCXd,IACE5rG,IAAK,CAAC,EACNh+C,QCNqB,CACrB6pJ,cAAe,CAAC,CACdh5L,QAAS,CACPsxH,WAAY,CACVz1I,YAAa,kDACbv5D,OAAQ,GAERhR,KAAM,QAGVmQ,QAAS,IAEXw3Q,aAAc,CAAC,CACbj5L,QAAS,CACP1wD,UAAW,CACTusC,YAAa,sEACbv5D,OAAQ,GACRhR,KAAM,WAGVmQ,QAAS,KDbX0M,MAAO,CAAC,GEJV,IACEg/J,IAAK,CAAC,EACNh/J,MAAO,CACL+qQ,gBAAiB,CACfnxI,SAAU,YACVoxI,UAAW,YACXn0N,MAAO,eAET6/G,UAAW,CACTC,MAAO,CAAC,MAAO,cAAe,aAAc,YAE9Cs0G,kBAAmB,CACjBC,KAAM,YACNC,SAAU,OACV5+N,OAAQ,iBCdd,IACEyyH,IAAK,CAAC,EACNh/J,MAAO,CACLorQ,eAAgB,CACdj6C,QAAS,cACTl8D,QAAS,UACTo2G,QAAS,kBAEXC,eAAgB,CACdC,YAAa,cACbt2G,QAAS,UACTo2G,QAAS,iBACTj2G,UAAW,SCZjB,IACE4J,IAAK,CAAC,EACNh/J,MAAO,CACLwrQ,OAAQ,qBACRC,SAAU,KACVC,eAAgB,SAChBC,iBAAkB,WAClBC,UAAW,CACTC,QAAS,gBACTxnL,SAAU,mBACVn8F,KAAM,OACN4jR,cAAe,yBACf7+H,OAAQ,iBAEV8+H,eAAgB,CACdF,QAAS,gBACTxnL,SAAU,mBACVn8F,KAAM,OACN4jR,cAAe,0BAEjBE,YAAa,uBCQjB,IACEhtG,IAAK,CAAC,EACNh+C,QCjCqB,CACrBirJ,YAAa,CAAC,CACZp6L,QAAS,CACPq6L,oBAAqB,CACnBx+M,YAAa,wCACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,UAERA,KAAM,mCAERgpR,sBAAuB,CACrBz+M,YAAa,uEACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,kBAERA,KAAM,UAGVmQ,QAAS,KDcX0M,MAAOqzJ,GAAa,CAAC,EAxBN,CAEf+4G,SAAU,WAEV70G,KAAM,eACN80G,aAAc,cACdC,aAAc,yBACdC,aAAc,oCACdC,aAAc,+CACdC,aAAc,0DACdC,aAAc,qEACdC,cAAe,oEACfC,aAAc,gFACdC,cAAe,+EACfC,aAAc,2FACdC,cAAe,0FACfC,aAAc,sGACdC,cAAe,qGACfC,cAAe,iHACfC,eAAgB,iHAKkB,CAChCr0G,mBAAoB,WACpBs0G,oBAAqB,oCACrBC,gBAAiB,CACfC,QAAS,eACTpuB,UAAW,aACXquB,eAAgB,kBAElBC,aAAc,MACdC,eAAgB,SExCpB,IACEzuG,IAAK,CAAC,EACNh/J,MAAO,CACL0tQ,IAAK,CACHr3E,IAAK,YACLzxK,KAAM,UACNnjC,MAAO,WAETksR,QAAS,CACPh3G,MAAO,CACLi3G,QAAS,UACTC,MAAO,yBAIXC,iBAAkB,CAChBn3G,MAAO,CAAC,QAAS,SAAU,YAG7Bo3G,YAAa,CACXp3G,MAAO,CAAC,UAAW,SAAU,YAE/Bq3G,YAAa,MACbC,eAAgB,CACdt3G,MAAO,CAAC,WAAY,aC2I1B,IACEqI,IAAK,CAAC,EACNh/J,MAAOqzJ,GAAa,CAAC,EApKJ,CACjB66G,OAAQ,MACRC,UAAW,CACTh+P,MAAO,SACPi+P,WAAY,gBAGC,CACf/2G,mBAAoB,2BACpBg3G,yBAA0B,CACxBC,OAAQ,sDACRC,OAAQ,2EACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,QAAS,gFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,kFAEXC,yBAA0B,CACxBhB,OAAQ,sDACRC,OAAQ,2EACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,OAAQ,gFACRC,QAAS,gFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTE,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,iFACTC,QAAS,kFAEXC,wBAAyB,2BACzBC,wBAAyB,CACvB1B,OAAQ,2DACRC,OAAQ,2DACRC,OAAQ,2DACRC,OAAQ,2DACRC,OAAQ,2DACRC,OAAQ,2DACRC,OAAQ,2DACRC,OAAQ,2DACRC,OAAQ,2DACRC,QAAS,2DACTC,QAAS,4DACTC,QAAS,4DACTC,QAAS,4DACTC,QAAS,4DACTC,QAAS,4DACTC,QAAS,6DAEXY,aAAc,qCACdC,oBAAqB,mDACrBC,gBAAiB,CAGfx5G,MAAO,CAAC,UAAW,SAAU,aAE/By5G,cAAe,CACbz5G,MAAO,CACL05G,IAAK,KACLC,OAAQ,KACRC,SAAU,sBACVC,UAAW,OAGfC,eAAgB,CACdC,QAAS,kBACTC,UAAW,UACXC,eAAgB,iBAChBC,UAAW,8BAEbC,cAAe,YACfC,aAAc,CACZpnB,WAAY,0BACZqnB,WAAY,2BAEdC,eAAgB,CACdt6G,MAAO,CACL/3B,MAAO,OACP27H,KAAM,gBAGV2W,gBAAiB,OACjB55G,YAAa,oBACb65G,kBAAmB,CACjBjiQ,QAAS,2BACT+wH,MAAO,gBACPr8F,MAAO,OAETwtO,kBAAmB,CACjBliQ,QAAS,2BACT+wH,MAAO,gBACPr8F,MAAO,OAETytO,iBAAkB,oBAClBC,cAAe,CACbC,SAAU,mBACVtxI,MAAO,gBACPywI,QAAS,mBAEXc,cAAe,CACbC,OAAQ,+CACRC,QAAS,kBAEXC,WAAY,CACVt7E,IAAK,YACL2mE,MAAO,UACP/nG,QAAS,WAEX28G,iBAAkB,CAChBriD,UAAW,wBACXl5B,IAAK,YACLphC,QAAS,UACT48G,SAAU,cACVC,OAAQ,WAEVC,sBAAuB,CACrB17E,IAAK,YACLphC,QAAS,UACT48G,SAAU,eAEZG,mBAAoB,mBACpBC,uBAAwB,CACtBR,OAAQ,eACRC,QAAS,gBAEXQ,gBAAiB,CACf/hQ,MAAO,kBACPshQ,OAAQ,qCAEVU,iBAAkB,oCAClBC,SAAU,mBACVC,oBAAqB,+BACrBC,MAAO,CACL3Y,MAAO,iBACPqD,MAAO,UACP/nG,QAAS,WAEXs9G,WAAY,OAIkC,CAC5CC,cAAe,CACbvwR,MAAO,WACPosB,MAAO,kBAETokQ,SAAU,MACVC,gBAAiB,CACfviQ,MAAO,cACPi+P,WAAY,oCAEduE,WAAY,CACVxiQ,MAAO,MACPyiQ,QAAS,YAEXC,SAAU,CACR1iQ,MAAO,mBACP2iQ,IAAK,mBACLC,OAAQ,2BAEVC,QAAS,CACPr8G,MAAO,CAAC,aAAc,WAAY,YAAa,gBAEjDs8G,mBAAoB,CAClB58E,IAAK,YACL50M,MAAO,oBAETyxR,QAAS,YACTC,SAAU,SACVC,YAAa,CACX1B,QAAS,iBACT2B,YAAa,WACbC,WAAY,QAEdC,eAAgB,MAChBC,sBAAuB,0BACvBC,iBAAkB,SAClBC,wBAAyB,4BACzBC,cAAe,YACfzF,OAAQ,MACR0F,kBAAmB,CACjBj9G,MAAO,CACLk9G,OAAQ,OACRC,MAAO,OACPC,WAAY,OACZC,QAAS,YACT9pD,KAAM,SAGV+pD,YAAa,MACbC,kBAAmB,CACjB79E,IAAK,YACL6rD,OAAQ,UACRiyB,SAAU,WAEZC,mBAAoB,CAClBC,UAAW,YACXC,UAAW,WACX7Y,MAAO,iBAETtjG,cAAe,CACbk8G,UAAW,YACXC,UAAW,WACXC,iBAAkB,WAClB9Y,MAAO,iBAET+Y,UAAW,MACXC,WAAY,CACVC,QAAS,UACTC,QAAS,WAEXC,mBAAoB,CAClBC,MAAO,YACP1kQ,MAAO,mBACPm9B,OAAQ,mBACRwnO,UAAW,oBAEbC,mBAAoB,CAClBxlD,UAAW,qBACXslD,MAAO,YACP1kQ,MAAO,mBACPm9B,OAAQ,mBACRwnO,UAAW,mBACXE,WAAY,oBAEd58G,cAAe,CACby8G,MAAO,YACP1kQ,MAAO,mBACPm9B,OAAQ,mBACRwnO,UAAW,mBACXG,eAAgB,iBAElBC,oBAAqB,uBACrBC,eAAgB,CACd/9N,UAAW,YACX07N,IAAK,UACLC,OAAQ,2BACRvI,UAAW,iBACX4K,OAAQ,WAEVC,YAAa,CACX5zR,MAAO,mBACPywO,IAAK,wBAEPojD,eAAgB,MAChBC,sBAAuB,0BACvB79G,eAAgB,4BAChB89G,6BAA8B,CAC5BC,WAAY,oBAEdC,0BAA2B,CACzBD,WAAY,mBACZE,QAAS,QAEXC,oBAAqB,CACnBC,iBAAkB,oBAEpBC,oBAAqB,CACnBC,iBAAkB,eAClBF,iBAAkB,uBC3RxB,IACE72G,IAAK,CAAC,EACNh/J,MAAO,CACLg2Q,uBAAwB,CACtBC,aAAc,UACdC,UAAW,UACX1kP,SAAU,OACV2kP,OAAQ,QCNd,IACEn3G,ICLiB,CACjBo3G,YAAa,CACX1oN,YAAa,6EACbywJ,SAAU,yBACVhqN,OAAQ,CAAC,CACP7K,KAAM,MACNnG,KAAM,SAERA,KAAM,SDFR6c,MAAO,CAAC,GEDV,IACEg/J,ICNiB,CACjBq3G,iBAAkB,CAChBjpD,MAAO,CAAC,qBACR1/J,YAAa,2DACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,cAERA,KAAM,SAERmzR,aAAc,CACZ5oN,YAAa,yDACbv5D,OAAQ,CAAC,CACP7K,KAAM,aACNnG,KAAM,SAERA,KAAM,QAERozR,gBAAiB,CACf7oN,YAAa,uBACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,SAERA,KAAM,QAER+5K,MAAO,CACLxvG,YAAa,sBACbv5D,OAAQ,GACRhR,KAAM,QAER00N,UAAW,CACTnqJ,YAAa,2BACbv5D,OAAQ,GACRhR,KAAM,aAERqzR,OAAQ,CACNppD,MAAO,CAAC,mBACR1/J,YAAa,wCACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,SACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,wBAERszR,OAAQ,CACN/oN,YAAa,mCACbgpN,YAAY,EACZviR,OAAQ,GACRhR,KAAM,UAERwzR,qBAAsB,CACpBjpN,YAAa,2JACbv5D,OAAQ,GACRhR,KAAM,aAERyzR,YAAa,CACXlpN,YAAa,gDACbv5D,OAAQ,GACRhR,KAAM,QAERmG,KAAM,CACJokE,YAAa,0BACbv5D,OAAQ,GACRhR,KAAM,QAER6kR,aAAc,CACZ56C,MAAO,CAAC,gCACR1/J,YAAa,uCACbv5D,OAAQ,GACRhR,KAAM,gBAER0zR,UAAW,CACTnpN,YAAa,2CACbv5D,OAAQ,GACRhR,KAAM,iBAER2zR,MAAO,CACLppN,YAAa,wCACbv5D,OAAQ,GACRhR,KAAM,iBAER2iC,WAAY,CACV4nC,YAAa,6EACbv5D,OAAQ,GACRhR,KAAM,mBAER4zR,mBAAoB,CAClBrpN,YAAa,yBACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,SAERA,KAAM,QAER6zR,cAAe,CACbtpN,YAAa,qCACbv5D,OAAQ,GACRhR,KAAM,aAER8zR,eAAgB,CACdvpN,YAAa,8CACbv5D,OAAQ,GACRhR,KAAM,QAER+zR,UAAW,CACTxpN,YAAa,+CACbv5D,OAAQ,GACRhR,KAAM,aAERmQ,QAAS,CACPo6D,YAAa,oCACbv5D,OAAQ,GACRhR,KAAM,SD/GR69H,QEPqB,CACrBm2J,gBAAiB,CAAC,CAChBtlM,QAAS,CACPulM,cAAe,CACb1pN,YAAa,yDACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,cAERA,KAAM,UAGVmQ,QAAS,KFJX0M,MAAO,CACL62J,YAAa,gCACbwgH,0BAA2B,CACzB/3R,MAAO,QACP43Q,SAAU,KACVz8P,KAAM,eAER68Q,wBAAyB,CACvB/nD,UAAW,4BACXjwO,MAAO,QACP43Q,SAAU,WACVz8P,KAAM,eAER88Q,4BAA6B,CAC3BhoD,UAAW,0BACXjwO,MAAO,QACPk4R,UAAW,WACXz4E,UAAW,WACXtkM,KAAM,eAGRg9Q,yBAA0B,8BAC1BC,8BAA+B,CAC7BnoD,UAAW,8BACXjwO,MAAO,QACPk4R,UAAW,WACXz4E,UAAW,WACXujD,YAAa,WACb7nP,KAAM,eAERk9Q,qBAAsB,oDACtBC,yBAA0B,wDAC1BC,gBAAiB,CACflhH,MAAO,CAAC,YAAa,WAAY,mBAEnCmhH,YAAa,CACXjvP,IAAK,uBAEPkvP,aAAc,CACZC,UAAW,SACXC,SAAU,SACVC,SAAU,mCAEZC,gBAAiB,yBACjBC,UAAW,CACTzhH,MAAO,CACL0hH,YAAa,OACbC,MAAO,OACPxS,KAAM,OACNyS,OAAQ,SAGZC,eAAgB,yBAChBC,SAAU,SACVC,cAAe,CACb/hH,MAAO,CAAC,SAAU,cAAe,cAEnCkB,cAAe,CACblB,MAAO,CACLykF,MAAO,OACPu9B,aAAc,OACdC,UAAW,OACXC,OAAQ,sBACRC,kBAAmB,OACnBC,YAAa,OACbC,iBAAkB,OAClBC,MAAO,aACPC,WAAY,kBACZC,cAAe,uBAGnBC,kBAAmB,CACjBziH,MAAO,CACLykF,MAAO,OACPu9B,aAAc,OACdC,UAAW,OACXC,OAAQ,0BACRC,kBAAmB,OACnBC,YAAa,OACbC,iBAAkB,OAClBC,MAAO,aACPC,WAAY,kBACZC,cAAe,uBAGnBE,uBAAwB,CAGtB1iH,MAAO,CACLykF,MAAO,OACPu9B,aAAc,OACdC,UAAW,OACXC,OAAQ,0BACRC,kBAAmB,OACnBC,YAAa,OACbE,MAAO,aACPC,WAAY,kBACZC,cAAe,uBAGnBG,sBAAuB,CACrBr3R,MAAO,KACP4X,MAAO,MAET0/Q,uBAAwB,CACtBt3R,MAAO,KACP4X,MAAO,WAET66J,oBAAqB,yBACrB8kH,wBAAyB,wBACzBC,mBAAoB,CAClBrrP,OAAQ,aACRv0B,MAAO,MAETi+J,aAAc,CACZ2uF,OAAQ,SACRizB,MAAO,gBACPC,QAAS,QAEXC,kBAAmB,CACjBnzB,OAAQ,SACRizB,MAAO,iBAETG,kBAAmB,CACjBpzB,OAAQ,SACRizB,MAAO,gBACPC,QAAS,QAEXG,gBAAiB,4BACjBC,oBAAqB,gCACrBC,eAAgB,4BAChBC,iBAAkB,iBAClBC,oBAAqB,mBACrBr1E,MAAO,eACPs1E,QAAS,UACTC,WAAY,MACZC,YAAa,CACX7kD,MAAO,QACPz8K,MAAO,QACP90C,OAAQ,aAEVq2Q,OAAQ,CACNxD,MAAO,MACPyD,UAAW,OACXC,gBAAiB,QAEnBC,mBAAoB,CAClB9jH,MAAO,CACLyjF,KAAM,OACNsgC,QAAS,OACTC,OAAQ,OACRC,MAAO,OACPC,SAAU,OACVC,kBAAmB,OACnBC,kBAAmB,OACnBxC,OAAQ,KACRyC,aAAc,OACdC,kBAAmB,OACnBC,UAAW,SAGfC,IAAK,QACLC,uBAAwB,CACtBh+G,YAAa,eACbI,SAAU,QAEZ69G,aAAc,CACZ9S,OAAQ,OACR+S,kBAAmB,YACnB9S,kBAAmB,YACnB+S,eAAgB,sBAChBC,kBAAmB,kCACnBC,sBAAuB,MACvBC,oBAAqB,MACrBC,QAAS,uBAEXC,oBAAqB,CACnBC,aAAc,MACdl8R,MAAO,0CAETm8R,wBAAyB,CACvBC,UAAW,OACXC,WAAY,OAEdC,SAAU,CACRtlH,MAAO,CACLulH,KAAM,OACNC,YAAa,OACb1jC,UAAW,OACX2jC,YAAa,OAGjBC,iBAAkB,CAChBC,eAAgB,YAChBC,eAAgB,mBAChBC,cAAe,gBAEjBC,KAAM,CACJvkK,QAAS,OACTimG,SAAU,eACVm+D,eAAgB,YAChBC,eAAgB,WAChBlgK,KAAM,OACNmgK,cAAe,QAEjBE,aAAc,CACZC,UAAW,oBAEbC,iBAAkB,CAChBntD,OAAQ,CACNotD,UAAW,aACXC,aAAc,kBAEhBD,UAAW,OACXC,aAAc,QAEhBC,SAAU,CACRC,MAAO,MACPC,KAAM,OAERC,SAAU,CACR3U,OAAQ,OACR4U,MAAO,OACPC,gBAAiB,MACjBC,SAAU,OACVC,WAAY,eAEdC,oBAAqB,CACnB1hC,OAAQ,MACRC,YAAa,MACb0hC,UAAW,OAEbC,uBAAwB,CACtB5hC,OAAQ,SACRC,YAAa,SACb0hC,UAAW,UAEbE,gCAAiC,CAC/B7hC,OAAQ,iBACRC,YAAa,iBACb0hC,UAAW,kBAEbG,MAAO,CACLhnH,MAAO,CACLinH,eAAgB,MAChBC,aAAc,OACdC,eAAgB,SAGpBC,UAAW,CACTpnH,MAAO,CACL/d,KAAM,OACN03H,OAAQ,YACRpmD,KAAM,SAGVjzD,SAAU,MACV+mH,cAAe,KACfC,UAAW,CACTj2B,cAAe,cACfk2B,aAAc,cACdC,aAAc,uBAEhBC,aAAc,YACdC,WAAY,CACV1nH,MAAO,CAAC,UAAW,WAAY,eAAgB,eAAgB,eAAgB,SAAU,cAEzF,YAAa,aAEf2nH,yBAA0B,CACxB3nH,MAAO,CACL4nH,QAAS,qBACTvX,QAAS,uBAGbwX,mBAAoB,CAClB7nH,MAAO,CAAC,eAAgB,YAE1B8nH,mBAAoB,CAClB9nH,MAAO,CACLgiH,aAAc,OACd+F,oBAAqB,OACrBnG,OAAQ,OAGZoG,eAAgB,CACdC,cAAe,SACfC,aAAc,iBACdC,SAAU,iBACV13B,SAAU,oBGtShB,IACEpoF,IAAK,CAAC,EACNh/J,MAAO,CACL++Q,OAAQ,CACNC,SAAU,YACVv9R,MAAO,UACPomR,IAAK,UACLoX,eAAgB,UAChBC,KAAM,UACNt4O,OAAQ,gBAEVu4O,YAAa,MACbC,aAAc,CACZzoH,MAAO,CACL0oH,SAAU,OACVC,SAAU,OACVC,OAAQ,OACRC,gBAAiB,8BACjBhlB,OAAQ,qBACRilB,cAAe,8BAGnBC,mBAAoB,CAClBC,QAAS,YACTC,UAAW,eAEbC,4BAA6B,CAC3BF,QAAS,aAEXG,0BAA2B,CACzBH,QAAS,YACTI,YAAa,YACbC,SAAU,eAEZ/nH,QAAS,CACP92J,OAAQ,OACRk1L,IAAK,YACL4pF,OAAQ,YACRhrH,QAAS,UACTirH,OAAQ,sBACRC,KAAM,kBACNC,WAAY,QAEdC,aAAc,CACZl/Q,OAAQ,OACRk1L,IAAK,YACL4pF,OAAQ,6BACRC,OAAQ,sBACRC,KAAM,mBAERG,mBAAoB,uBACpBC,WAAY,uBACZC,iBAAkB,CAChBxB,SAAU,YACVv9R,MAAO,UACPs+R,YAAa,YACbb,KAAM,aC3DZ,IACElgH,IAAK,CAAC,EACNh/J,MAAO,CACLg3J,WAAY,aCChB,IACEgI,IAAK,CAAC,EACNh+C,QCNqB,CACrBy/J,uBAAwB,CAAC,CACvB5uM,QAAS,CACP6uM,qBAAsB,CACpBhzN,YAAa,4BACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,qBACL,CACDmG,KAAM,KACNnG,KAAM,aACL,CACDmG,KAAM,YACNnG,KAAM,cAERA,KAAM,wBAGVmQ,QAAS,GACR,CACDu+E,QAAS,CACP6uM,qBAAsB,CACpBhzN,YAAa,4BACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,qBACL,CACDmG,KAAM,KACNnG,KAAM,cAERA,KAAM,wBAGVmQ,QAAS,GACR,CACDu+E,QAAS,CACP6uM,qBAAsB,CACpBhzN,YAAa,4BACbv5D,OAAQ,CAAC,CACP7K,KAAM,KACNnG,KAAM,cAERA,KAAM,wBAGVmQ,QAAS,KDtCX0M,MAAO,CACL2gR,kBAAmB,CACjBhqH,MAAO,CAAC,UAAW,QAAS,aAE9BiqH,oBAAqB,qDACrBC,iBAAkB,CAChBx8L,SAAU,sBACVy8L,SAAU,sBACVC,SAAU,sBACVC,UAAW,uBACXC,UAAW,UEdjB,IACEjiH,IAAK,CAAC,EACNh/J,MAAO,CACLkhR,QAAS,MACTC,WAAY,MACZC,eAAgB,UAChBC,iBAAkB,UAClBC,aAAc,CACZn6E,MAAO,YACPs7C,OAAQ,YACRC,MAAO,YACPC,QAAS,YACT4+B,aAAc,iBACdC,YAAa,OACbC,UAAW,MACXC,kBAAmB,MACnB5lK,WAAY,MACZ11F,SAAU,QAEZu7P,eAAgB,CACdF,UAAW,eACXC,kBAAmB,eACnB5lK,WAAY,gBAEd8lK,gBAAiB,CACfz6E,MAAO,YACP4zD,SAAU,oBACV30O,SAAU,OACV6uI,QAAS,kBAEX4sH,cAAe,CACb5sH,QAAS,iBACTx6J,KAAM,UACN2rB,SAAU,QAEZ07P,iBAAkB,CAChB7sH,QAAS,iBACTx6J,KAAM,UACN2rB,SAAU,UCtChB,IACE44I,IAAK,CAAC,EACNh/J,MAAO,CACL+hR,SAAU,CACRC,KAAM,YACN/sH,QAAS,UACTC,UAAW,YACXqtF,UAAW,kBAEb0/B,UAAW,CACT11O,OAAQ,cACRtqD,MAAO,SCXb,IACE+8K,IAAK,CAAC,EACNh/J,MAAO,CACLkiR,YAAa,CACXC,OAAQ,UACRp6B,SAAU,UACVC,cAAe,iBCNrB,IACEhpF,IAAK,CAAC,EACNh/J,MAAO,CACLoiR,kBAAmB,CACjBz/E,QAAS,mBACTrvL,MAAO,iBACP+uQ,QAAS,kBAEXC,eAAgB,CACdC,aAAc,cACdjV,QAAS,eACTkV,WAAY,OACZC,iBAAkB,cAClBC,WAAY,aAEdC,iBAAkB,CAAC,ICfvB,IACE3jH,IAAK,CAAC,EACNh/J,MAAO,CACL4iR,iBAAkB,OAClBC,mBAAoB,cACpBC,cAAe,SACfC,gBAAiB,yBACjBC,WAAY,CACVrsH,MAAO,CACLssH,WAAY,OACZC,cAAe,2CACfC,cAAe,cAGnB9tH,QAAS,UACT+tH,kBAAmB,CACjBhhS,MAAO,eACPC,IAAK,eAELghS,gBAAiB,UAEnBC,mBAAoB,CAClB3sH,MAAO,CAAC,gBAAiB,kBAE3B4sH,gBAAiB,CACfC,SAAU,yBACVC,mBAAoB,gBAEtBC,eAAgB,YAChBC,mBAAoB,CAClBn7O,OAAQ,SACRo7O,cAAe,gBACfxhB,MAAO,QACPyhB,SAAU,QAEZC,OAAQ,UACRC,YAAa,CACX38P,QAAS,QACTygP,IAAK,WAEPmc,wBAAyB,CACvBC,kBAAmB,YACnBC,aAAc,aACd1pL,KAAM,UAER2pL,WAAY,CACVC,OAAQ,SACR9kS,MAAO,gBAET+kS,aAAc,MACdC,gBAAiB,CACfL,kBAAmB,mBACnBC,aAAc,aACd1pL,KAAM,SACN+pL,YAAa,eACbC,UAAW,gBAEbC,cAAe,CACb9tH,MAAO,CAAC,SAAU,4BAA6B,WAEjD+tH,iBAAkB,CAChBC,oBAAqB,eACrBC,oBAAqB,eACrBC,qBAAsB,gBAExBC,mBAAoB,UACpBC,gBAAiB,CACf3nH,YAAa,MACbqpF,OAAQ,SACRx5G,OAAQ,aACR+3I,mBAAoB,qBACpB98R,KAAM,SAER+8R,UAAW,OACXC,UAAW,YACXC,kBAAmB,CACjBC,QAAS,YACTthD,SAAU,qBAEZuhD,wBAAyB,CACvBC,0BAA2B,eAC3BC,sBAAuB,eACvBC,cAAe,kBClFrB,IACExmH,IAAK,CAAC,EACNh/J,MAAO,CACLylR,cAAe,CACb9uH,MAAO,CAAC,UAAW,WCJzB,IACEqI,IAAK,CAAC,EACNh/J,MAAO,CACL0lR,UAAW,MACXC,iBAAkB,CAChBhvH,MAAO,CACLivH,MAAO,OACPC,UAAW,MACXC,OAAQ,gBAGZC,SAAU,CACR7wH,UAAW,YACX8wH,SAAU,sBACV/wH,QAAS,UACTgxH,OAAQ,UACR5jS,IAAK,cACL6jS,IAAK,UACLC,iBAAkB,mBAClBC,YAAa,cACbC,WAAY,cACZC,UAAW,aAEbC,UAAW,QCMf,IACEvnH,IAAK,CAAC,EACNh+C,QClCqB,CACrBwlK,qBAAsB,CAAC,CACrB30M,QAAS,CACP40M,uBAAwB,CACtB/4N,YAAa,yCACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,WAERA,KAAM,kBAGVmQ,QAAS,GACR,CACDu+E,QAAS,CACP40M,uBAAwB,CACtB/4N,YAAa,yCACbv5D,OAAQ,GACRhR,KAAM,oBAGVmQ,QAAS,KDcX0M,MA/Be,CACf0mR,cAAe,CACbC,eAAgB,qBAChBC,mBAAoB,2BACpBC,kBAAmB,yBACnBC,0BAA2B,MAC3BC,cAAe,mBACfC,SAAU,YAEZC,gBAAiB,CACfN,eAAgB,qBAChBC,mBAAoB,2BACpBC,kBAAmB,yBACnBC,0BAA2B,MAC3BC,cAAe,oBAEjBG,WAAY,CACVC,cAAe,UAEjBC,UAAW,WACXC,gBAAiB,MACjBC,YAAa,MACbC,cAAe,CACbC,UAAW,cACXC,QAAS,cACTC,gBAAiB,qBE5BfC,GAAa,CACjB91M,QAAS,CACP+1M,eAAgB,CACdl6N,YAAa,mFACbv5D,OAAQ,GACRhR,KAAM,wBAGVmQ,QAAS,GCLX,IACE0rK,IAAK,CAAC,EACNh+C,QDKqB,CACrB6mK,kBAAmB,CAACF,IACpBG,oBAAqB,CAACH,IACtBI,kBAAmB,CAACJ,IACpBK,mBAAoB,CAACL,KCRrB3nR,MAAO,CAAC,GCNJioR,GAAc,CAClBC,wBAAyB,CACvBx6N,YAAa,kHACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,UACL,CACDmG,KAAM,OACNnG,KAAM,SAERA,KAAM,yDAERglS,mBAAoB,CAClBz6N,YAAa,+EACbv5D,OAAQ,GACRhR,KAAM,kBAERilS,iBAAkB,CAChB16N,YAAa,6EACbv5D,OAAQ,GACRhR,KAAM,uBAERklS,+BAAgC,CAC9B36N,YAAa,uDACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,WAERA,KAAM,qCAERmlS,yBAA0B,CACxB56N,YAAa,uEACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,UACL,CACDmG,KAAM,UACNnG,KAAM,yBAERA,KAAM,QAERolS,aAAc,CACZ76N,YAAa,iFACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,WAERA,KAAM,+BAERqlS,+BAAgC,CAC9B96N,YAAa,qEACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,WAERA,KAAM,2BAERslS,eAAgB,CACd/6N,YAAa,8EACbv5D,OAAQ,GACRhR,KAAM,+BAERulS,0BAA2B,CACzBh7N,YAAa,kJACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,UACL,CACDmG,KAAM,aACNnG,KAAM,2BAERA,KAAM,mCAERwlS,wBAAyB,CACvBj7N,YAAa,8DACbv5D,OAAQ,GACRhR,KAAM,gBAERylS,gBAAiB,CACfl7N,YAAa,uFACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,UACL,CACDmG,KAAM,aACNnG,KAAM,2BAERA,KAAM,kBAER0lS,wBAAyB,CACvBn7N,YAAa,yCACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,uBAERA,KAAM,0BAER2lS,iBAAkB,CAChBp7N,YAAa,sIACbv5D,OAAQ,GACRhR,KAAM,qDAERwmQ,WAAY,CACVj8L,YAAa,8BACbv5D,OAAQ,GACRhR,KAAM,qBAGG69H,GAAU,CACrB+nK,cAAe,CAAC,CACdl3M,QAASwhF,GAAa,CACpB21H,sBAAuB,CACrBt7N,YAAa,yFACbv5D,OAAQ,GACRhR,KAAM,2BAER8lS,aAAc,CACZv7N,YAAa,yDACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,iBAERA,KAAM,uBAER+lS,2BAA4B,CAC1Bx7N,YAAa,kEACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,qBACL,CACDmG,KAAM,YACNnG,KAAM,uBAERA,KAAM,QAERgmS,qBAAsB,CACpBz7N,YAAa,mGACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,UACL,CACDmG,KAAM,aACNnG,KAAM,2BAERA,KAAM,+BAEP8kS,IACH30R,QAAS,GACR,CACDu+E,QAASwhF,GAAa,CACpB41H,aAAc,CACZv7N,YAAa,yDACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,iBAERA,KAAM,6BAEP8kS,IACH30R,QAAS,KC5JP81R,GAAc,CAClBzyH,MAAO,CAAC,WAAY,UAAW,UAAW,YAAa,SAAU,SAAU,WAAY,SAAU,WAAY,eAEzG0yH,GAAY,CAChB1yH,MAAO,CAAC,WAAY,UAAW,UAAW,YAAa,WAAY,WAAY,UAAW,YAAa,SAAU,SAAU,WAAY,UAAW,UAAW,SAAU,WAAY,SAAU,WAAY,UAAW,UAAW,SAAU,WAAY,aAAc,YAAa,YAAa,WAAY,aAAc,WAAY,WAAY,UAAW,YAAa,WAAY,UAAW,YAAa,SAAU,WAAY,eA+Bna,GAAetD,GAAa,CAAC,EA7BZ,CACfi2H,OAAQ,CACN3yH,MAAO,CACL4yH,IAAK,YACLv7B,SAAU,WAGdw7B,kBAAmB,CACjB7yH,MAAO,CACL8yH,MAAO,YACPC,MAAO,yBACPC,OAAQ,4BAGZC,wBAAyB,CACvB9rR,KAAM,iBACN+rR,gBAAiB,YAEnBC,uBAAwB,CACtBv8B,SAAU,OACVsJ,SAAU,MACVgzB,gBAAiB,YAEnBE,UAAW,CACT1zF,IAAK,YACLpqL,IAAK,SAEP+9Q,MAAO,OAEiC,CACxCC,aAAc,MACdC,YAAa,cACbC,cAAe,cACff,eACAC,aACAe,cAAe,sBAAF,OAAwBhB,GAAYzyH,MAAMj4K,OAA1C,KACb2rS,YAAa,sBAAF,OAAwBhB,GAAU1yH,MAAMj4K,OAAxC,KACX4rS,iBAAkB,yCAClBC,cAAe,0BACfC,YAAa,wBACbC,mBAAoB,8CACpBC,iBAAkB,8CCiBpB,IACE1rH,IAAK,CAAC,EACNh+C,QAFa,GAGbhhH,MAAOqzJ,GAAa,CAAC,EAlDF,CACnBs3H,eAAgB,CACdh0H,MAAO,CAAC,UAAW,UAGF,CACnBi0H,gBAAiB,CACfj0H,MAAO,CAAC,QAAS,WAEnBk0H,cAAe,CACbl0H,MAAO,CAAC,QAAS,YAEnBm0H,aAAc,CACZC,cAAe,SACfC,kBAAmB,SACnB38Q,MAAO,cACP48Q,YAAa,uBAEfC,iBAAkB,CAChBv0H,MAAO,CACLw0H,MAAO,4BACP5M,QAAS,gCAGb6M,oBAAqB,CACnBC,cAAe,gBACf/d,QAAS,eACTge,WAAY,mEAEdC,yBAA0B,CACxBj4Q,MAAO,OACP+3Q,cAAe,gBACf/d,QAAS,gBAEXke,4BAA6B,CAC3B70H,MAAO,CAAC,aAEV80H,yBAA0B,2BAC1BC,0BAA2B,CACzB/0H,MAAO,CACLg1H,SAAU,OACVC,gBAAiB,OACjBC,aAAc,OACdC,iBAAkB,UC7DxB,CACEC,YAAa,CACXC,YAAa,MACbC,aAAc,MACdC,eAAgB,MAChBC,SAAU,MACVjwF,UAAW,MACXkwF,QAAS,eACTC,cAAe,UACfC,iBAAkB,WAEpBC,cAAe,CACbrjF,OAAQ,MACRzpB,SAAU,OAEZ+sG,uBAAwB,CACtBC,UAAW,OACXC,IAAK,eACLL,cAAe,UACfH,eAAgB,MAChBF,YAAa,MACbC,aAAc,QDhBG,CACnBU,kBAAmB,CACjB3N,SAAU,YACV4N,YAAa,WACbjjC,WAAY,mBACZrgQ,KAAM,QACNwqM,QAAS,WAEX+4F,wBAAyB,CACvBljC,WAAY,mBACZq1B,SAAU,cAqDiE8N,GAAW,CACtFC,yBAA0B,CACxBC,eAAgB,SAChBC,YAAa,OACbjG,SAAU,WACVkG,SAAU,aACVhsR,UAAW,oBACXisR,aAAc,OACdC,YAAa,wBAEfC,0BAA2B,CACzBC,YAAa,MACbC,gBAAiB,MACjBC,oBAAqB,MACrBC,mBAAoB,MACpBC,qBAAsB,MACtBC,gCAAiC,MACjCC,8BAA+B,MAC/BC,2BAA4B,cAC5BC,uBAAwB,eAE1BC,oBAAqB,CACnB/B,YAAa,MACbC,aAAc,MACdC,eAAgB,MAChBC,SAAU,MACVjwF,UAAW,MACXkwF,QAAS,gBAEX4B,aAAc,YACdC,eAAgB,CACdt3H,MAAO,CACLu3H,UAAW,OACXC,WAAY,sBAGhBC,kBAAmB,CACjBC,UAAW,2BACXC,cAAe,2BACfC,iBAAkB,UAEpBC,qBAAsB,YACtBC,qBAAsB,SACtBC,2BAA4B,CAC1BC,SAAU,uBACVC,YAAa,eAEfC,gBAAiB,CACfR,UAAW,4BACXC,cAAe,2BACfC,iBAAkB,UAEpBO,sBAAuB,CACrBC,QAAS,cACTplC,WAAY,mBACZqlC,OAAQ,mBACR/mB,aAAc,gBAEhBgnB,qBAAsB,CACpBtI,eAAgB,qBAChBC,mBAAoB,2BACpBC,kBAAmB,yBACnBG,SAAU,WACVF,0BAA2B,MAC3BC,cAAe,eAEjBmI,oBAAqB,CACnBC,OAAQ,SACRlC,YAAa,iBACbmC,WAAY,aACZC,4BAA6B,OAC7BC,QAAS,OACTC,YAAa,OACbruR,UAAW,oBACXsuR,SAAU,OACVC,mBAAoB,sBAEtBC,eAAgB,CACd/4H,MAAO,CACLg5H,gBAAiB,sDACjBC,kBAAmB,sDACnBC,kBAAmB,4CAGvBC,cAAe,OACfC,cAAe,CACb15F,IAAK,YACLphC,QAAS,WAEX+6H,6BAA8B,CAC5BC,KAAM,YACN7qS,KAAM,gBACNkoF,WAAY,sBACZ4iN,kBAAmB,SACnBC,QAAS,SACTC,kBAAmB,cACnBC,eAAgB,cAChBC,aAAc,cAEhBC,iBAAkB,CAChBjjN,WAAY,sBACZkjN,gBAAiB,QAEnBC,qBAAsB,CACpBnD,YAAa,MACbC,gBAAiB,MACjBpwH,YAAa,eAEfuzH,WAAY,OACZC,kBAAmB,YACnBC,0BAA2B,CACzBtjN,WAAY,sBACZ8/M,YAAa,wBAEfyD,eAAgB,CACdZ,KAAM,YACNd,OAAQ,SACRvqQ,KAAM,iBACNksQ,SAAU,cAEZC,UAAW,MACXC,aAAc,CACZr6H,MAAO,CACLw3H,WAAY,kBACZD,UAAW,SAGf+C,UAAW,CACTt6H,MAAO,CACLu6H,SAAU,eACVtlB,UAAW,gBACXulB,KAAM,SAGVC,iBAAkB,CAChB51J,SAAU,cACV65F,MAAO,kCACP/gC,OAAQ,kCACRsrD,MAAO,kBACPyxC,eAAgB,kBAElBC,gBAAiB,QACjBC,WAAY,MACZC,kBAAmB,CACjBC,kBAAmB,cACnBC,uBAAwB,cACxBzwQ,IAAK,eAEP0wQ,yBAA0B,CACxBrE,YAAa,MACbC,gBAAiB,MACjBpwH,YAAa,eAEfy0H,SAAU,QACVC,kBAAmB,CACjBvE,YAAa,MACbC,gBAAiB,MACjBC,oBAAqB,MACrBC,mBAAoB,MACpBC,qBAAsB,MACtBC,gCAAiC,MACjCC,8BAA+B,MAC/BC,2BAA4B,cAC5BC,uBAAwB,cACxBgE,WAAY,MACZC,uBAAwB,MACxBC,8CAA+C,SAC/CC,iCAAkC,MAClCC,kCAAmC,MACnCC,mBAAoB,MACpBC,kBAAmB,UACnBC,qBAAsB,UACtBC,uBAAwB,MACxBC,wBAAyB,MACzBC,gCAAiC,MACjCC,iCAAkC,MAClCC,0BAA2B,MAC3BC,oBAAqB,cACrBC,gBAAiB,MACjBC,kBAAmB,MACnBnB,uBAAwB,cACxBoB,wBAAyB,cACzBC,yBAA0B,cAC1BC,oBAAqB,MACrBC,qBAAsB,cACtBC,cAAe,cACfC,cAAe,eACfC,sCAAuC,cACvCC,oBAAqB,MACrBC,iCAAkC,cAClCC,YAAa,MACbC,eAAgB,MAChBC,wBAAyB,MACzBC,gBAAiB,MACjBC,sBAAuB,OAEzBC,uBAAwB,CACtBC,UAAW,cACXC,OAAQ,mBAEVC,mBAAoB,CAClBC,OAAQ,cACRv5R,KAAM,SAERw5R,oBAAqB,0BACrBC,oBAAqB,CACnBC,WAAY,WACZrgG,QAAS,UACTsgG,mBAAoB,uBAEtBC,qBAAsB,CACpBC,iBAAkB,8BAClB1N,mBAAoB,yCAEtB2N,kBAAmB,iBACnBC,aAAc,CACZC,kBAAmB,wBACnBC,cAAe,cACfC,UAAW,cACXC,gBAAiB,wBACjBC,aAAc,SACdC,iBAAkB,aAClBzJ,cAAe,gBACf0J,oBAAqB,uBAEvBC,uBAAwB,CACtBr+H,MAAO,CAAC,YAAa,WAAY,SAEnCs+H,oBAAqB,CACnBC,UAAW,MACXz6R,KAAM,SAER06R,wBAAyB,CACvBx+H,MAAO,CAAC,SAAU,YAAa,SAEjCy+H,sBAAuB,CACrBC,eAAgB,0BAChBC,gBAAiB,eACjBhB,iBAAkB,8BAClB1N,mBAAoB,2CAEtB2O,uBAAwB,CACtBC,UAAW,8BACXC,iBAAkB,uBAClBC,SAAU,2BACVC,aAAc,UAEhBC,gBAAiB,CACfhJ,YAAa,QACbiJ,eAAgB,QAChBC,UAAW,QAEbC,OAAQ,MACRC,SAAU,CACRh+I,QAAS,YACTid,QAAS,UACTktH,OAAQ,QAEV8T,cAAe,CACbt/H,MAAO,CAAC,aAAc,aAAc,YAAa,uBAAwB,0BAA2B,qBAAsB,sBAE5Hu/H,iBAAkB,CAChBC,aAAc,wBACdC,WAAY,uBAEdC,eAAgB,CACd1/H,MAAO,CAAC,SAAU,YAEpB2/H,gBAAiB,uBACjBC,qBAAsB,CACpBj4L,MAAO,wBACPk4L,eAAgB,OAElBC,gBAAiB,CACf7/E,MAAO,kBACP8/E,QAAS,OAEXC,mBAAoB,MACpBC,wBAAyB,CACvBzC,WAAY,WACZ/D,kBAAmB,wBACnByG,uBAAwB,OACxB/E,WAAY,OAEdgF,kBAAmB,CACjBC,OAAQ,OACRv6J,QAAS,qBACTyrI,aAAc,eACd+uB,eAAgB,sBAElBC,iBAAkB,CAChBrgF,MAAO,kBACPsgF,WAAY,OAEdC,iBAAkB,MAClBC,sBAAuB,mBACvBC,UAAW,OACXC,eAAgB,YAChBC,OAAQ,WACRC,iBAAkB,CAChBC,WAAY,cACZC,YAAa,eAEfC,UAAW,CACThhI,MAAO,CACLivH,MAAO,OACPgS,YAAa,QAGjBC,cAAe,CACb1I,OAAQ,SACRjC,SAAU,sBAEZ4K,WAAY,CACVnhI,MAAO,CAAC,SAAU,YAEpBohI,oBAAqB,CACnBzqB,QAAS,eACT0qB,8BAA+B,0EAC/BtC,SAAU,4BAEZuC,YAAa,CACXC,uBAAwB,0BACxB1V,WAAY,WACZ2Q,cAAe,eACfxpC,WAAY,mBACZwuC,cAAe,4BACfC,eAAgB,oBAChBC,gBAAiB,2BACjBC,OAAQ,MACR7E,wBAAyB,MACzBE,sBAAuB,MACvBH,eAAgB,MAChBD,YAAa,MACbG,gBAAiB,OAEnB6E,iBAAkB,CAChB5uC,WAAY,mBACZwuC,cAAe,4BACfC,eAAgB,oBAChBC,gBAAiB,+BACjBC,OAAQ,MACR7E,wBAAyB,MACzBE,sBAAuB,MACvBH,eAAgB,MAChBD,YAAa,MACbG,gBAAiB,OAEnB8E,0BAA2B,0BAC3BC,2BAA4B,CAC1BrxQ,QAAS,SACT4vQ,eAAgB,qBAChB91R,UAAW,sBAEbw3R,4BAA6B,kCAC7BC,eAAgB,CACd1wB,aAAc,eACd/kE,WAAY,QAEd01F,UAAW,CACTjiI,MAAO,CACLivH,MAAO,OAEPppB,UAAW,OACX2uB,MAAO,OACP5M,QAAS,SAGbsa,wBAAyB,CACvBvL,YAAa,MACbC,gBAAiB,MACjBz5F,QAAS,UACTsgG,mBAAoB,sBACpB0E,UAAW,OAEbC,eAAgB,CACdpiI,MAAO,CAAC,QAAS,YAEnBqiI,mBAAoB,CAClBriI,MAAO,CAAC,YAEVsiI,cAAe,QACfC,yBAA0B,CACxB5L,YAAa,MACb6L,iBAAkB,wBAClB/E,mBAAoB,iCAEtBgF,eAAgB,QAChBC,mBAAoB,OACpBC,eAAgB,CACdC,UAAW,0BACXC,UAAW,2BAEbC,mBAAoB,CAClBpE,eAAgB,iBAChBC,gBAAiB,cAEnBoE,mBAAoB,YACpBC,oBAAqB,CACnBhjI,MAAO,CACLivH,MAAO,OAEPgU,SAAU,qBACVjO,SAAU,uBAGdkO,uBAAwB,CACtBC,uBAAwB,aACxBC,eAAgB,0CAElBC,kCAAmC,gCACnCC,mBAAoB,wBACpBC,sBAAuB,6BEhe3B,IACEl7H,IAAK,CAAC,EACNh/J,MAAO,CACLm6R,UAAW,cCHf,IACEn7H,IAAK,CAAC,EACNh/J,MAAO,CACLo6R,cAAe,CACbC,SAAU,kBACVC,YAAa,UACbC,cAAe,UACfr5R,UAAW,UACXs5R,IAAK,WAEPC,gBAAiB,CACf9jI,MAAO,CAAC,UAAW,YAAa,UAAW,WAAY,YAAa,gBC0D1E,IACEqI,IAAK,CAAC,EACNh/J,MAAOqzJ,GAAa,CAAC,EA1CN,CACfqnI,OAAQ,CACN/jI,MAAO,CACLgkI,KAAM,OACNC,MAAO,UACPryD,MAAO,eACPsyD,UAAW,OACXC,UAAW,OACXC,YAAa,OACbC,SAAU,SAGdC,SAAU,CACRtkI,MAAO,CACLukI,MAAO,OACP/uC,QAAS,eACTgvC,SAAU,CACRC,IAAK,eACLC,MAAO,gBAETC,kBAAmB,CACjBF,IAAK,eACLC,MAAO,gBAETE,mBAAoB,CAClBH,IAAK,eACLC,MAAO,kBAIbG,sBAAuB,YACvBC,UAAW,CACT9kI,MAAO,CACL2B,IAAK,OACLsiI,MAAO,UACPc,SAAU,OACVC,OAAQ,UA3DF,CACVC,UAAW,CACTjlI,MAAO,CACL4hF,IAAK,kBAGTsjD,kBAAmB,CACjBllI,MAAO,CAAC,2BAA4B,0BAA2B,YAEjEmlI,WAAY,CACVnlI,MAAO,CACLolI,SAAU,gBACVC,SAAU,UAGdC,cAAe,CACbtlI,MAAO,CAAC,KAAM,cAEhBulI,eAAgB,CACdvlI,MAAO,CAAC,KAAM,cAEhBwlI,YAAa,mBC3BG,CAChBC,cAAe,gBACfC,kBAAmB,oBACnBC,gBAAiB,CACf3lI,MAAO,CACL4lI,UAAW,OACXC,OAAQ,KACRC,QAAS,eACTC,QAAS,eACTC,QAAS,eACTC,SAAU,gBACVC,OAAQ,UACRC,OAAQ,UACRC,QAAS,WACTC,QAAS,WACTC,KAAM,YAGVC,WAAY,CACVvmI,MAAO,CACLwoD,OAAQ,OACR+uE,UAAW,eACXx0C,YAAa,CACX99E,QAAS,YACT35J,GAAI,aAENk7R,eAAgB,CACdvhI,QAAS,YACT35K,MAAO,gBAETm7S,aAAc,CACZxhI,QAAS,YACTr8K,IAAK,YAEP89S,eAAgB,KAChBC,aAAc,gBACdC,WAAY,UACZC,UAAW,OACXC,UAAW,CACTx7R,GAAI,SACJy7R,KAAM,cAIZC,aAAc,CACZhnI,MAAO,CACLuzD,KAAM,OACN0zE,IAAK,OACLC,YAAa,OACbC,eAAgB,OAChBC,oBAAqB,UACrBC,uBAAwB,UACxBC,oBAAqB,kBACrBC,uBAAwB,kBACxBC,iBAAkB,CAChBl8R,GAAI,UACJkwF,SAAU,iBAEZisM,oBAAqB,CACnB1kB,MAAO,UACPvnL,SAAU,mBAEZksM,iBAAkB,CAChBp8R,GAAI,kBACJigP,OAAQ,iBAEVo8C,oBAAqB,CACnB5kB,MAAO,kBACPvnL,SAAU,qBAIhBosM,gBAAiB,CACf5nI,MAAO,CACL6nI,KAAM,OACNxiE,GAAI,aACJG,GAAI,2BACJS,GAAI,uCACJ6hE,GAAI,mDACJC,GAAI,+DACJC,GAAI,2EACJC,GAAI,uFACJC,GAAI,qGAGRC,aAAc,CACZnoI,MAAO,CAAC,SAAU,mBAAoB,YAAa,QAErDooI,WAAY,CACVpoI,MAAO,CACLqoI,OAAQ,sBAGZC,MAAO,CACLtoI,MAAO,CACLuoI,cAAe,CACbC,OAAQ,oBACR7kM,QAAS,mBAEX8kM,oBAAqB,CACnBD,OAAQ,oBACR7kM,QAAS,mBAEX+kM,uBAAwB,CACtBF,OAAQ,oBACR7kM,QAAS,mBAEXglM,cAAe,CACbC,QAAS,eACT/4P,SAAU,cAEZg5P,cAAe,CACbL,OAAQ,oBACR9tO,KAAM,mBAERouO,qBAAsB,CACpBN,OAAQ,oBACR9tO,KAAM,kBACNipC,QAAS,mBAEXolM,SAAU,CACRC,WAAY,gBACZC,oBAAqB,MACrB13S,KAAM,qBAER23S,0BAA2B,CACzB32F,OAAQ,eACRgjF,eAAgB,eAChBF,YAAa,gBAEf8T,oBAAqB,CACnB5K,UAAW,gBAEb6K,mBAAoB,CAClBC,UAAW,eACX92F,OAAQ,eACRgsF,UAAW,gBAEb+K,YAAa,CACX5pG,IAAK,kBACLn8L,QAAS,WAIfgmS,WAAY,CACVvpI,MAAO,CACL4lI,UAAW,OACX4D,SAAU,OACVC,cAAe,OACfC,oBAAqB,OACrBC,oBAAqB,OACrBC,gBAAiB,OACjBC,sBAAuB,OACvBC,yBAA0B,OAC1BC,0BAA2B,OAC3BC,0BAA2B,OAC3BC,WAAY,OACZC,uBAAwB,uBACxBC,kBAAmB,OACnBC,eAAgB,OAChBnoB,UAAW,OACXooB,sBAAuB,OACvBC,sBAAuB,OACvBC,mBAAoB,SACpBC,SAAU,OACVC,sBAAuB,OACvBC,eAAgB,OAChBC,oBAAqB,OACrBC,QAAS,OACTC,gBAAiB,OACjBC,mBAAoB,OACpBC,aAAc,OACdC,cAAe,OACfC,sBAAuB,SAG3BC,WAAY,CACVlrI,MAAO,CACL+tD,KAAM,OACNo9E,aAAc,CACZ3C,OAAQ,oBACR9tO,KAAM,mBAER0wO,oBAAqB,CACnB5C,OAAQ,oBACR9tO,KAAM,kBACNipC,QAAS,mBAEX0nM,cAAe,CACbC,KAAM,oBACNC,QAAS,qBAEXC,wBAAyB,CACvBhD,OAAQ,oBACRiD,QAAS,kBACT9nM,QAAS,mBAEX+nM,iBAAkB,CAChBlD,OAAQ,oBACR9tO,KAAM,kBACNipC,QAAS,mBAEXgoM,aAAc,CACZ/C,QAAS,eACTluO,KAAM,kBACN8tO,OAAQ,qBAEVoD,aAAc,CACZC,KAAM,eACN/7C,OAAQ,MACRg8C,KAAM,MACNC,YAAa,OACbC,IAAK,iBCpNK,CAChBC,gBAAiB,CACfjsI,MAAO,CACL4lI,UAAW,OACXh0D,MAAO,gBACPs0D,OAAQ,UACRC,OAAQ,UACRC,QAAS,WACTC,QAAS,WACTC,KAAM,UAGV4F,cAAe,CACblsI,MAAO,CACLmsI,SAAU,gBACVC,YAAa,oBAGjBC,WAAY,CACVrsI,MAAO,CACLu3H,UAAW,eACXx0C,YAAa,CACX99E,QAAS,YACT35J,GAAI,aAENk7R,eAAgB,CACdvhI,QAAS,YACT35K,MAAO,gBAETm7S,aAAc,CACZxhI,QAAS,YACTr8K,IAAK,YAEP89S,eAAgB,KAChBC,aAAc,gBACdC,WAAY,UACZC,UAAW,OACXC,UAAW,CACTx7R,GAAI,SACJy7R,KAAM,cAIZuF,YAAa,CACXtsI,MAAO,CACL6nI,KAAM,OACNxiE,GAAI,aACJG,GAAI,2BACJS,GAAI,uCACJ6hE,GAAI,mDACJC,GAAI,+DACJC,GAAI,2EACJC,GAAI,uFACJC,GAAI,qGAGRqE,cAAe,oBACfC,aAAc,CACZlhS,GAAI,aACJmhS,YAAa,iBAEfC,mBAAoB,CAClB1sI,MAAO,CACL2sI,SAAU,gBACVC,KAAM,qBAGVC,gBAAiB,CACf5sR,QAAS,KACT6sR,SAAU,eAEZC,aAAc,eACdC,WAAY,CACVhtI,MAAO,CACLqoI,OAAQ,kBAGZ4E,kBAAmB,CACjBjtI,MAAO,CAAC,WAAY,gBAEtBktI,iBAAkB,CAChBltI,MAAO,CACLinI,IAAK,OACLkG,MAAO,CACL7hS,GAAI,aACJmhS,YAAa,uBAInBW,MAAO,CACLptI,MAAO,CACLuoI,cAAe,CACbC,OAAQ,gBACR7kM,QAAS,mBAEX8kM,oBAAqB,CACnBD,OAAQ,gBACR7kM,QAAS,mBAEX+kM,uBAAwB,CACtBF,OAAQ,gBACR7kM,QAAS,mBAEXglM,cAAe,CACbC,QAAS,eACT/4P,SAAU,cAEZg5P,cAAe,CACbL,OAAQ,gBACR9tO,KAAM,mBAERouO,qBAAsB,CACpBN,OAAQ,gBACR9tO,KAAM,kBACNipC,QAAS,mBAEXolM,SAAU,CACRC,WAAY,gBACZC,oBAAqB,MACrB13S,KAAM,qBAER23S,0BAA2B,CACzB32F,OAAQ,eACRgjF,eAAgB,eAChBF,YAAa,gBAEf8T,oBAAqB,CACnB5K,UAAW,gBAEb6K,mBAAoB,CAClBC,UAAW,eACX92F,OAAQ,eACRgsF,UAAW,gBAEb+K,YAAa,CACX5pG,IAAK,kBACLn8L,QAAS,WAIf8pS,WAAY,CACVrtI,MAAO,CACL4lI,UAAW,OACX4D,SAAU,OACVC,cAAe,OACfC,oBAAqB,OACrBC,oBAAqB,OACrBC,gBAAiB,OACjBC,sBAAuB,OACvBC,yBAA0B,OAC1BC,0BAA2B,OAC3BC,0BAA2B,OAC3BC,WAAY,OACZC,uBAAwB,2BACxBC,kBAAmB,OACnBC,eAAgB,OAChBnoB,UAAW,OACXooB,sBAAuB,OACvBC,sBAAuB,OACvBC,mBAAoB,SACpBC,SAAU,OACVC,sBAAuB,OACvBC,eAAgB,OAChBC,oBAAqB,OACrBC,QAAS,OACTC,gBAAiB,OACjBC,mBAAoB,OACpBC,aAAc,OACdC,cAAe,OACfsC,uBAAwB,OACxBrC,sBAAuB,SAG3BsC,WAAY,CACVvtI,MAAO,CACLwtI,KAAM,OACNrC,aAAc,CACZ3C,OAAQ,qBACRiF,UAAW,MACXrkB,YAAa,mBAEfgiB,oBAAqB,CACnB5C,OAAQ,qBACRiF,UAAW,MACX/yO,KAAM,kBACNipC,QAAS,mBAEX0nM,cAAe,CACbC,KAAM,qBACNC,QAAS,iBAEXC,wBAAyB,CACvBhD,OAAQ,qBACRiD,QAAS,kBACT9nM,QAAS,mBAEX+nM,iBAAkB,CAChBlD,OAAQ,qBACR9tO,KAAM,kBACNipC,QAAS,mBAEXgoM,aAAc,CACZ/C,QAAS,eACTluO,KAAM,kBACN8tO,OAAQ,sBAEVoD,aAAc,CACZC,KAAM,eACN/7C,OAAQ,MACRg8C,KAAM,MACNC,YAAa,OACb2B,aAAc,iBCnNJ,CAChBC,gBAAiB,kBACjBC,cAAe,gBACfC,WAAY,aACZC,YAAa,cACbC,cAAe,gBACfC,aAAc,eACdC,mBAAoB,qBACpBC,gBAAiB,kBACjBC,aAAc,eACdC,kBAAmB,oBACnBC,WAAY,CACVruI,MAAO,CACL+tD,KAAM,OACNs6E,OAAQ,gBACRiG,gBAAiB,qBAGrBC,gBAAiB,oBACjBC,iBAAkB,gCAClBC,cAAe,CACbzuI,MAAO,CACL0uI,UAAW,OACXC,QAAS,iBAGbC,cAAe,CACb5uI,MAAO,CACLuoI,cAAe,gBACfsG,sBAAuB,gBACvBnG,uBAAwB,gBACxBC,cAAe,CACbC,QAAS,eACT/4P,SAAU,aACVi/P,UAAW,gBAEbjG,cAAe,CACbL,OAAQ,gBACRpf,YAAa,mBAEf0f,qBAAsB,CACpBN,OAAQ,gBACR9tO,KAAM,kBACNsxO,IAAK,SAEPjD,SAAU,CACRC,WAAY,eACZC,oBAAqB,MACrB13S,KAAM,qBAER23S,0BAA2B,CACzB32F,OAAQ,eACRgjF,eAAgB,eAChBF,YAAa,gBAEf8T,oBAAqB,CACnB5K,UAAW,gBAEb6K,mBAAoB,CAClBC,UAAW,eACX92F,OAAQ,eACRgsF,UAAW,gBAEbwQ,YAAa,OACbC,cAAe,wBACfC,YAAa,CACXrG,QAAS,eACTluO,KAAM,kBACNw0O,kBAAmB,gBAErB/D,aAAc,CACZ3C,OAAQ,qBACRiF,UAAW,MACXrkB,YAAa,mBAEfgiB,oBAAqB,CACnB5C,OAAQ,qBACRiF,UAAW,MACX/yO,KAAM,kBACNsxO,IAAK,SAEPX,cAAe,CACbC,KAAM,qBACNC,QAAS,iBAEXC,wBAAyB,CACvBhD,OAAQ,qBACRiD,QAAS,kBACTO,IAAK,SAEPN,iBAAkB,CAChBlD,OAAQ,qBACR9tO,KAAM,kBACNsxO,IAAK,SAEPL,aAAc,CACZwD,SAAU,eACVz0O,KAAM,kBACN8tO,OAAQ,qBACR4G,mBAAoB,gBAEtBxD,aAAc,CACZC,KAAM,eACNwD,YAAa,iBAEfC,cAAe,OACfC,gBAAiB,QACjBC,YAAa,QACbC,WAAY,OACZC,WAAY,CACVlH,OAAQ,gBACRmH,OAAQ,mBAEVC,KAAM,QAGVC,iBAAkB,mBAClBC,MAAO,qBACPC,WAAY,CACV/vI,MAAO,CACL4lI,UAAW,OACX4D,SAAU,OACVC,cAAe,OACfC,oBAAqB,OACrBC,oBAAqB,OACrBC,gBAAiB,OACjBC,sBAAuB,OACvBC,yBAA0B,OAC1BC,0BAA2B,OAC3BC,0BAA2B,OAC3BG,kBAAmB,OACnB6F,2BAA4B,OAC5B5F,eAAgB,OAChBnoB,UAAW,OACXooB,sBAAuB,OACvBC,sBAAuB,OACvBC,mBAAoB,SACpBC,SAAU,OACVC,sBAAuB,OACvBC,eAAgB,OAChBC,oBAAqB,OACrBC,QAAS,OACTC,gBAAiB,OACjBC,mBAAoB,OACpBC,aAAc,OACdC,cAAe,OACfsC,uBAAwB,OACxBrC,sBAAuB,OACvBgF,UAAW,OACXC,WAAY,OACZC,sBAAuB,OACvBP,KAAM,MACNQ,aAAc,OACdC,gBAAiB,SAGrBC,WAAY,cHrFuC7vI,GAlElC,MAkE2D,CAC1E8vI,kBAAmB,CACjBp+G,QAAS,WAEXq+G,cAAe,CACbxwI,MAAO,CAAC,SAAU,mBAAoB,YAAa,QAErDywI,QAAS,CACPzwI,MAAO,CACL0wI,SAAU,SACVC,WAAY,uBACZrpS,MAAO,eAGXspS,QAAS,MACTC,YAAa,CACX7wI,MAAO,CACL8wI,QAAS,CACPC,UAAW,yBACXC,YAAa,mBACb//P,QAAS,eAEXggQ,MAAO,CACLphQ,SAAU,oBACVqhQ,GAAI,iBAIVC,gBAAiB,CACfC,iBAAkB,MAClBC,cAAe,MACfC,gBAAiB,MACjBxiC,gBAAiB,SACjByiC,oBAAqB,UAEvBC,sBAAuB,CACrBxxI,MAAO,CACLyxI,wBAAyB,OACzBC,wBAAyB,OACzBC,qBAAsB,gBACtBC,2BAA4B,SAGhCC,oBAAqB,CACnB7xI,MAAO,CACLkgF,GAAI,eACJC,GAAI,eACJC,GAAI,iBAGR0xD,qBAAsB,CACpB9xI,MAAO,CACLkgF,GAAI,oBACJC,GAAI,gBACJC,GAAI,kBAGR2xD,uBAAwB,CACtB/xI,MAAO,CACLkgF,GAAI,kBACJC,GAAI,kBACJC,GAAI,oBAGR4xD,kBAAmB,CACjB9xD,GAAI,aACJC,GAAI,aACJC,GAAI,cAEN6xD,aAAc,CACZjyI,MAAO,CACLkgF,GAAI,QACJC,GAAI,QACJC,GAAI,UAGR8xD,WAAY,SIqBVC,GAAqB,CACzBC,gBAAiB,OACjB/oS,MAAO,eACPw+J,KAAM,0BAUFwqI,GAAqB,CACzBhpS,MAAO,oBACPw+J,KAAM,0BAGFyqI,GAAsB,CAC1B/4S,OAAQ,wBACRg5S,SAAU,2BAUZ,IACElqI,IAAK,CAAC,EACNh/J,MAAOqzJ,GAAa,CAAC,EAvMR,CACb81I,qBAAsB,CACpBxyI,MAAO,CAAC,aAAc,WAAY,cAEpCyyI,qBAAsB,MACtBC,oBAAqB,CACnBzjT,OAAQ,oBACR8E,IAAK,MACL4+S,aAAc,MACdC,OAAQ,yBAEVC,mBAAoB,CAClBjqT,IAAK,oBACLkqT,GAAI,kBAENC,mBAAoB,CAClBC,YAAa,oBACb/1P,SAAU,wDAEZg2P,mBAAoB,CAClBhkT,OAAQ,oBACRikT,SAAU,gCACVN,OAAQ,yBAEVO,8BAA+B,CAC7Br8D,OAAQ,uBACRj6C,QAAS,UACTruM,OAAQ,WAEV4kT,kBAAmB,WACnBC,qBAAsB,CACpBxzR,OAAQ,kCAEVyzR,0BAA2B,CACzBV,OAAQ,wBACRjgT,KAAM,QAER4gT,sBAAuB,CACrBvzI,MAAO,CACLwzI,KAAM,qBACNhlO,KAAM,qBACNl9E,MAAO,sBACPs+N,OAAQ,uBACRd,KAAM,wBAIC,CACX2kF,0BAA2B,CACzB9gT,KAAM,OACNL,SAAU,mBACVsG,KAAM,kCACNinM,KAAM,aAER6zG,0BAA2B,CACzB/gT,KAAM,YACNL,SAAU,mBACVsG,KAAM,kCACNinM,KAAM,aAER8zG,0BAA2B,CACzBz4S,MAAO,OACP5I,SAAU,mBACVsG,KAAM,kCACNinM,KAAM,aAER+zG,0BAA2B,CACzB14S,MAAO,OACP5I,SAAU,mBACVuP,QAAS,OACTjJ,KAAM,kCACNinM,KAAM,aAERg0G,uBAAwB,CACtBC,aAAc,iCACd3mE,SAAU,6BACVhiO,OAAQ,2BACR00L,KAAM,aAERk0G,uBAAwB,CACtBD,aAAc,iCACd3mE,SAAU,6BACVhiO,OAAQ,2BACR00L,KAAM,aAERm0G,uBAAwB,CACtBF,aAAc,iCACd3mE,SAAU,6BACVhiO,OAAQ,2BACR00L,KAAM,aAERo0G,uBAAwB,CACtBH,aAAc,iCACd3mE,SAAU,6BACVhiO,OAAQ,2BACR00L,KAAM,aAERq0G,uBAAwB,yBACxBC,oBAAqB,SACrBC,yBAA0B,CACxBzhT,KAAM,OACNoM,QAAS,OACTvS,KAAM,mBACNqzM,KAAM,aAERw0G,yBAA0B,CACxBn5S,MAAO,OACP6D,QAAS,OACTvS,KAAM,mBACNqzM,KAAM,aAERy0G,oBAAqB,CACnB3hT,KAAM,OACNiG,KAAM,gCACNinM,KAAM,aAER00G,oBAAqB,CACnB5hT,KAAM,OACNiG,KAAM,gCACNinM,KAAM,aAER20G,oBAAqB,CACnBt5S,MAAO,OACPtC,KAAM,gCACNinM,KAAM,aAER40G,2BAA4B,CAC1B9hT,KAAM,OACNnG,KAAM,oBAERkoT,2BAA4B,CAC1Bx5S,MAAO,OACP1O,KAAM,oBAERmoT,sBAAuB,CACrBhiT,KAAM,OACNL,SAAU,mBACVsiT,QAAS,OACT/yS,QAAS,OACTjJ,KAAM,kCACNi8S,WAAY,2BACZh1G,KAAM,aAERi1G,sBAAuB,CACrBniT,KAAM,YACNL,SAAU,mBACVsiT,QAAS,OACT/yS,QAAS,OACTjJ,KAAM,kCACNi8S,WAAY,2BACZh1G,KAAM,aAERk1G,sBAAuB,CACrB75S,MAAO,OACP5I,SAAU,mBACVsiT,QAAS,OACT/yS,QAAS,OACTjJ,KAAM,kCACNi8S,WAAY,2BACZh1G,KAAM,aAERm1G,iBAAkB,UAClBC,iBAAkB,CAChBzoT,KAAM,iBACNuP,YAAa,wBAyBF,CACbm5S,8BAA+B,4BAC/BC,wBAAyB,sBACzBC,6BAA8B,2BAC9BC,+BAAgC,6BAChCC,0BAA2B,wBAC3BC,uBAAwB,sBAIsB,CAC5CjD,uBACAH,sBACAqD,mBA9BuB,CACzBnsS,MAAO,oBACPw+J,KAAM,0BA6BJ4tI,mBA3BuB,CACzBpsS,MAAO,oBACPw+J,KAAM,0BA0BJwqI,sBACAqD,mBArBuBrD,GAsBvBsD,iBAAkB,CAChB31I,MAAO,CACLkgF,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,GAAI,uBAGRs1D,kBAAmBl5I,GAAa,CAC9B01I,gBAAiB,QAChBE,GAAqBH,IACxB0D,gBAAiB,0CACjBC,wBAAyB,CACvBh9E,OAAQ,CACNj5B,KAAM,iBAERltM,KAAM,OACNgK,QAAS,OACTo5S,QAAS,YACTh/O,YAAa,eACb8oI,KAAM,eACNm2G,WAAY,eACZC,SAAU,eACVC,QAAS,gBAEXC,sBAAuB,CACrBr9E,OAAQ,CACNs9E,SAAU,QAEZA,SAAU,WACVC,SAAU,OACVC,SAAU,OACVtpH,KAAM,UC8GZ,IACE3kB,IC1TiB3L,GAAa,CAAC,EArClB,CACbspH,UAAW,CACTuwB,aAAc,MACdx/O,YAAa,yFACbv5D,OAAQ,GACRhR,KAAM,QAERgqT,UAAW,CACTD,aAAc,MACdx/O,YAAa,6CACbv5D,OAAQ,GACRhR,KAAM,QAERmQ,QAAS,CACP45S,aAAc,MACdx/O,YAAa,4BACbv5D,OAAQ,GACRhR,KAAM,SAGM,CACdiqT,cAAe,CACbF,aAAc,OACdx/O,YAAa,kCACbv5D,OAAQ,GACRhR,KAAM,QAER4+B,KAAM,CACJmrR,aAAc,OACdx/O,YAAa,iCACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,UAERA,KAAM,SAG2C,CACnD+mM,SAAU,CACRx8H,YAAa,yBACbv5D,OAAQ,GACRhR,KAAM,aAERg6K,YAAa,CACXzvG,YAAa,0BACbv5D,OAAQ,GACRhR,KAAM,QAER+E,KAAM,CACJwlE,YAAa,4CACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,kBACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,SACNnG,KAAM,gBAERA,KAAM,SAER2kB,QAAS,CACP4lD,YAAa,kHACbv5D,OAAQ,GACRhR,KAAM,OAERkqT,SAAU,CACR3/O,YAAa,wBACbv5D,OAAQ,GACRhR,KAAM,QAERkkB,YAAa,CACXqmD,YAAa,uDACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,kBACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,SACNnG,KAAM,gBAERA,KAAM,QAERmqT,WAAY,CACV5/O,YAAa,iEACbv5D,OAAQ,CAAC,CACP7K,KAAM,aACNnG,KAAM,QACL,CACDmG,KAAM,cACNnG,KAAM,eACL,CACDmG,KAAM,oBACNnG,KAAM,qBAERA,KAAM,iBAER0iB,SAAU,CACR6nD,YAAa,6BACbv5D,OAAQ,GACRhR,KAAM,QAER6jB,WAAY,CACV0mD,YAAa,wCACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,QACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,SACNnG,KAAM,gBAERA,KAAM,QAERoqT,eAAgB,CACd7/O,YAAa,iCACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,OACNnG,KAAM,SAERA,KAAM,wBAERqqT,iBAAkB,CAChB9/O,YAAa,mCACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,eACL,CACDmG,KAAM,OACNnG,KAAM,SAERA,KAAM,wBAERsqT,+BAAgC,CAC9B//O,YAAa,iEACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,SAERA,KAAM,QAERuqT,iCAAkC,CAChChgP,YAAa,yEACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,gBAERA,KAAM,QAERgpN,QAAS,CACPz+I,YAAa,kEACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,QACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,SACNnG,KAAM,gBAERA,KAAM,SAERwqT,iBAAkB,CAChBjgP,YAAa,0CACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,SAERA,KAAM,oBAERyqT,cAAe,CACblgP,YAAa,qEACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,SAERA,KAAM,eAERonN,QAAS,CACP78I,YAAa,6CACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,cAERA,KAAM,eAER0qT,SAAU,CACRngP,YAAa,yCACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,QACL,CACDmG,KAAM,cACNnG,KAAM,aACL,CACDmG,KAAM,SACNnG,KAAM,gBAERA,KAAM,cAERipN,aAAc,CACZ1+I,YAAa,mDACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,QACL,CACDmG,KAAM,QACNnG,KAAM,QACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,SACNnG,KAAM,gBAERA,KAAM,QAER2qT,kCAAmC,CACjCpgP,YAAa,qDACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,QACNnG,KAAM,SAERA,KAAM,kBAER4qT,oCAAqC,CACnCrgP,YAAa,uDACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,eACL,CACDmG,KAAM,QACNnG,KAAM,SAERA,KAAM,kBAER6qT,qBAAsB,CACpBtgP,YAAa,+BACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,SAERA,KAAM,kBAERikB,oBAAqB,CACnBsmD,YAAa,2FACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,SACNnG,KAAM,gBAERA,KAAM,QAERknN,sBAAuB,CACrB38I,YAAa,mDACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,SAERA,KAAM,cAER8qT,4BAA6B,CAC3BvgP,YAAa,8CACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,QACNnG,KAAM,SAERA,KAAM,gBAER+qT,8BAA+B,CAC7BxgP,YAAa,8CACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,eACL,CACDmG,KAAM,QACNnG,KAAM,SAERA,KAAM,gBAERgrT,yBAA0B,CACxBzgP,YAAa,2DACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,SAERA,KAAM,QAERirT,2BAA4B,CAC1B1gP,YAAa,mEACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,gBAERA,KAAM,QAERkrT,QAAS,CACP3gP,YAAa,6FACbv5D,OAAQ,GACRhR,KAAM,WAERmrT,SAAU,CACR5gP,YAAa,wEACbv5D,OAAQ,GACRhR,KAAM,QAERijB,qBAAsB,CACpBsnD,YAAa,mCACbv5D,OAAQ,GACRhR,KAAM,QAERorT,OAAQ,CACN7gP,YAAa,wDACbv5D,OAAQ,GACRhR,KAAM,QAERqrT,eAAgB,CACd9gP,YAAa,kCACbv5D,OAAQ,GACRhR,KAAM,QAERsrT,UAAW,CACT/gP,YAAa,4BACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,cAERA,KAAM,QAERurT,4BAA6B,CAC3BhhP,YAAa,kCACbv5D,OAAQ,GACRhR,KAAM,QAERi6R,gBAAiB,CACf1vN,YAAa,uEACbv5D,OAAQ,GACRhR,KAAM,OAERwrT,mBAAoB,CAClBjhP,YAAa,gDACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,UAERA,KAAM,QAERqkB,gBAAiB,CACfkmD,YAAa,kFACbv5D,OAAQ,CAAC,CACP7K,KAAM,KACNnG,KAAM,0BAERA,KAAM,QAERyrT,eAAgB,CACdlhP,YAAa,uCACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,QACL,CACDmG,KAAM,OACNnG,KAAM,SAERA,KAAM,QAER0rT,WAAY,CACVnhP,YAAa,gDACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,OACL,CACDmG,KAAM,aACNnG,KAAM,QACL,CACDmG,KAAM,YACNnG,KAAM,SAERA,KAAM,QAERw4I,UAAW,CACTjuE,YAAa,iCACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,cACL,CACDmuO,YAAY,EACZhoO,KAAM,SACNnG,KAAM,iBAERqlQ,OAAQ,CAAC,eAAgB,YAAa,eACtCrlQ,KAAM,QAER2rT,QAAS,CACPphP,YAAa,8DACbv5D,OAAQ,GACRhR,KAAM,iBAER4rT,gBAAiB,CACfrhP,YAAa,qBACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,SAERA,KAAM,UDlER69H,QEnWqB,CACrBguL,6BAA8B,CAAC,CAC7Bn9N,QAAS,CACPo9N,oBAAqB,CACnBvhP,YAAa,sDACbv5D,OAAQ,CAAC,CACP7K,KAAM,cACNnG,KAAM,kBAERA,KAAM,cAGVmQ,QAAS,IAEX47S,gBAAiB,CAAC,CAChBr9N,QAAS,CACPs9N,YAAa,CACXzhP,YAAa,6BACbv5D,OAAQ,CAAC,CACP7K,KAAM,aACNnG,KAAM,kBACL,CACDmG,KAAM,oBACNnG,KAAM,cAERA,KAAM,6BAERisT,kBAAmB,CACjB1hP,YAAa,+BACbv5D,OAAQ,CAAC,CACP7K,KAAM,aACNnG,KAAM,kBACL,CACDmG,KAAM,cACNnG,KAAM,mBAERA,KAAM,8BAGVmQ,QAAS,IAEX+7S,sBAAuB,CAAC,CACtBx9N,QAAS,CACPy9N,cAAe,CACb5hP,YAAa,2CACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,SAERA,KAAM,cAERosT,gBAAiB,CACf7hP,YAAa,iEACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,SAERA,KAAM,SAER8gN,OAAQ,CACNv2I,YAAa,8DACbv5D,OAAQ,GACRhR,KAAM,QAER+E,KAAM,CACJwlE,YAAa,kEACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,KACNnG,KAAM,QACL,CACDmG,KAAM,OACNnG,KAAM,WACL,CACDmG,KAAM,QACNnG,KAAM,QACL,CACDmG,KAAM,WACNnG,KAAM,QACL,CACDmG,KAAM,eACNnG,KAAM,gBACL,CACDmG,KAAM,uBACNnG,KAAM,gBACL,CACDmG,KAAM,QACNnG,KAAM,gBACL,CACDmG,KAAM,WACNnG,KAAM,QACL,CACDmG,KAAM,aACNnG,KAAM,mCAERA,KAAM,sCAERqsT,SAAU,CACR9hP,YAAa,+CACbv5D,OAAQ,GACRhR,KAAM,OAERsG,OAAQ,CACNikE,YAAa,kEACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,OACNnG,KAAM,WACL,CACDmG,KAAM,QACNnG,KAAM,QACL,CACDmG,KAAM,WACNnG,KAAM,QACL,CACDmG,KAAM,eACNnG,KAAM,gBACL,CACDmG,KAAM,uBACNnG,KAAM,gBACL,CACDmG,KAAM,QACNnG,KAAM,gBACL,CACDmG,KAAM,WACNnG,KAAM,QACL,CACDmG,KAAM,aACNnG,KAAM,mCAERA,KAAM,wCAERssT,YAAa,CACX/hP,YAAa,oEACbv5D,OAAQ,GACRhR,KAAM,mFAERusT,cAAe,CACbhiP,YAAa,4BACbv5D,OAAQ,GACRhR,KAAM,WAERwsT,iBAAkB,CAChBjiP,YAAa,8BACbv5D,OAAQ,GACRhR,KAAM,6BAERysT,6BAA8B,CAC5BliP,YAAa,yCACbv5D,OAAQ,GACRhR,KAAM,qCAER0sT,WAAY,CACVniP,YAAa,oCACbv5D,OAAQ,GACRhR,KAAM,mBAER2sT,iBAAkB,CAChBpiP,YAAa,+EACbv5D,OAAQ,CAAC,CACP7K,KAAM,MACNnG,KAAM,mBAERA,KAAM,sBAER4sT,UAAW,CACTriP,YAAa,uCACbv5D,OAAQ,GACRhR,KAAM,QAER6sT,WAAY,CACVtiP,YAAa,8EACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,QACL,CACDmG,KAAM,QACNnG,KAAM,SAERA,KAAM,SAGVmQ,QAAS,KF0KX0M,MAtRYqzJ,GAAa,CAAC,EAvEjB,CACT48I,QAAS,CACPznQ,OAAQ,YACR86J,aAAc,qBACd4sG,OAAQ,kBAEVC,kBAAmB,CACjB7wT,MAAO,OACPumB,SAAU,OACV4C,SAAU,OACV4kC,OAAQ,uBACR5rD,MAAO,OACPmW,MAAO,QACPsJ,UAAW,2BAEbkvS,cAAe,qBAEN,CACTC,QAAS,CACP7nQ,OAAQ,YACR86J,aAAc,qBACd4sG,OAAQ,kBAEVI,mBAAoB,CAClBxoS,QAAS,MACTxoB,MAAO,OACPumB,SAAU,OACV4C,SAAU,OACV4kC,OAAQ,uBACR5rD,MAAO,OACPmW,MAAO,QACP0pC,WAAY,gBACZivQ,WAAY,OACZ1hS,EAAG,OACHC,EAAG,QAEL0hS,cAAe,CACb75I,MAAO,CACL85I,OAAQ,oBACRC,QAAS,wBAIJ,CACTC,QAAS,CACPnoQ,OAAQ,YACR86J,aAAc,qBACd4sG,OAAQ,kBAEVU,mBAAoB,CAClB9oS,QAAS,MACTxoB,MAAO,OACP8mB,qBAAsB,OACtBD,aAAc,OACdsC,SAAU,OACV4kC,OAAQ,uBACR5rD,MAAO,OACPmW,MAAO,QACP0pC,WAAY,gBACZivQ,WAAY,OACZ1hS,EAAG,OACHC,EAAG,QAEL+hS,cAAe,CACbl6I,MAAO,CACL85I,OAAQ,oBACRC,QAAS,qBACTI,QAAS,wBAI4B,CACzCC,kBAAmB,2BACnBC,gBAAiB,2BACjBC,qBAAsB,8BACtBC,kBAAmB,WACnBC,kBAAmB,CACjBpvS,QAAS,aACTosC,MAAO,aAETijQ,cAAe,yBACfC,WAAY,CACVtvS,QAAS,aACT+xL,QAAS,OACTx0M,MAAO,OACPiuQ,SAAU,OACV+jD,YAAa,OACbC,aAAc,aACdrtB,aAAc,wBAEhBstB,WAAY,OACZC,SAAU,CACRjpQ,OAAQ,YACR86J,aAAc,sBACd4sG,OAAQ,kBAEVwB,UAAW,CACTxuG,WAAY,OACZyuG,WAAY,OACZ5xB,YAAa,aACbvjC,UAAW,OACXo1D,iBAAkB,OAClBC,aAAc,OACd/uG,UAAW,WACXK,WAAY,OACZj9K,OAAQ,OACRzd,SAAU,OACVo6L,QAAS,OACT1hL,UAAW,MACXkiL,UAAW,QACXyuG,QAAS,OACTxyT,MAAO,OAETyyT,aAAc,CACZtiF,OAAQ,CACNxtB,UAAW,OACXt9H,UAAW,QAEbs9H,UAAW,eACXiB,WAAY,OACZ8uG,WAAY,OACZ/tG,OAAQ,aACRb,MAAO,aACPo5C,UAAW,OACXo1D,iBAAkB,OAClBC,aAAc,OACd3rR,OAAQ,eACR28K,QAAS,OACTp6L,SAAU,OACV46L,UAAW,QACXP,UAAW,WACX3hL,UAAW,OACXgiL,WAAY,OACZ8uG,gBAAiB,eACjBC,WAAY,aACZC,OAAQ,YACR7uG,aAAc,sBACd3+H,UAAW,gBAEbytO,SAAU,QACVC,eAAgB,CACdlxT,KAAM,qBACNknB,GAAI,qBACJxC,SAAU,eACV1N,IAAK,eACL1W,MAAO,eACPgZ,KAAM,gBACNnb,MAAO,gBAETgzT,cAAe,CACbC,YAAa,OACblsS,cAAe,YACfmsS,aAAc,WACd1gC,OAAQ,0BAEV2gC,UAAW,CACThvG,UAAW,sBACXC,QAAS,sBACTzB,UAAW,eACXlgM,QAAS,2BACTkC,OAAQ,0BAEVyuS,iBAAkB,CAChB/7I,MAAO,CACLg8I,OAAQ,aACRC,SAAU,kBACVluF,KAAM,SAGVmuF,iBAAkB,CAChBl8I,MAAO,CACLm8I,KAAM,cACNC,OAAQ,YACRC,MAAO,SAGXC,eAAgB,CACdt8I,MAAO,CACLg8I,OAAQ,sBACRC,SAAU,2BACVluF,KAAM,SAGVwuF,oBAAqB,eACrBC,oBAAqB,CACnBx8I,MAAO,CACLg8I,OAAQ,sBACRC,SAAU,2BACVluF,KAAM,SAGV0uF,cAAe,CACb3jF,OAAQ,CACNxtB,UAAW,OACXt9H,UAAW,QAEbs9H,UAAW,eACXiB,WAAY,OACZ8uG,WAAY,OACZ/tG,OAAQ,aACRb,MAAO,aACPo5C,UAAW,OACXo1D,iBAAkB,OAClBC,aAAc,OACd3rR,OAAQ,eACR28K,QAAS,OACTp6L,SAAU,OACV46L,UAAW,QACXP,UAAW,WACX3hL,UAAW,OACXgiL,WAAY,OACZ+uG,WAAY,aACZvtO,UAAW,gBAEb0uO,OAAQ,CACNtxS,QAAS,aACTkC,OAAQ,YACRxJ,KAAM,QACNwnM,UAAW,eACX9kC,YAAa,eACbqlC,gBAAiB,eACjBN,iBAAkB,eAClBQ,SAAU,eACV4wG,oBAAqB,eACrB1vG,QAAS,QAEX2vG,WAAY,CACV/wG,gBAAiB,eACjBN,iBAAkB,eAClBD,UAAW,eACX9gN,KAAM,qBACNknB,GAAI,qBACJ80J,YAAa,eACb6lC,kBAAmB,OACnBH,QAAS,eACTD,gBAAiB,qBACjBG,KAAM,cACN9/M,KAAM,eACN6/M,UAAW,WACXn8J,WAAY,eAGd6sQ,aAAc,aACdC,aAAc,aACdC,gBAAiB,CACfn0T,IAAK,OACLkC,MAAO,OACPm+P,MAAO,cAET+zD,WAAY,CACVh9I,MAAO,CAAC,WAAY,OAAQ,yBAA0B,YAExDi9I,aAAc,CACZj9I,MAAO,CACLuzD,KAAM,OACN4oF,KAAM,cAGVe,aAAc,CACZl9I,MAAO,CACL4lF,OAAQ,gBACRu3D,IAAK,SACLC,gBAAiB,OACjB91B,UAAW,kBAGf+1B,YAAa,CACXhsD,cAAe,OACfk2B,aAAc,OACdC,aAAc,OACd81B,iBAAkB,eAClBC,oBAAqB,gBAEvBC,cAAe,CACbx9I,MAAO,CACLy9I,KAAM,cACNlqF,KAAM,SAGVmqF,eAAgB,CACdjvT,KAAM,OACN9F,MAAO,OACP2iN,UAAW,eACX9kC,YAAa,eACb+kC,iBAAkB,eAClB/gN,KAAM,OACNknB,GAAI,eACJ5mB,MAAO,OACPokB,SAAU,eACVM,aAAc,eACdC,qBAAsB,eACtBjO,IAAK,OACLP,MAAO,QACPyqM,QAAS,eACT3yM,IAAK,QACLwqB,UAAW,eACXpS,QAAS,cACTwsS,UAAW,OACXx1S,EAAG,OACH+P,EAAG,OACHC,EAAG,OACHwyB,WAAY,iCACZK,gBAAiB,gBAEnB4yQ,wBAAyB,CACvBz1S,EAAG,MACH+P,EAAG,OACHC,EAAG,QAEL0lS,qBAAsB,CACpB79I,MAAO,CACLyjF,KAAM,OACNq6D,OAAQ,SAGZC,wBAAyB,CACvB/9I,MAAO,CACL/wJ,MAAO,MACPgzC,KAAM,QAGV+7P,sBAAuB,CACrBxzT,KAAM,qBACNknB,GAAI,qBACJxC,SAAU,eACV1N,IAAK,eACL1W,MAAO,eACPgZ,KAAM,gBACNnb,MAAO,gBAETs1T,qBAAsB,CACpBpyG,gBAAiB,OACjBN,iBAAkB,MAClB/gN,KAAM,aACNknB,GAAI,qBACJu6L,gBAAiB,qBACjBG,KAAM,cACND,UAAW,YAEb+xG,QAAS,CACPC,QAAS,OACTC,SAAU,OACV/kT,OAAQ,OACRk2B,OAAQ,kBG1VZ,IACE84I,IAAK,CAAC,EACNh+C,QCNqB,CAErBg0L,gBAAiB,CAAC,CAChBnjO,QAAS,CACPojO,WAAY,CACVvnP,YAAa,uFACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,aACL,CACDmG,KAAM,cACNnG,KAAM,OACL,CACDmG,KAAM,eACNnG,KAAM,WAERA,KAAM,SAGVmQ,QAAS,GACR,CACDu+E,QAAS,CACPojO,WAAY,CACVvnP,YAAa,uFACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,aACL,CACDmG,KAAM,cACNnG,KAAM,QAERA,KAAM,SAGVmQ,QAAS,IAEX4hT,UAAW,CAAC,CACVrjO,QAAS,CACPojO,WAAY,CACVvnP,YAAa,6FACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,aACL,CACDmG,KAAM,cACNnG,KAAM,OACL,CACDmG,KAAM,eACNnG,KAAM,WAERA,KAAM,SAGVmQ,QAAS,KD9CX0M,MAAO,CAAC,GEHV,IACEg/J,IAAK,CAAC,EACNh+C,QCNqB,CAErBm0L,UAAW,CAAC,CACVtjO,QAAS,CACPujO,eAAgB,CACd1nP,YAAa,uBACbv5D,OAAQ,CAAC,CACP7K,KAAM,aAENnG,KAAM,QAORA,KAAM,OAERkyT,UAAW,CACT3nP,YAAa,2BACbv5D,OAAQ,CAAC,CACP7K,KAAM,aAENnG,KAAM,OACL,CACDmG,KAAM,MAENnG,KAAM,QAGRA,KAAM,gBAGVmQ,QAAS,KD1BX0M,MAAO,CAAC,GEHV,IACEg/J,IAAK,CAAC,EACNh+C,QCNqB,CAErBs0L,UAAW,CAAC,CACVzjO,QAAS,CACP0jO,0BAA2B,CACzB7nP,YAAa,uDACbv5D,OAAQ,CAAC,CACP7K,KAAM,aAGNnG,KAAM,QAKRA,KAAM,SAGVmQ,QAAS,KDXX0M,MAAO,CAAC,GEHV,IACEg/J,ICLiB,CACjBntF,QAAS,CACPnkB,YAAa,iEACbv5D,OAAQ,GACRhR,KAAM,eDER6c,MAAO,CACLw1S,WAAY,CACVliT,QAAS,MACTu+E,QAAS,eELf,IACEmtF,ICLiB,CACjBy2I,OAAQ,CACN/nP,YAAa,uFACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,SACL,CACDmG,KAAM,UACNnG,KAAM,SAERA,KAAM,QAERuyT,eAAgB,CACdhoP,YAAa,mFACbv5D,OAAQ,CAAC,CACP7K,KAAM,cACNnG,KAAM,UAERA,KAAM,QAERwyT,UAAW,CACTjoP,YAAa,kCACbv5D,OAAQ,CAAC,CACP7K,KAAM,UACNnG,KAAM,QACL,CACDmG,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,YACNnG,KAAM,UAERA,KAAM,SAERyyT,kBAAmB,CACjBloP,YAAa,gEACbv5D,OAAQ,GACRhR,KAAM,kBAER0yT,gBAAiB,CACfnoP,YAAa,qFACbv5D,OAAQ,CAAC,CACP7K,KAAM,cACNnG,KAAM,yBAERA,KAAM,aAER2yT,WAAY,CACVpoP,YAAa,sEACbv5D,OAAQ,GACRhR,KAAM,SAER4yT,wBAAyB,CACvBroP,YAAa,gEACb47J,UAAU,EACVn1N,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,cAERqlQ,OAAQ,CAAC,kBAAmB,0BAA2B,oBACvDrlQ,KAAM,mBAER6yT,gBAAiB,CACftoP,YAAa,yDACb47J,UAAU,EACVn1N,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,cAERA,KAAM,SD/DR6c,MAAO,CACLi2S,gBAAiB,CACft/I,MAAO,CACLxxF,KAAM,OACNw6L,UAAW,UAGfu2C,gBAAiB,CACfv/I,MAAO,CACLgkH,OAAQ,OACRitB,MAAO,OACPuO,UAAW,YACXC,QAAS,OACTC,UAAW,OACXC,gBAAiB,OACjBtzC,UAAW,OACXuzC,QAAS,OACTC,QAAS,OACTj4B,QAAS,WEpBjB,IACEv/G,ICLiB,CACjBj5J,SAAU,CACR2nD,YAAa,6CACbv5D,OAAQ,CAAC,CACPy4P,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,OACNnG,KAAM,cAERA,KAAM,eAERszT,aAAc,CACZ/oP,YAAa,0CACbv5D,OAAQ,CAAC,CACPm9N,YAAY,EACZhoO,KAAM,cACNnG,KAAM,gBAERA,KAAM,aAERmlQ,iBAAkB,CAChBl7B,MAAO,CAAC,0BACR1/J,YAAa,0DACbv5D,OAAQ,GACRhR,KAAM,aAERuzT,UAAW,CACTtpF,MAAO,CAAC,iBACR1/J,YAAa,4CACbv5D,OAAQ,CAAC,CACPy4P,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,OACNnG,KAAM,cAERA,KAAM,UAERwzT,kBAAmB,CACjBjpP,YAAa,+CACbv5D,OAAQ,GACRq0P,OAAQ,CAAC,UAAW,oBAAqB,uBACzCrlQ,KAAM,UAERyzT,wBAAyB,CACvBxpF,MAAO,CAAC,gCAAiC,mCACzC1/J,YAAa,uDACbv5D,OAAQ,GACRq0P,OAAQ,CAAC,gBAAiB,0BAA2B,6BACrDrlQ,KAAM,UAER0zT,kBAAmB,CACjBzpF,MAAO,CAAC,4BAA6B,oBAAqB,uBAC1D1/J,YAAa,6CACbv5D,OAAQ,GAERq0P,OAAQ,CAAC,UAAW,mBAAoB,sBACxCrlQ,KAAM,WDlDR6c,MAAO,CACLwkE,UAAW,SEHf,IACEw6F,ICLiB,CACjB83I,QAAS,CACPppP,YAAa,qFACbv5D,OAAQ,CAAC,CACP7K,KAAM,WACNnG,KAAM,sBACL,CACDmG,KAAM,SACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,SAERA,KAAM,mBAER4zT,aAAc,CACZ3pF,MAAO,CAAC,6BACR1/J,YAAa,4EACbv5D,OAAQ,CAAC,CACP7K,KAAM,WACNnG,KAAM,sBACL,CACDmG,KAAM,SACNnG,KAAM,cACL,CACDmG,KAAM,QACNnG,KAAM,OACL,CACDmuO,YAAY,EACZhoO,KAAM,WACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,SAERA,KAAM,mBAER0pQ,WAAY,CACVn/L,YAAa,0DACbv5D,OAAQ,CAAC,CACP7K,KAAM,WACNnG,KAAM,sBACL,CACDmG,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,SAERA,KAAM,uBAER6zT,kBAAmB,CACjBtpP,YAAa,4EACbv5D,OAAQ,CAAC,CACP7K,KAAM,WACNnG,KAAM,sBACL,CACDmG,KAAM,OACNnG,KAAM,mBACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,SAERA,KAAM,4BAER8zT,eAAgB,CACdvpP,YAAa,6DACbv5D,OAAQ,CAAC,CACP7K,KAAM,WACNnG,KAAM,sBACL,CACDmG,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,SAERA,KAAM,gBAER+zT,eAAgB,CACdxpP,YAAa,6DACbv5D,OAAQ,CAAC,CACP7K,KAAM,WACNnG,KAAM,sBACL,CACDmG,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,SAERA,KAAM,gBDjGR6c,MAAO,CAELm3S,mBAAoB,eEHxB,IACEn4I,ICNiB,CACjBo4I,gBAAiB,CACf1pP,YAAa,wDACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,eACL,CACDmG,KAAM,MACNnG,KAAM,UAERA,KAAM,iBAERk0T,gBAAiB,CACf3pP,YAAa,wDACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,eACL,CACDmG,KAAM,MACNnG,KAAM,SACL,CACDmG,KAAM,QACNnG,KAAM,UAERA,KAAM,SDjBR69H,QEPqB,CACrBs2L,kBAAmB,CAAC,CAClBzlO,QAAS,CACP0lO,gBAAiB,CACf7pP,YAAa,oDACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,WAERA,KAAM,SAGVmQ,QAAS,GACR,CACDu+E,QAAS,CACP0lO,gBAAiB,CACf7pP,YAAa,oDACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,gBAERA,KAAM,SAGVmQ,QAAS,KFhBX0M,MAAO,CACLw3S,YAAa,CACX7gJ,MAAO,CACL8gJ,WAAY,EACZC,MAAO,MGPf,IACE14I,ICNiB,CACjB24I,gBAAiB,CACfjqP,YAAa,sDACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,SACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,cAERy0T,UAAW,CACTlqP,YAAa,yDACbv5D,OAAQ,CAAC,CACP7K,KAAM,YACNnG,KAAM,SACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,wBDlBR69H,QEPqB,CACrB62L,sBAAuB,CAAC,CACtBhmO,QAAS,CACPimO,kBAAmB,CACjBpqP,YAAa,8BACbv5D,OAAQ,CAAC,CACP7K,KAAM,MACNnG,KAAM,aACL,CACDmG,KAAM,MACNnG,KAAM,QAERA,KAAM,cAER40T,WAAY,CACVrqP,YAAa,uBACbv5D,OAAQ,CAAC,CACP7K,KAAM,MACNnG,KAAM,aACL,CACDmG,KAAM,MACNnG,KAAM,QAERA,KAAM,wBAGVmQ,QAAS,IAEX0kT,0BAA2B,CAAC,CAC1BnmO,QAAS,CACPomO,uBAAwB,CACtBvqP,YAAa,uBACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,MACNnG,KAAM,QAERA,KAAM,cAER+0T,gBAAiB,CACfxqP,YAAa,gBACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,QACL,CACDmG,KAAM,MACNnG,KAAM,QAERA,KAAM,wBAGVmQ,QAAS,KF7CX0M,MAAO,CACLm4S,WAAY,CACVC,aAAc,wBAIhBC,aAAc,CACZC,QAAS,UACTC,OAAQ,UACRC,kBAAmB,WAErBC,oBAAqB,CACnBhyD,OAAQ,SACRizB,MAAO,gBACPg/B,WAAY,aGlBlB,IACE15I,ICLiB,CACjB92K,KAAM,CACJklO,MAAO,CAAC,gBACR1/J,YAAa,2CACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,QACL,CACDmG,KAAM,OACNnG,KAAM,SACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,SAERw1T,aAAc,CACZjrP,YAAa,6DACbv5D,OAAQ,CAAC,CACP7K,KAAM,kBACNnG,KAAM,cACL,CACDmG,KAAM,kBACNnG,KAAM,cACL,CACDmG,KAAM,YACNnG,KAAM,OACL,CACDmG,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,mBAERy1T,kBAAmB,CACjBlrP,YAAa,4EACbv5D,OAAQ,CAAC,CACP7K,KAAM,kBACNnG,KAAM,sBACL,CACDmG,KAAM,OACNnG,KAAM,mBACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,aAER01T,gBAAiB,CACfnrP,YAAa,wCACbv5D,OAAQ,CAAC,CACP7K,KAAM,kBACNnG,KAAM,cACL,CACDmG,KAAM,kBACNnG,KAAM,cACL,CACDmG,KAAM,YACNnG,KAAM,OACL,CACDmG,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,eAER21T,oBAAqB,CACnBprP,YAAa,mCACbv5D,OAAQ,CAAC,CACP7K,KAAM,kBACNnG,KAAM,cACL,CACDmG,KAAM,kBACNnG,KAAM,cACL,CACDmG,KAAM,YACNnG,KAAM,OACL,CACDmG,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,QAER41T,oBAAqB,CACnBrrP,YAAa,mCACbv5D,OAAQ,CAAC,CACP7K,KAAM,kBACNnG,KAAM,cACL,CACDmG,KAAM,kBACNnG,KAAM,cACL,CACDmG,KAAM,YACNnG,KAAM,OACL,CACDmG,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,OAER2zT,QAAS,CACPppP,YAAa,2CACbv5D,OAAQ,CAAC,CACP7K,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,mBAER4zT,aAAc,CACZ3pF,MAAO,CAAC,wBACR1/J,YAAa,wDACbv5D,OAAQ,CAAC,CACP7K,KAAM,MACNnG,KAAM,cACL,CACDmG,KAAM,QACNnG,KAAM,OACL,CACDmuO,YAAY,EACZhoO,KAAM,WACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,mBAER61T,YAAa,CACXtrP,YAAa,+BACbv5D,OAAQ,CAAC,CACPy4P,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,YAER81T,SAAU,CACRvrP,YAAa,+FACbv5D,OAAQ,CAAC,CACP7K,KAAM,SACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,iBAER+1T,aAAc,CACZxrP,YAAa,6DACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,mBACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,aAERg2T,kBAAmB,CACjB/rF,MAAO,CAAC,2BACR1/J,YAAa,0BACbv5D,OAAQ,CAAC,CACPy4P,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,kBAER0pQ,WAAY,CACVz/B,MAAO,CAAC,sBACR1/J,YAAa,kCACbv5D,OAAQ,CAAC,CACP7K,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,eAER8zT,eAAgB,CACd7pF,MAAO,CAAC,0BACR1/J,YAAa,6BACbv5D,OAAQ,CAAC,CACP7K,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,QAER+zT,eAAgB,CACd9pF,MAAO,CAAC,0BACR1/J,YAAa,6BACbv5D,OAAQ,CAAC,CACP7K,KAAM,MACNnG,KAAM,cACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,OAERi2T,aAAc,CACZ1rP,YAAa,wEACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,mBACL,CACDmG,KAAM,YACNnG,KAAM,QACL,CACDmuO,YAAY,EACZhoO,KAAM,UACNnG,KAAM,cAERA,KAAM,yBAERk2T,eAAgB,CACd3rP,YAAa,sFACbv5D,OAAQ,CAAC,CACP7K,KAAM,OACNnG,KAAM,mBACL,CACDypQ,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,yBAERm2T,wBAAyB,CACvBlsF,MAAO,CAAC,gCAAiC,mCACzC1/J,YAAa,iDACbv5D,OAAQ,GACRq0P,OAAQ,CAAC,iBAAkB,0BAA2B,6BACtDrlQ,KAAM,kBAERo2T,iBAAkB,CAChB7rP,YAAa,sDACbv5D,OAAQ,CAAC,CACPm9N,YAAY,EACZhoO,KAAM,OACNnG,KAAM,oBAERqlQ,OAAQ,CAAC,UAAW,mBAAoB,sBACxCrlQ,KAAM,oBAERq2T,WAAY,CACV9rP,YAAa,6DACbv5D,OAAQ,CAAC,CACP7K,KAAM,QACNnG,KAAM,QACL,CACDmG,KAAM,UACNnG,KAAM,gBACL,CACDmG,KAAM,cACNnG,KAAM,gBACL,CACDmG,KAAM,UACNnG,KAAM,iBAERA,KAAM,sBAERs2T,oBAAqB,CACnB/rP,YAAa,gCACbv5D,OAAQ,CAAC,CACPy4P,YAAY,EACZt7B,YAAY,EACZhoO,KAAM,KACNnG,KAAM,cAERA,KAAM,0BDrTR6c,MAAO,CACL05S,MAAO,UACPC,WAAY,CACV13G,UAAW,OACXiB,WAAY,OACZ02G,eAAgB,OAChB54Q,YAAa,OACb64Q,MAAO,sBACP/3S,OAAQ,wBAEVg4S,gBAAiB,CACf9pT,OAAQ,OACRyK,KAAM,sBACNs/S,SAAU,eAEZC,oBAAqB,CACnBC,aAAc,uBAEhBC,eAAgB,CACdj4S,GAAI,MACJ83S,SAAU,cACVzwT,KAAM,OACN0G,OAAQ,OACR2zL,KAAM,QAERw2H,eAAgB,oCAChBC,sBAAuB,CACrBC,sBAAuB,MACvBC,wBAAyB,OAE3BC,UAAW,CACT1S,GAAI,OACJjoD,MAAO,cAET46D,kBAAmB,eACnBC,eAAgB,CACdj9I,SAAU,OACVk9I,SAAU,OACVC,iBAAkB,MAClBv9I,YAAa,MACbw9I,YAAa,MACbv9I,KAAM,yBACNw1D,mBAAoB,MACpBgoF,aAAc,MAEhBC,mBAAoB,CAClBt9I,SAAU,OACVk9I,SAAU,OACVC,iBAAkB,MAClBv9I,YAAa,MACbw9I,YAAa,MACbv9I,KAAM,yBACNw1D,mBAAoB,OAEtBkoF,mBAAoB,CAClBv9I,SAAU,OACVk9I,SAAU,OACVC,iBAAkB,MAClBv9I,YAAa,MACbw9I,YAAa,MACbv9I,KAAM,0BAER29I,sBAAuB,CACrBx9I,SAAU,OACVJ,YAAa,MACbC,KAAM,0BAER49I,YAAa,MACbC,iBAAkB,CAChBt1S,MAAO,OACPu1S,QAAS,uBAEXC,mBAAoB,CAClBzkJ,MAAO,CACL0kJ,WAAY,aACZ1B,WAAY,eAGhB0B,WAAY,CACVxhT,MAAO,UEpFN,SAASyhT,GAAa5pS,EAAtB,EAEJkvM,EAASx3B,GAAS,IAFgB,KACnCjmM,GACmB,EACnB,MAAMgM,EAAS,CAAC,EACVykD,EAAWliC,EAAO67N,UAAUpqP,GAAMi8H,IAAIm8L,UAAU3nQ,SAEtD,IAAK,IAAItzD,EAAI,EAAGA,EAAIszD,EAASl1D,OAAQ4B,IACnCsxO,GAAWziO,EAAQykD,EAAStzD,GAAI8oM,EAASw3B,EAAStgO,GAGpD,OAAO6O,CACR,CCVD,SAASihE,GAAQ5mE,GACf,OAAO,QAAC,KACNF,GADK,SAEDE,EAAGF,EAFF,CAGR,CAEM,MAAMkyT,GAAoBprP,GAAQ8zJ,IAC5Bu3F,GAAqBrrP,IAAQ7+C,GAAKA,EAAE5mB,aCN1C,SAAS+wT,GAAchqS,EAAQ4rC,GACpC,OAAO+1G,GAAa,CAClB9jK,KAAM+tD,EAAQ9mC,OAAO7uB,KAAI,QAAC,KACxBxE,GADuB,SAEnBuuB,EAAOm9M,WAAW1rO,GAAMA,IAFL,KAGxBm6D,EACJ,CAGM,SAASq+P,GAAe7mH,EAAxB,EAGJxhM,GAAS,IAH6B,OACvCoe,EADuC,QAEvC6/N,GACU,EACV,MAAMpiP,EAAS,CAAC,EAEhB,IAAK,IAAI7O,EAAI,EAAGA,EAAIixP,EAAQ7yP,OAAQ4B,IAAK,CACvC,MAAM,OACJmZ,EADI,MAEJxX,EAFI,KAGJqH,GACEioP,EAAQjxP,GAEZ,GAAImZ,EAAO4wN,OAAQ,CACjB,MAAMuxF,EAAetoT,GAAW,GAAKrR,EAAM4W,WAAavY,EACxDsxO,GAAWziO,EAAQ+0N,GAAgB56N,IAAO,IAAMgyT,GAAa5pS,EAAQjY,EAAOovN,SAAU4yF,IAAoBn+P,IAAW,CAEnHqgC,GAAIk+N,GAAY30F,GAAQ20F,IAAa30F,GAAQ20F,EAAS55T,QAAU45T,EAAS55T,MAAMgrB,GAAG2uS,KAAkBz5I,GAAM05I,EAAShiT,OAASgiT,EAAShiT,MAAM,KAAOyjD,EAAQr7D,MAAM4W,WAAaquN,GAAQ20F,EAAShiT,QAAUgiT,EAAShiT,MAAMoT,GAAGqwC,EAAQr7D,QAClOq7F,KAAMw3G,EAAS28B,iBAAiB,sBAAuB,CAACiqF,GAAchqS,EAAQ4rC,UAEjF,CACF,CAED,OAAOnuD,CACR,CChCM,SAAS2sT,GAAT,GAEJ,IAF8B,OAC/Bh6S,GACC,EACD,OAAOA,EAAOuoN,MACf,CAGM,SAAS0xF,GAAejnH,EAAxB,EAGJxhM,GAAS,IAH6B,OACvCoe,EADuC,QAEvC6/N,GACU,EACV,MAAMpiP,EAAS,CAAC,EACV6sT,EAAWzqE,EAAQ9vO,OAAOq6S,IAEhC,IAAK,IAAIx7T,EAAI,EAAGA,EAAI07T,EAASt9T,OAAQ4B,IAAK,CACxC,MAAM,OACJwhB,EADI,MAEJ7f,EAFI,KAGJqH,GACE0yT,EAAS17T,GACPs7T,EAAetoT,GAAW,GAAKrR,EAAM4W,WAAavY,EACxDsxO,GAAWziO,EAAQ+0N,GAAgB56N,IAAO,IAAMgyT,GAAa5pS,EAAQ5P,EAAO+mN,SAAU4yF,IAAoBn+P,IAAW,CAEnHqgC,GAAIi5G,GAAeswB,GAAQtwB,IAAgBz0B,GAAMy0B,EAAY30M,QAAU25T,IAAiBhlH,EAAY30M,MAAM,IAAMq7D,EAAQr7D,MAAMgrB,GAAG2pL,EAAY30M,MAAM,IACnJq7F,KAAMw3G,EAAS28B,iBAAiB,sBAAuB,CAACiqF,GAAchqS,EAAQ4rC,UAEjF,CAED,OAAOnuD,CACR,CC5BM,SAAS8sT,GAAT,GAEJ,IAF6B,MAC9BrtE,GACC,EACD,OAAOA,EAAMvkB,MACd,CACM,SAAS6xF,GAAmBpnH,EAAUpjL,EAAQ4rC,EAAS6+P,EAAaP,GACzE,MAAM,OACJplS,EADI,MAEJv0B,GACEq7D,EACE/tD,EAAO,IAAItH,MAAMuuB,EAAO93B,QAE9B,IAAK,IAAIyyB,EAAI,EAAGA,EAAIqF,EAAO93B,OAAQyyB,IAAK,CACtC,MAAM,KACJ7nB,EADI,KAEJnG,EAFI,SAGJ++N,GACE1rM,EAAOrF,GACX5hB,EAAK4hB,GAAKkiJ,GAAa,CACrB/pK,KAAM46N,GAAgB56N,EAAKghO,SAAL,eAAsBn5M,KAC5ChuB,KAAMopP,GAAU76N,EAAQvuB,IACvB++N,EAASmI,OAAS,CACnBnI,SAAUA,EAAS2G,UACjB,KACL,CAED,OCvBK,SAAyB/zB,EAAU+B,EAASupB,EAAWg8F,GAC5D,MAAMC,EAAeD,EAAa5lS,OAC5B8lS,EAAWp4F,GAAgBk4F,EAAa9yT,MAExCizT,EAAc,WAAa,2BAAThtT,EAAS,yBAATA,EAAS,gBAC/B,GAAI8sT,EAAa39T,SAAW6Q,EAAK7Q,OAC/B,MAAM,IAAIuf,MAAJ,oBAAuB44L,EAAvB,YAAkCylH,EAAlC,oBAAsDD,EAAa39T,OAAnE,2BAA4F6Q,EAAK7Q,OAAjG,MAGR,OAAOo2M,EAAS28B,iBAAiB,OAAQ,CAAC,CACxCliO,OACA6wN,aACCg8F,GACJ,EAWD,OATAG,EAAY5+N,GAAK14E,GArBnB,SAAcA,EAAIm7M,GAChB,OAAOn7M,EAAGm7M,UAAU,KAAOA,EAAU,IAAMn7M,EAAGm7M,UAAU,KAAOA,EAAU,EAC1E,CAmBwBo8F,CAAKv3S,EAAIm7M,GAEhCm8F,EAAYn8F,UAAYA,EACxBm8F,EAAYj/N,KAAO8+N,EACnBG,EAAYz4S,OAASw4S,EACrBC,EAAY1lH,QAAUA,EAEtB0lH,EAAYjvS,OAAS,IAAM8uS,EAAa9uS,SAEjCivS,CACR,CDFQE,CAAgB3nH,EAAUqnH,EAAa,IAAI3hT,WAAW,CAACohT,EAAc35T,EAAM4W,aAAci8L,EAAS28B,iBAAiB,yBAA0B,CAACp+D,GAAa,CAChK9jK,QACC+tD,KACJ,CAGM,SAASo/P,GAAmB5nH,EAA5B,EAGJxhM,GAAS,IAHiC,OAC3Coe,EAD2C,QAE3C6/N,GACU,EACV,MAAMpiP,EAAS,CAAC,EACV6sT,EAAWzqE,EAAQ9vO,OAAOw6S,IAEhC,IAAK,IAAI37T,EAAI,EAAGA,EAAI07T,EAASt9T,OAAQ4B,IAAK,CACxC,MAAM,MACJsuP,EADI,MAEJ3sP,EAFI,KAGJqH,GACE0yT,EAAS17T,GACP67T,EAAcj4F,GAAgB56N,GAC9BsyT,EAAetoT,GAAW,GAAKrR,EAAM4W,WAAavY,EACxDsxO,GAAWziO,EAAQgtT,GAAa,IAAMb,GAAa5pS,EAAQk9N,EAAM/lB,SAAU2yF,IAAmBl+P,GAAW4+P,GAAmBpnH,EAAUpjL,EAAQ4rC,EAAS6+P,EAAaP,MACrK,CAED,OAAOzsT,CACR,CEnDM,SAASwtT,GAAkB7nH,EAA3B,EAEJ8nH,GAAU,IAF+B,QAC1CrrE,GACW,EACX,MAAMpiP,EAAS,CAAC,EAEhB,IAAK,IAAI7O,EAAI,EAAGA,EAAIixP,EAAQ7yP,OAAQ4B,IAAK,CACvC,MAAM,UACJuuP,EADI,KAEJvlP,GACEioP,EAAQjxP,GAEPuuP,EAAUzxL,SACbw0K,GAAWziO,EAAQ+0N,GAAgB56N,IAAO,IAAMuoO,GAAY,CAAC,EAAGgd,GAAWt2O,IACzE,MAAMskT,EAAQ/nH,EAAS28B,iBAAiB38B,EAASi/B,iBAAiBx7N,EAASpV,MAAO,CAACs5K,GAASlkK,EAAS9W,MAAM8rB,WAE3G,OADAsvS,EAAMv/N,KAAO/kF,EACNskT,CAAP,GACCrB,KAEN,CAED,OAAOrsT,CACR,CCrBD,SAAS2tT,GAAoBhoH,EAAU24C,GAGrC,OAAIA,EAAO50O,YAAc,EAChBi8L,EAAS28B,iBAAiB,mBAAoB,CAACgc,EAAO50O,WAAa,IAGrEi8L,EAAS28B,iBAAiB,mBAAoB,CAACgc,GACvD,CAID,SAASsvE,GAAkBjoH,EAAUkoH,GACnC,OAAIA,EAAUtvI,MACL,CAACra,GAAa,CAAC,EAAG2pJ,EAAU7vE,MAAO,CACxCM,OAAQqvE,GAAoBhoH,EAAUkoH,EAAU7vE,MAAMM,UACpD,GAGFuvE,EAAUC,YACL,CAAC5pJ,GAAa,CAAC,EAAG2pJ,EAAUE,YAAa,CAC9CzvE,OAAQqvE,GAAoBhoH,EAAUkoH,EAAUE,YAAYzvE,QAC5D4B,WAAYytE,GAAoBhoH,EAAUkoH,EAAUE,YAAY7tE,cAC9D,GAGC,CAAC2tE,EAAU9vE,QAAS,EAC5B,CAiBM,SAASiwE,GAAMroH,EAAf,GAEJ,IAF6B,QAC9B25C,GACC,EACD,OAAO35C,EAAS28B,iBAAiB,cAAe,CAAC,CAC/Cgd,QAASA,EAAQ9mP,KAAIykB,GAjBzB,SAAuB0oL,EAAU1oL,GAC/B,MAAMvY,EAAUuY,EAAIvY,QAAQy2N,SAAS,MACrC,OAAOx1B,EAAS28B,iBAAiB,oBAAqB,CAACp+D,GAAa,CAAC,EAAGjnJ,EAAK,CAC3EvY,QAASA,EAAUw/J,GAAa,CAAC,EAAGx/J,EAAS,CAC3Cqa,MAAOra,EAAQqa,MAAMvmB,KAAIymB,GAAQilJ,GAAa,CAAC,EAAGjlJ,EAAM,CACtDjrB,KAAM2xM,EAAS28B,iBAAiB,sBAAuBsrF,GAAkBjoH,EAAU1mL,EAAKjrB,aAEvF,QAER,CAQ+Bi6T,CAActoH,EAAU1oL,OAEvD,CCrDM,SAASixS,GAAMvoH,EAAf,GAEJ,IAF6B,QAC9B25C,GACC,EACD,OAAO35C,EAAS28B,iBAAiB,cAAe,CAAC,CAG/CO,UAAW,CACTiF,iBAAkB,GAClB3jO,QAAS,GAEXm7O,YAEH,CCTM,SAAS6uE,GAAMxoH,EAAf,GAGJ,IAH6B,UAC9Bk9B,EAD8B,QAE9Byc,GACC,EACD,OAAO35C,EAAS28B,iBAAiB,cAAe,CAAC,CAC/CO,YACAyc,QAASA,EAAQ9mP,KAAIykB,GAAO0oL,EAAS28B,iBAAiB,oBAAqB,CAACp+D,GAAa,CAAC,EAAGjnJ,EAAK,CAChGnqB,MAAO,YAGZ,CCXM,SAASs7T,GAAMzoH,EAAUh/B,GAC9B,OAAOg/B,EAAS28B,iBAAiB,cAAe,CAAC37D,GAClD,CCJD,MAAM0nJ,GAAa,CACjBre,OAAQ,CACNse,SAAU,gBACVC,YAAa,mBACb5jE,QAAS,gBACT6nC,eAAgB,uBAElBg8B,KAAM,CACJC,kBAAmB,yBAErBC,SAAU,CACRC,OAAQ,iBAEVC,MAAO,CACLrxD,YAAa,WAEfsxD,UAAW,CACTnwE,WAAY,sBAEdowE,2BAA4B,CAC1BtgC,MAAO,iBAET1nF,SAAU,CACR+jD,MAAO,WACPuC,OAAQ,YACR2hE,QAAS,aACTC,YAAa,iBACbC,kBAAmB,wBAErBC,IAAK,CACHrqC,QAAS,aACT8/B,IAAK,SACLwK,SAAU,eAEZC,QAAS,CACPC,aAAc,sBACdZ,kBAAmB,4BAErBpiL,SAAU,CACRijL,UAAW,qBAEbC,UAAW,CACTppC,eAAgB,sBAElBqpC,aAAc,CACZrpC,eAAgB,sBAElBspC,cAAe,CACbtpC,eAAgB,sBAElBupC,cAAe,CACbvpC,eAAgB,sBAElBwpC,WAAY,CACVxpC,eAAgB,sBAElBypC,WAAY,CACV51N,GAAI,UAEN61N,cAAe,CACb1pC,eAAgB,sBAElB2pC,eAAgB,CACd3pC,eAAgB,sBAElB4pC,eAAgB,CACd5pC,eAAgB,sBAElB6pC,YAAa,CACX7pC,eAAgB,sBAElB8pC,iBAAkB,CAChB/kD,SAAU,qBAEZglD,MAAO,CACLC,aAAc,qBAEhBxyH,UAAW,CACTwoF,eAAgB,sBAElBj7K,OAAQ,CACNi7K,eAAgB,sBAElBiqC,QAAS,CACPd,UAAW,mBACX/hD,KAAM,eAER8iD,QAAS,CACP52F,QAAS,sBAEX62F,SAAU,CACRplD,SAAU,oBAEZsoC,IAAK,CACHjtI,QAAS,cAEXgqJ,UAAW,CACThqJ,QAAS,eChGb,MAAMiqJ,GAAQ,CAAC,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,KAAM,CAAC,IAAK,MAM7F,SAASC,GAAWC,EAAO7lG,GACzB,MAAM72N,EAAO62N,EAAMrvN,WAEb1I,EAAQ49T,EAAMC,WAAU,QAAC,IAC7B1gM,GAD4B,SAExBA,EAAI+wH,qBAAuBhtP,CAFH,IAI9B,OAAe,IAAXlB,EACKA,EAGF49T,EAAM5gU,KAAK,CAChBmgI,IAAK,CACH+wH,mBAAoBhtP,KAEnB,CACN,CAQD,SAAS48T,GAAcF,EAAOjgQ,GAC5B,OAAOigQ,EAAM5gU,KAAK,CAChBmgI,IAAK,CACHorG,MAAO5qK,KAEN,CACN,CAED,SAASogQ,GAAgBC,EAASC,EAAaL,EAAOjsQ,GACpD,OAAOisQ,EAAM5gU,KAAK,CAChBmgI,IAAK,CACH2wH,QAAS,CACPn8L,aAGJj6C,KAAM,CAAC,UAAD,OAAWsmT,EAAQt1T,YAAc,SAAUu1T,KAC9C,CACN,CA2BD,SAASC,GAAgBC,EAAcpgT,GACrCA,EAAMpgB,SAAQuD,IACZ,MAAM+nP,EAAW3pP,OAAOihB,KAAK49S,GAActrS,MAAKurS,GAAWl9T,EAAK8pB,GAAGozS,KAEnE,GAAIn1E,EACF/nP,EAAK8nP,YAAYm1E,EAAal1E,QACzB,CAEL,MAAMo1E,EAAOn9T,EAAKwH,WACZyiO,EAAQ7rO,OAAOq+D,QAAQwgQ,GAAcpiT,QAAO,CAAC7O,EAAD,SAAUmiE,EAAKivP,GAAf,SAAwBZ,GAAM3hT,QAAO,CAAC7O,EAAD,SAAUgiB,EAAGtqB,GAAb,SAAoBsI,EAAOzN,QAAP,UAAkByvB,GAAlB,OAAsBmgD,GAAtB,OAA4BzqE,GAA5B,UAAoCsqB,GAApC,OAAwCovS,GAAxC,OAA8C15T,GAAlE,GAAwEsI,EAA7G,GAAsHmxT,GAEpKA,IAASlzF,GACXjqO,EAAK8nP,YAAY7d,EAEpB,IAEJ,CAOD,SAASozF,GAAaX,EAAO/qH,EAAUmrH,EAASrxE,EAAOwxE,GACrD,MAAMxsQ,EAAWg7L,EAAMjnP,KAAI,CAAC,EAIzB1F,KAAU,IAJe,KAC1BsN,EAD0B,KAE1BinM,EAF0B,KAG1BltM,GACW,EAIX,OAHA62T,GAAgBC,EAAc7wT,EAAK5H,KAAI,QAAC,KACtCxE,GADqC,SAEjCA,CAFiC,KAGhC2xM,EAAS28B,iBAAiB,YAAa,CAAC,CAC7Cj7B,OACAhgL,OAAQjnB,EAAK5H,KAAI,QAAC,KAChB2B,EADgB,KAEhBnG,GAFe,SAGX2xM,EAAS28B,iBAAiB,UAAW,CAAC,CAC1CnoO,OACAnG,KAAMy8T,GAAWC,EAAO18T,KALT,IAOjBlB,QACAqH,SAVF,IAaF,OAAOwrM,EAAS28B,iBAAiB,wBAAyB,CAAC,CACzDtuO,KAAM68T,GAAgBC,EAAS,OAAQJ,EAAOjsQ,KAEjD,CAOD,SAAS6sQ,GAAiBZ,EAAO/qH,EAAU+5C,EAAWuxE,GACpD,OAAOvxE,EAAUlnP,KAAI,IAKf,IALgB,KACpB6uM,EADoB,KAEpBltM,EAFoB,KAGpBnG,EAHoB,MAIpB1B,GACI,EAEJ,OADA0+T,GAAgBC,EAAc,CAACj9T,IACxB2xM,EAAS28B,iBAAiB,4BAA6B,CAAC,CAC7Dj7B,OACAltM,OACAnG,KAAMy8T,GAAWC,EAAO18T,GACxB1B,UAJF,GAOH,CAQD,SAASi/T,GAAcb,EAAO/qH,EAAUmrH,EAASxmT,EAAQknT,GACvD,MAAM/sQ,EAAWn6C,EAAO9R,KAAI,CAAC,EAG1B1F,KAHyB,IAAC,KAC3Bu0M,EAD2B,KAE3BltM,GAF0B,SAGfwrM,EAAS28B,iBAAiB,YAAa,CAAC,CACnDj7B,OACAhgL,OAAQ,GACRv0B,QACAqH,SAP0B,IAS5B,OAAOwrM,EAAS28B,iBAAiB,yBAA0B,CAAC,CAC1DtuO,KAAM68T,GAAgBC,EAAS,QAASJ,EAAOjsQ,KAElD,CAOD,SAASgtQ,GAAcf,EAAO/qH,EAAUmrH,EAASn+S,EAAQs+S,GACvD,MAAMxsQ,EAAW9xC,EAAOna,KAAI,CAAC,EAI1B1F,KAAU,IAJgB,KAC3BsN,EAD2B,KAE3BinM,EAF2B,KAG3BltM,GACW,EAEX,OADA62T,GAAgBC,EAAc7wT,GACvBulM,EAAS28B,iBAAiB,YAAa,CAAC,CAC7Cj7B,OACAhgL,OAAQjnB,EAAK5H,KAAIqvB,GAAK89K,EAAS28B,iBAAiB,UAAW,CAAC,CAC1DtuO,KAAMy8T,GAAWC,EAAO7oS,QAE1B/0B,QACAqH,SANF,IASF,OAAOwrM,EAAS28B,iBAAiB,yBAA0B,CAAC,CAC1DtuO,KAAM68T,GAAgBC,EAAS,QAASJ,EAAOjsQ,KAElD,CAED,SAASitQ,GAAehB,EAAO/qH,EAAUsrH,EAAzC,GAMG,IANoD,QACrD9yE,EADqD,SAErDwzE,EAFqD,WAGrDxvF,EAHqD,KAIrD9uN,EAJqD,MAKrD/gB,GACC,EAED,OADA0+T,GAAgBC,EAAc,CAAC3+T,KAAWwG,MAAM4G,QAAQ2T,GAAQA,EAAO,CAACA,KACjEsyL,EAAS28B,iBAAiB,sBAAuB,CAAC,CACvDnuI,IAAK,CACHgqJ,UACA/tP,IAAwB,IAAnB+tP,EAAQ5uP,OAAekhU,GAAWC,EAAOr9S,EAAK,IAAMu9S,GAAcF,EAAOr9S,EAAK7a,KAAIqvB,GAAK4oS,GAAWC,EAAO7oS,MAC9Gv1B,MAEEm+T,GAAWC,EAFNiB,EAEK,WAAYxvF,EAAa,UAAH,OAAa7vO,EAAMkJ,WAAnB,KAAmClJ,EAAMkJ,WAA/D,qBAAsF6X,EAAK,GAAG7X,WAA9F,MAAkIlJ,MAGnJ,CAOD,SAASs/T,GAAelB,EAAO/qH,EAA/B,EAGGsrH,GAAc,IAHwB,MACvClyS,EADuC,OAEvC/oB,GACe,EACf,OAAO2vM,EAAS28B,iBAAiB,2BAA4B,CAAC,CAC5DvjN,MAAOA,EAAMvmB,KAAI,IAMX,IACAq1T,GAPY,KAChBxmH,EADgB,SAEhB3xF,EAFgB,SAGhB7sG,EAHgB,KAIhB1O,EAJgB,KAKhBnG,GACI,EAGJ,GAAIA,EAAK8pP,QAAS,CAChB,MAAM+zE,EAAQ79T,EAAK+pP,QACnBizE,GAAgBC,EAAc,CAACY,IAC/BhE,EAAYloH,EAAS28B,iBAAiB,sBAAuB,CAAC,CAC5D7C,MAAOgxF,GAAWC,EAAOmB,KAE5B,MAAM,GAAI79T,EAAKuqL,MAAO,CACrB,MAAM/lL,EAAMxE,EAAKgqP,MACjB6vE,EAAY6D,GAAehB,EAAO/qH,EAAUsrH,EAAc,CACxD9yE,QAAS,CAAC3lP,EAAI8lP,QACdqzE,SAAUn5T,EAAIsnP,OAAOrG,OACrBtX,WAAYt5N,EAASs5N,WACrB9uN,KAAM,CAAC7a,EAAIpI,KACXkC,MAAOkG,EAAIlG,OAEd,MAAM,GAAI0B,EAAK85T,YAAa,CAC3B,MAAMx/O,EAAKt6E,EAAK+5T,YAChBF,EAAY6D,GAAehB,EAAO/qH,EAAUsrH,EAAc,CACxD9yE,QAAS,CAAC7vK,EAAGgwK,OAAQhwK,EAAG4xK,YACxByxE,UAAU,EACVxvF,WAAYt5N,EAASs5N,WACrB9uN,KAAM,CAACi7D,EAAG0xK,KAAM1xK,EAAG2xK,MACnB3tP,MAAOg8E,EAAGh8E,OAEb,KAAM,CACL,MAAMw/T,EAAK99T,EAAK+9T,OAChBlE,EAAY6D,GAAehB,EAAO/qH,EAAUsrH,EAAc,CACxD9yE,QAAS2zE,EAAG3zE,QACZwzE,UAAU,EACVxvF,WAAYt5N,EAASs5N,WACrB9uN,KAAMy+S,EAAG3rE,OACT7zP,MAAOw/T,EAAGx/T,OAEb,CAED,OAAOqzM,EAAS28B,iBAAiB,0BAA2B,CAAC,CAC3Dj7B,OACA3xF,WACA7sG,WACA1O,OACAnG,KAAM65T,IALR,IAQF73T,WAEH,CAuBD,SAASg8T,GAAatB,EAAO/qH,EAAU1oL,EAAvC,GAMG,IANyC,MAC1CwiO,EAD0C,UAE1CC,EAF0C,OAG1Cp1O,EAH0C,OAI1CqI,EAJ0C,QAK1CjO,GACC,EACD,MAAMusT,ED3MD,WAEJvpH,GAAS,IAFkB,WAC5Bl5B,GACU,EACV,IAAIyjJ,EAEJ,OAAO/tJ,GAAa,CAAC,EAAGmqJ,GAAW3mH,GAA8D,QAAnDuqH,EAAwBzjJ,EAAW6/I,kBAAkD,IAA1B4D,OAAmC,EAASA,EAAsBvqH,GAC5K,CCqMsBwqH,CAAcvsH,EAAUovB,GAAgB93M,EAAI9iB,OACjE,OAAOwrM,EAAS28B,iBAAiB,oBAAqB,CAAC,CACrDmd,MAAOA,GAAS4xE,GAAaX,EAAO/qH,EAAU1oL,EAAI9iB,KAAMslP,EAAOwxE,GAC/DvxE,UAAW4xE,GAAiBZ,EAAO/qH,EAAU+5C,EAAWuxE,GACxD3mT,OAAQA,GAAUinT,GAAcb,EAAO/qH,EAAU1oL,EAAI9iB,KAAMmQ,GAC3DqI,OAAQA,GAAU8+S,GAAcf,EAAO/qH,EAAU1oL,EAAI9iB,KAAMwY,EAAQs+S,GACnEn+T,MAAOmqB,EAAInqB,MACXqH,KAAM8iB,EAAI9iB,KACVuK,QAASA,GAAWktT,GAAelB,EAAO/qH,EAAUjhM,EAASusT,KAEhE,CAOM,SAASkB,GAAMxsH,EAAUysH,EAAKC,GACnC,MAAM3B,EAAQ,IA5ShB,SAAqBA,GACnB,IAAK,IAAIv/T,EAAI,EAAGA,GAAC,0CAAiBA,IAChCs/T,GAAWC,EAAav/T,EAAd,uBAAcA,EAAd,mBAAcA,EAAd,GAEb,CA0SCmhU,CAAY5B,EAAO,OAAQ,KAAM,MAAO,MAAO,OAhRjD,SAA8B/qH,EAAU25C,EAAS+yE,GAC/C1sH,EAAShkL,SAAS,CAChB8sO,aAAc,CACZjnF,MAAO83E,EAAQ9mP,KAAI,CAACykB,EAAKnqB,IAAU,CAACmqB,EAAI9iB,KAAKqB,WAAY62T,GAAe,GAAKp1S,EAAInqB,MAAM4W,WAAa5W,KAAQixB,MAAK,CAAC/B,EAAGC,IAAMD,EAAE,GAAKC,EAAE,KAAIpT,QAAO,CAAC7O,EAAD,KAA2B,IAAjB7F,EAAMrH,GAAW,EACxK,IAAK,IAAI3B,EAAIiB,OAAOihB,KAAKrT,GAAQzQ,OAAQ4B,EAAI2B,EAAO3B,IAClD6O,EAAO,QAAD,OAAS7O,IAAO,OAIxB,OADA6O,EAAO7F,GAAQ6uP,GAAa7uP,IAAS,OAC9B6F,CAAP,GACC,CAAC,KAGT,CAoQCuyT,CAAqB5sH,EAAUysH,EAAI9yE,QAAS+yE,GAC5C,MAAMxvF,EA/CR,SAA0Bl9B,EAA1B,GAGG,IAHiC,iBAClCmiC,EADkC,QAElC3jO,GACC,EACD,OAAOwhM,EAAS28B,iBAAiB,uBAAwB,CAAC,CACxDwF,iBAAkBA,EAAiBtvO,KAAItD,IAAc,CACnDA,aACAlB,KAAM,MAGRA,KAAM,EAENmQ,YAEH,CAiCmBquT,CAAiB7sH,EAAUysH,EAAIvvF,WAC3Cuf,EAAUgwE,EAAI9yE,QAAQ9mP,KAAIykB,GAAO+0S,GAAatB,EAAO/qH,EAAU1oL,EAAK,CACxEwiO,MAAOxiO,EAAIwiO,MAAMtkB,SAAS,MAC1BukB,UAAWziO,EAAIyiO,UACfp1O,OAAQ2S,EAAI3S,OAAO/a,OAAS0tB,EAAI3S,OAAS,KACzCqI,OAAQsK,EAAItK,OAAOwoN,SAAS,MAC5Bz2N,QAASuY,EAAIvY,QAAQy2N,SAAS,UAEhC,OAAOx1B,EAAS28B,iBAAiB,cAAe,CAAC,CAC/CO,YACAtgN,OAAQ,CACN1R,MAAO6/S,EAAMl4T,KAAI,CAACxE,EAAM8e,IAAO6yL,EAAS28B,iBAAiB,eAAgB,CAAC,CACxExvN,KACA9e,aAGJouP,YAEH,CCvVM,SAASqwE,GAAS9sH,EAAUi8C,EAAK8wE,GACtC,OAAO9wE,CACR,CCPM,MAAM+wE,GAAe,WAErB,MAAMC,WAAoBC,GAC/BltT,YAAYggM,EAAUrzM,GAGpB,GAFA4a,MAAMy4L,EAAUrzM,IAEXpD,KAAK++D,UAAY/+D,KAAK4uB,GAAG60S,IAC5B,MAAM,IAAI7jT,MAAJ,yCAA4C62L,EAAS28B,iBAAiB,MAAO,CAACqwF,KAAev0S,QAA7F,mBAA+GlvB,KAAKkvB,SAE7H,ECRH,SAAS00S,GAASzrH,GAChB,MAAM/mM,EAAU+mM,EAAK7uM,KAAI0tC,GAAKA,EAAE1qC,WAAWnJ,SACrC0gU,EAAazyT,EAAQqwT,WAAUzqR,IAAMA,EAAE32C,SAC7C,OAAuB,IAAhBwjU,EAAoBzyT,EAAUA,EAAQnN,MAAM,EAAG4/T,EACvD,CAIM,SAASC,GAAYrtH,EAArB,GAIJ,IAJmC,UACpCk9B,EADoC,OAEpCtgN,EAFoC,QAGpC6/N,GACC,EACD,OAAOz8C,EAAS28B,iBAAiB,iBAAkB,CAAC,CAClDO,YACAtgN,OAAQ,CACN1R,MAAO0R,EAAO1R,MAAMrY,KAAI,QAAC,GACvBsa,EADuB,KAEvB9e,GAFsB,SAGlB2xM,EAAS28B,iBAAiB,eAAgB,CAAC,CAC/CxvN,KACA9e,KAAMkwK,GAAa,CAAC,EAAGlwK,EAAM,CAC3BqzM,KAAMyrH,GAAS9+T,EAAKqzM,UANA,KAU1B+6C,QAASA,EAAQ5pP,KAAI,QAAC,MACpBinP,EADoB,MAEpB3sP,EAFoB,KAGpBqH,GAHmB,QAId,CACLslP,MAAO95C,EAAS28B,iBAAiB,mCAAoC,CAACmd,EAAMtkB,SAAS,QACrFroO,QACAqH,OAPmB,OASnBgkB,QACL,CCpCM,SAAS80S,GAAYh9J,GAAmB,IAAbj2J,EAAa,uDAAJ,GACzC,IAAK,IAAI7O,EAAI,EAAGA,EAAI8kK,EAAK1mK,OAAQ4B,IAAK,CACpC,MAAMwkL,EAAQ1f,EAAK9kK,GAEf2H,MAAM4G,QAAQi2K,GAChBs9I,GAAYt9I,EAAO31K,GAEnBA,EAAOlQ,KAAK6lL,EAEf,CAED,MAAO,IAAI,IAAIpyJ,IAAIvjB,GACpB,CCZD,SAASkzT,GAAiBt/S,EAA1B,GAEG,IAF0B,IAC3BkJ,GACC,EACD,MAAM,WACJ8jN,EADI,KAEJ5sO,GACE8oB,EACJ,OAAOq2S,GAAa,CAACvyF,GAAc5sO,GACpC,CAED,SAASo/T,GAAgBx/S,EAAzB,GAEG,IAFyB,IAC1BkJ,GACC,EACD,OAAOq2S,GAAar2S,EAAItkB,KAAI,QAAC,WAC3BooO,EAD2B,KAE3B5sO,GAF0B,SAGtB4sO,GAAc5sO,CAHQ,IAI7B,CAED,SAASq/T,GAAUr/T,EAAnB,GAEG,IAFsB,KACvBi/B,GACC,EACD,MAAM,IAAInkB,MAAJ,6DAAgE9a,EAAhE,kBAA8E4pO,GAAY3qM,GAA1F,KACP,CAGD,MAAMqgS,GAAU,CACd,CAAC11F,GAAYzE,UAAWi6F,GACxB,CAACx1F,GAAYpE,UAAW05F,GACxB,CAACt1F,GAAYnE,SAAUy5F,GACvB,CAACt1F,GAAY9K,gBAAiBugG,GAC9B,CAACz1F,GAAYtH,MAAO88F,GACpB,CAACx1F,GAAYhE,SAAUw5F,GACvB,CAACx1F,GAAYhD,KAAMy4F,GACnB,CAACz1F,GAAY6C,SAAUyyF,GACvB,CAACt1F,GAAYrI,MAAO89F,GACpB,CAACz1F,GAAY5C,QAASk4F,GACtB,CAACt1F,GAAY6B,OAAQ,CAAC7rN,EAAGguN,IAAYA,EAAQhB,YAAcgB,EAAQ5tO,KACnE,CAAC4pO,GAAYpC,OAAQ03F,GACrB,CAACt1F,GAAYlC,gBAAiBw3F,GAC9B,CAACt1F,GAAYjC,QAASy3F,GACtB,CAACx1F,GAAYr6M,KAAM6vS,GACnB,CAACx1F,GAAY/gK,IAAKw2P,GAClB,CAACz1F,GAAYxG,QAASg8F,GACtB,CAACx1F,GAAYvC,OAAQ+3F,GACrB,CAACx1F,GAAYpB,MAAO62F,GACpB,CAACz1F,GAAYb,KAAMm2F,GACnB,CAACt1F,GAAYP,UAAW61F,GACxB,CAACt1F,GAAYL,mBAAoB21F,GACjC,CAACt1F,GAAYD,eAAgBu1F,IAIxB,SAASC,GAAatiT,GAC3B,MAAM7b,EAAQ6b,EAAMthB,OACdyQ,EAAS,IAAIlH,MAAM9D,GAEzB,IAAK,IAAI7D,EAAI,EAAGA,EAAI6D,EAAO7D,IAAK,CAC9B,MAAM6C,EAAO6c,EAAM1f,GACbywO,EAAUlC,GAAW1rO,GAC3BgM,EAAO7O,GAAKmiU,GAAQ1xF,EAAQ3uM,MAAMj/B,EAAM4tO,EACzC,CAED,OAAO5hO,CACR,CC/DD,MAAMi2B,GAAI7xB,GAAO,YCCjB,SAAS+uT,GAAa5wS,EAAQ1R,GAC5B,OAAOA,EAAMrY,KAAI,QAAC,KAChBxE,GADe,SAEXuuB,EAAOm9M,WAAW1rO,GAAMA,IAFb,GAGlB,CAID,SAASu/T,GAAkBhxS,EAAQvuB,GACjC,OAAOuuB,EAAO67N,UAAUpqP,GAAMi8H,IAAIm8L,UAAU3nQ,SAASjsD,KAAI,QAAC,OACxD6uB,GADuD,SAEnD8rS,GAAa5wS,EAAQ8E,EAF8B,GAG1D,CA+CM,SAASmsS,GAAa7tH,EAAUx3G,EAAMtoF,GAC3C,OD1DK,SAAuB8/L,EAAU9/L,EAAYgL,GAClD,MAAMyiB,EAAU2/R,GAAYE,GAAatiT,IAAQyB,QAAOte,IAAS2xM,EAAS8tH,QAAQz/T,KAAU2xM,EAASm8B,aAAa9tO,KAAO+vB,OAEzH,GAAuB,IAAnBuP,EAAQ/jC,OAAc,CACxB,MAAMwb,EAAU,qCAAH,OAAwCuoB,EAAQv9B,KAAK,OAElE,GAAI8P,EACF,MAAM,IAAIiJ,MAAM/D,GAEhBkrB,GAAEntB,KAAKiC,EAEV,CAED,OAAO8F,CACR,CC4CQ6iT,CAAc/tH,EAAU9/L,EAAYotT,GA5C7C,YAGG,IAHqB,OACtB1wS,EADsB,QAEtB6/N,GACC,EACD,OAAOA,EAAQvzO,QAAO,CAACkK,EAAD,KAKhB,IALsB,MAC1B0mO,EAD0B,UAE1BC,EAF0B,OAG1B/sO,EAH0B,QAI1BjO,GACI,EA4BJ,OA3BAqU,EAAIjpB,KAAK,CAACqjU,GAAa5wS,EAAQm9N,KAE3BD,EAAMvkB,QACRniN,EAAIjpB,KAAKyjU,GAAkBhxS,EAAQk9N,EAAM/lB,SAAS1lO,OAGhD2e,EAAOuoN,QACTniN,EAAIjpB,KAAKyjU,GAAkBhxS,EAAQ5P,EAAO+mN,SAAS1lO,OAGjD0Q,EAAQw2N,QACVniN,EAAIjpB,KAAK4U,EAAQg1N,SAAS36M,MAAMvmB,KAAI,IAE9B,IAF+B,KACnCxE,GACI,EACJ,GAAIA,EAAK8pP,QACP,MAAO,CAACv7N,EAAOm9M,WAAW1rO,EAAK+pP,SAAS/pP,MAG1C,MAAM,QACJmqP,EADI,IAEJ/tP,EAFI,MAGJkC,GACE0B,EAAKgqP,MACT,OAA0B,IAAnBG,EAAQ5uP,OAAe,CAACgzB,EAAOm9M,WAAWptO,GAAO0B,KAAMuuB,EAAOm9M,WAAWtvO,GAAK4D,MAAQ,CAACuuB,EAAOm9M,WAAWptO,GAAO0B,QAASuuB,EAAO67N,UAAUhuP,GAAK6/H,IAAIouH,QAAQ7lP,KAAIqvB,GAAKtF,EAAOm9M,WAAW73M,GAAG7zB,OAAhM,KAIG+kB,CAAP,GACC,GACJ,CAKwD46S,CAAexlO,IACvE,iEC9CM,MAAMylO,WAA0Bx8F,GAGrCzxN,YAAYggM,EAAUrzM,GAEpB4a,MAAMy4L,EAAU,CACdkuH,YAAajB,GACbjsJ,SAAU,eACTr0K,GALwB,8BAFhB,IAAI6hG,MAEY,8BAQZhwF,IACf,GAAIjV,KAAKiV,QAAUA,EACjB,MAAM,IAAI2K,MAAJ,+CAAkD5f,KAAKiV,QAAvD,eAAqEA,IAG7E,OAAOjV,KAAKiV,UAAYA,CAAxB,IAb2B,8BAef,CAACA,EAAS2vT,KACtB,MAAMC,EAAS,MAAH,OAAS5vT,GACf6vT,EAAS,aAAY,WAAZ7vT,EA5BK,GA4BiDA,EAAU,GAE/E,MAAgB,WAAZA,GAAA,GAAwBjV,KAAxB,SAAwBA,KAAoBiV,GACvC,GAAAjV,KAAA,SAAAA,MAAiB6kU,IAGrB,GAAA7kU,KAAA,IAAgBm2B,IAAIlhB,IACvB,GAAAjV,KAAA,IAAgBkJ,IAAI+L,EAAS2vT,EAAS5kU,KAAKy2M,SAAUz2M,KAAK8kU,GAAS9kU,KAAKiV,UAGnE,GAAAjV,KAAA,IAAgBiJ,IAAIgM,GAA3B,IA3B2B,8BAiCjB,IACHjV,KAAKijO,KAAK,aA5BlB,CAkCGtJ,kBACF,OAAO,IAAI+qG,GAAkB1kU,KAAKy2M,SAAU,CAC1CkuH,YAAa3kU,KAAK2kU,YAClBltJ,SAAUz3K,KAAKy2M,SAAS28B,iBAAiB,cAAe,CAAC0wF,GAAY9jU,KAAKy2M,SAAUz2M,KAAK+kU,UAtDvE,MAwDrB,CAMGC,WAEF,OADA,GAAAhlU,KAAA,SAAAA,KAAoB,GACb,GAAAA,KAAA,SAAAA,MAAiBglU,IACzB,CAMGC,YACF,OAAO,GAAAjlU,KAAP,SAAOA,KAAiB,GAAI8+T,GAC7B,CAMGoG,YACF,OAAO,GAAAllU,KAAP,SAAOA,KAAiB,GAAIg/T,GAC7B,CAMGmG,YACF,OAAO,GAAAnlU,KAAP,SAAOA,KAAiB,GAAIi/T,GAC7B,CAMGmG,YACF,OAAO,GAAAplU,KAAP,SAAOA,KAAiB,GAAIk/T,GAC7B,CAMGmG,YACF,OAAO,GAAArlU,KAAP,SAAOA,KAAiB,GAAIijU,GAC7B,CAMG8B,eACF,OAAO,GAAA/kU,KAAP,SAAOA,KAAiB,SAAUujU,GACnC,CAMGoB,kBACF,OAAO3kU,KAAKijO,KAAK,cAClB,CAMGhuN,cACF,OAAO,GAAAjV,KAAA,SAAAA,MAAiB4D,KACzB,CAED0gU,aAAa3tT,GACX,OAAO2tT,GAAatkU,KAAKy2M,SAAUz2M,KAAK+kU,SAAUpuT,EACnD,CAMDsY,SAKE,OADAjvB,KAAK+kU,SACE/mT,MAAMiR,QACd,ECzJH,MAAMq2S,GAAiB,IAAInpT,WAAW,CAAC,IAAM,IAAM,IAAM,GAAM,IAEzDopT,GAAcD,GAAejlU,OAAS,EA2BrC,MAAM0zP,WAAiB2wE,GAC5BjuT,YAAYggM,EAAUrzM,GAEpB4a,MAAMy4L,EAAU3yB,GAAM1gL,IAAUotL,GAASptL,GA3B7C,SAAmBqzM,EAAU1yB,GAC3B,GAAmB,IAAfA,EAAI1jL,OACN,OAAOilU,GACF,GAAyB,IAArBvhJ,EAAIwhJ,IAIb,IACE,OAAO,IAAIb,GAAkBjuH,EAAU1yB,EAIxC,CAHC,MAAOvoK,GAEP,OADAuoK,EAAIwhJ,IAAe,GACZxhJ,CACR,CAGH,OAAOA,CACR,CAWqDgkD,CAAUtxB,EAAUxyB,GAAS7gL,IAAUA,EAC1F,ECjCH,MAAMoiU,GAAiBpiU,GAASA,EAAMkJ,WAEhCm5T,GAAY,CAAC,WAAY,WAAY,UAAW,UAAW,SAAU,SAAU,OAKrF,SAASC,GAAiBjvH,EAAUi8B,EAAS1rJ,GAC3C,MAAM,KACJjjD,EADI,IAEJnW,GACE8kN,EAEJ,OAAQ3uM,GACN,KAAK2qM,GAAYzE,SACjB,KAAKyE,GAAYpE,SACjB,KAAKoE,GAAYnE,QACjB,KAAKmE,GAAYhE,QACjB,KAAKgE,GAAY6C,QACjB,KAAK7C,GAAY5C,OACjB,KAAK4C,GAAYpC,MACjB,KAAKoC,GAAYlC,eACjB,KAAKkC,GAAYjC,OACjB,KAAKiC,GAAYb,IACjB,KAAKa,GAAYL,kBACjB,KAAKK,GAAYD,cACf,OAvBC,SAAwBznJ,EAAOD,GAAmC,IAA5BhkB,EAA4B,uDAAhByiQ,GACvD,MAAO,GAAP,OAAUx+O,GAAV,OAAkBD,EAAQ,IAAH,QAAQn9E,MAAM4G,QAAQu2E,GAASA,EAAQ,CAACA,IAAQz9E,IAAIy5D,GAAWl8D,KAAK,MAApE,KAA+E,GACvG,CAqBY8+T,CAAe3+O,EAAOp5D,GAAK8T,GAAKkkS,GAAcnvH,EAAU/0K,KAGnE,MAAM,IAAI9hB,MAAJ,2BAA8BjZ,GAAU+rO,GAAxC,gBACP,CAED,SAASmzF,GAAepvH,EAAU7oL,EAAKk4S,EAAQ59H,GAC7C,MAAMliJ,EAAQp4B,EAAItkB,KAAI,QAAC,KACrB2B,GADoB,SAEhBA,CAFgB,IAItB,IAAK+6C,EAAMnwB,OAAM3C,KAAOA,IACtB,MAAM,IAAItT,MAAJ,mDAAsDomC,EAAMn/C,KAAK,QAGzE,MAAMkgF,EAAQiuF,GAAa,CAAC,EAAGkzB,GAE/B,IAAK,IAAIjmM,EAAI,EAAGA,EAAI2rB,EAAIvtB,OAAQ4B,IAAK,CACnC,MAAM8+H,EAAMnzG,EAAI3rB,GAChB8kF,EAAMg6C,EAAI91H,MAAQ26T,GAAcnvH,EAAU11E,EAC3C,CAED,OAAOp6H,GAAUm/T,EAAS,CACxBxtJ,MAAOvxF,GACLA,EACL,CAID,MAAMg/O,GAAW,CACf,CAACr3F,GAAYzE,UAAW,CAACxzB,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,YACnF,CAAChE,GAAYpE,UAAW,CAAC7zB,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,YACnF,CAAChE,GAAYnE,SAAU,CAAC9zB,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,WAClF,CAAChE,GAAY9K,gBAAiB,CAACntB,EAAD,SAAW,YACvCpiM,EADuC,YAEvCg0O,EAFuC,WAGvC3W,GAH4B,iCAINA,GAAcr9N,IAAgB0nN,GAAYssB,GAAe,UAAY5xC,EAASi/B,iBAAiB2S,IAJzF,MAK9B,CAAC3Z,GAAYtH,MAAO,CAAC3wB,EAAD,KAEd,IAFyB,IAC7B7oL,GACI,EACJ,IAAKhkB,MAAM4G,QAAQod,GACjB,MAAM,IAAIhO,MAAM,8BAKlB,OAAOgO,EAAIiI,OAAM,QAAC,KAChB/wB,GADe,QAEF,SAATA,CAFW,IAEQ6B,GAAU,CACjC2xK,MAAO1qJ,EAAItkB,KAAI,CAAC,EAEb1F,KAFY,IAAC,KACdqH,GADa,kBAECA,GAAQ,QAAJ,OAAYrH,GAFjB,MAGZiiU,GAAepvH,EAAU7oL,GAAK,EANnC,EAQF,CAAC8gN,GAAYhE,SAAU,CAACj0B,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,WAClF,CAAChE,GAAYhD,KAAM,CAACj1B,EAAD,SAAW,OAC5Bp2M,EAAS,IADQ,sBAENA,EAFM,MAGnB,CAACquO,GAAY6C,SAAU,CAAC96B,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,WAElF,CAAChE,GAAYrI,MAAO,CAAC5vB,EAAUi8B,IAAY,OAC3C,CAAChE,GAAY5C,QAAS,CAACr1B,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,UAEjF,CAAChE,GAAY6B,OAAQ,CAAC95B,EAAD,SAAW,YAC9BpiM,EAD8B,KAE9BvP,GAFmB,SAGfuP,GAAevP,CAHA,EAIrB,CAAC4pO,GAAYpC,OAAQ,CAAC71B,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,SAChF,CAAChE,GAAYlC,gBAAiB,CAAC/1B,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,kBACzF,CAAChE,GAAYjC,QAAS,CAACh2B,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,UAEjF,CAAChE,GAAYr6M,KAAM,CAACoiL,EAAD,KAGb,IAHwB,OAC5Bp2M,EAAS,EADmB,IAE5ButB,GACI,EACJ,IAAKhkB,MAAM4G,QAAQod,GACjB,MAAM,IAAIhO,MAAM,6BAGlB,OAAOjZ,GAAU,CACf0mO,KAAMz/M,EAAIjO,QAAO,CAACkK,EAAD,EAGd/jB,KAHc,IAAM,MACrBlC,EADqB,KAErBqH,GAFe,SAGJ+pK,GAAanrJ,EAAK,CAC7B,CAAC,GAAD,OAAI5e,GAAQ,UAAJ,OAAcrH,GAASkC,KAAYlC,GAASkC,GAJrC,GAKb,CACFinC,WAAY1sC,GAAU,KAP1B,EAYF,CAACquO,GAAY/gK,IAAK,CAAC8oI,EAAD,SAAW,WAC3Bi7B,EAD2B,KAE3B5sO,GAFgB,SAGZ4sO,GAAc5sO,CAHF,EAIlB,CAAC4pO,GAAYxG,QAAS,CAACzxB,EAAD,KAGhB,IAH2B,MAC/Bs4B,EAD+B,IAE/BnhN,GACI,EACJ,IAAKhkB,MAAM4G,QAAQod,GACjB,MAAM,IAAIhO,MAAM,gCAGlB,OAAOimT,GAAepvH,EAAU7oL,GAAK,EAAOmhN,EAAQ,CAClDqC,OAAQ,IAAIrC,EAAMxtK,WAAW5hD,QAAO,CAACkK,EAAD,SAAOxhB,EAAGoY,GAAV,SAAiBu0J,GAAanrJ,EAAK,CACrE,CAACxhB,GAAIoY,GAD6B,GAEhC,CAAC,IACH,CAAC,EAJL,EAMF,CAACiuN,GAAYvC,OAAQ,CAAC11B,EAAD,KAEf,IAF0B,IAC9B7oL,GACI,EACJ,IAAKhkB,MAAM4G,QAAQod,GACjB,MAAM,IAAIhO,MAAM,+BAGlB,MAAO,IAAP,OAAWgO,EAAItkB,KAAIxE,GAAQ8gU,GAAcnvH,EAAU3xM,KAAO+B,KAAK,KAA/D,MAEF,CAAC6nO,GAAYpB,MAAO,CAAC72B,EAAD,SAAW,OAC7Bp2M,EAAS,IADS,uBAENA,EAFM,MAGpB,CAACquO,GAAYb,KAAM,CAACp3B,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,OAC9E,CAAChE,GAAYP,UAAW,CAAC13B,EAAD,KAGlB,IAH6B,OACjCp2M,EADiC,IAEjCutB,GACI,EACJ,IAAKsuM,GAAS77N,KAAYutB,GAAOhkB,MAAM4G,QAAQod,GAC7C,MAAM,IAAIhO,MAAM,kCAGlB,MAAO,IAAP,OAAWgO,EAAI9oB,KAAf,YAAuBzE,EAAvB,MAEF,CAACquO,GAAYL,mBAAoB,CAAC53B,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,qBAC5F,CAAChE,GAAYD,eAAgB,CAACh4B,EAAUi8B,IAAYgzF,GAAiBjvH,EAAUi8B,EAAS,kBAG1F,SAASx6M,GAAWu+K,EAAUi8B,GAA4B,IAAnBszF,IAAmB,yDACxD,OAAOA,GAActzF,EAAQhB,WAAagB,EAAQhB,WAAaq0F,GAASrzF,EAAQ3uM,MAAM0yK,EAAUi8B,EACjG,CAEM,SAASkzF,GAAcnvH,EAAUi8B,GAItC,OAAOA,EAAQr+N,cAAgBoxT,GAAU7iM,MAAK3gI,GAAKywO,EAAQr+N,cAAgBpS,IAAKywO,EAAQr+N,YAAc6jB,GAAWu+K,EAAUi8B,EAC5H,CACM,SAASuzF,GAAexvH,EAAUi8B,GACvC,OAAO19D,GAAa,CAAC,EAAG09D,EAAS,CAC/B5tO,KAAMozB,GAAWu+K,EAAUi8B,GAAS,IAEvC,CC/KD,MAAM3rM,GAAI7xB,GAAO,oBAEXgxT,GAAc,CAClB1rT,SAAU,KAAO,GAGb2rT,GAAkB,CACtBC,KAAM,MAENC,IAAK,QAGDC,GAAcC,GAAe,CAEnC,+BAAgC,gCAAiC,yCACjE,4CAA6C,gCAC7C,uBAAwB,mDAExB,0BAA2B,kCAAmC,0BAC9D,0BAA2B,wBAAyB,qCACpD,qBAAsB,+BACtB,sBAEMC,GAAYD,GAAe,CAAC,qCAI5BE,GAAY,CAFK,sBAAuB,eACvB,sBAAuB,gBAGxCC,GAAW,CAAC,kBAAmB,kBAAmB,aAAc,MAAO,WAAY,WAAY,MAAO,SAAU,QAAS,iBAAkB,SAAU,iBAAkB,oBAAqB,iBAE5LC,GAAW,CAAC,UAAW,OAAQ,OAAQ,MAAO,QAE9CC,GAAkB,CAAC,UAAW,OAAQ,SAAU,SAAU,SAGhE,SAASC,GAAa1uH,GACpB,MAAMrnM,EAAS,IAAIlH,MAAMuuM,EAAK93M,QAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAIk2M,EAAK93M,OAAQ4B,IAC/B6O,EAAO7O,GAAKk2M,EAAKl2M,GAAGqK,WAGtB,OAAOwE,CACR,CAID,SAASy1T,GAAe3nT,GACtB,MAAM9N,EAAS,IAAIlH,MAAMgV,EAAOve,QAEhC,IAAK,IAAI4B,EAAI,EAAGA,EAAI2c,EAAOve,OAAQ4B,IACjC6O,EAAO7O,GAAK2c,EAAO3c,GAAGoI,MAAM,MAG9B,OAAOyG,CACR,CAID,SAASg2T,GAAW9vF,EAAO/gC,GACzB,OAAO+gC,EAAM32O,SAAW41M,EAAO51M,QAAU22O,EAAMnhN,OAAM,CAAC/C,EAAGlvB,KACvD,MAAMmvB,EAAIkjL,EAAOryM,GAAO0I,WAExB,GAAU,MAANwmB,GAAaA,IAAMC,EACrB,OAAO,EAGT,GAAID,EAAEooE,SAAS,MAAQpoE,EAAEooE,SAAS,MAAQnoE,EAAEmoE,SAAS,KAAM,CACzD,IAAI6rO,EAAOj0S,EAAEzoB,MAAM,KACf28T,EAAOj0S,EAAE1oB,MAAM,KAEnB,GAAgB,MAAZ08T,EAAK,GAAY,CACnB,MAAMrjU,EAAUsjU,EAAKtjU,QAAQqjU,EAAK,KAEjB,IAAbrjU,IACFqjU,EAAOA,EAAK9iU,MAAM,GAClB+iU,EAAOA,EAAK/iU,MAAMP,GAErB,CAGD,OAAoB,IAAhBqjU,EAAK1mU,QAA4B,MAAZ0mU,EAAK,IAAcA,EAAK,KAAOC,EAAK,IAItDF,GAAWC,EAAMC,EACzB,CAED,OAAO,CAAP,GAEH,CAYD,SAASC,GAAgBC,EAAU7+E,EAAavyO,EAAQwF,GAA0B,IAApB6rT,EAAoB,wDAChF,MAAMrhU,EAAQwV,EAAKjb,OAEnB,GAAc,IAAVyF,GAAe4gU,GAASxrO,SAAS5/E,EAAKxV,EAAQ,GAAGwG,YACnD,OAAO,KAGT,MAAM86T,EAAS,IAAIx9T,MAAM9D,GACnBuhU,EAAS,IAAIz9T,MAAM9D,GAIzB,IAAK,IAAI7D,EAAI,EAAGA,EAAI6D,EAAO7D,IAAK,CAC9B,MAAMgW,EAAI6tN,GAAiBqhG,EAAa7rT,EAAKrZ,GAAGoB,QAAQ,UAAW,IAAMiY,EAAKrZ,IACxE8kC,EAAI9uB,EAAEtI,cACZy3T,EAAOnlU,GAAKgW,EACZovT,EAAOplU,GAAK8kC,CACb,CAED,IAAI97B,EAAO,GAEX,IAAK,IAAIhJ,EAAI,EAAGA,EAAI6D,EAAO7D,IAAK,CAC9B,MAAM8kC,EAAIsgS,EAAOplU,GAEP,IAANA,GAAY2kU,GAAgB1rO,SAASn0D,IAGnCA,IAAMsgS,EAAOplU,EAAI,KACnBgJ,GAAQm8T,EAAOnlU,GAGpB,CAGD,GAAkB,cAAdmlU,EAAO,IAAgC,IAAVthU,GAAiC,IAAlBgQ,EAAOzV,QAAgByV,EAAO,GAAGhR,KAAKknO,OAAQ,CAC5F,MAAMs7F,EAAeJ,EAASpxT,EAAO,GAAGhR,KAAK0lO,SAAShwN,YAEhB,IAAlC8sT,EAAaxiU,KAAKwW,KAAKjb,SACzB4K,EAAO,GAAH,OAAMA,GAAN,OAAaq8T,EAAaxiU,KAAKwW,KAAK,GAAGhP,YAE9C,CAED,MAAO,CACL+7O,cACAp9O,OACA6K,SAEH,CAID,SAASyxT,GAAYL,EAAU7+E,EAA/B,GAKG,IAJDvjP,MAAM,OACJgR,EADI,KAEJwF,IAED,EACD,OAAO2rT,GAAgBC,EAAU7+E,EAAavyO,EAAQwF,EACvD,CAoBD,SAASksT,GAAajuT,EAAOkuT,GAC3B,MAAM3hU,EAAQyT,EAAMlZ,OAEpB,IAAK,IAAI4B,EAAI,EAAGA,EAAI6D,EAAO7D,IAAK,CAC9B,MAAM6wB,EAAIvZ,EAAMtX,GAEhB,IAAK,IAAImG,EAAInG,EAAI,EAAGmG,EAAItC,EAAOsC,IAAK,CAClC,MAAM2qB,EAAIxZ,EAAMnR,GAEhB,GAAI0qB,EAAEu1N,cAAgBt1N,EAAEs1N,aAAev1N,EAAE7nB,OAAS8nB,EAAE9nB,KAClD,OAAO,CAEV,CACF,CAGD,IAAK,IAAIhJ,EAAI,EAAGA,EAAI6D,EAAO7D,IAAK,CAC9B,MAAMy/B,EAAInoB,EAAMtX,GAChBwlU,EAAQ/lS,EAAE2mN,aAAe3mN,EAAEz2B,IAC5B,CAED,OAAO,CACR,CA2LD,SAASy8T,GAAgBr0S,EAAQ6zS,GAC/B,MAAMS,EAAW,GACXhmT,EAAQ,CAAC,EACTimT,EAAWV,EAAS7mU,OAE1B,IAAK,IAAI4B,EAAI,EAAGA,EAAI2lU,EAAU3lU,IAAK,CACjC,MAAM6C,EAAOoiU,EAASjlU,GAChBomP,EAAcvjP,EAAK8e,GAAGpJ,WACtBqtT,EAAYN,GAAYL,EAAU7+E,EAAa6+E,EAASjlU,IAE1D4lU,GACFF,EAAS/mU,KAAKinU,GAGhBlmT,EAAM0mO,GAAevjP,CACtB,CAED,MAAMgjU,EAAU,CAAC,EACX9hR,EAAQ,CAAC,EACTlwC,EAAS,CAAC,EACViyT,EA3MR,SAAyB10S,EAAQ6zS,EAAUlhR,GACzC,MAAMyhR,EAAU,CAAC,EACjB,OAAOzhR,EAAM18C,KAAI,CAAC0+T,EAAU//F,KAC1B,MAAM,YACJogB,EADI,KAEJp9O,EAFI,OAGJ6K,GACEkyT,EAEJ,IAAK/8T,EAEH,OAAO,KACF,GAAIw8T,EAAQp/E,GAEjB,OAAO2/E,EAIT,MAAMC,EA5DV,SAAyBh9T,EAAMg9N,EAASjiL,GACtC,MAAMl1C,EAAS,CAACk1C,EAAMiiL,IAEtB,IAAK,IAAIhmO,EAAIgmO,EAAU,EAAGhmO,EAAI+jD,EAAM3lD,OAAQ4B,IAAK,CAC/C,MAAMwe,EAAIulC,EAAM/jD,GAEZwe,EAAExV,OAASA,GACb6F,EAAOlQ,KAAK6f,EAEf,CAED,OAAO3P,CACR,CAgDmBo3T,CAAgBj9T,EAAMg9N,EAASjiL,GAE/C,GAAuB,IAAnBiiR,EAAQ5nU,OACV,OAAO2nU,EAMT,IAFgBC,EAAQrlM,MAAK5hF,GAAKlrC,EAAOzV,SAAW2gD,EAAElrC,OAAOzV,QAAUyV,EAAO8sH,MAAK,CAAClhG,EAAG99B,KAAW89B,EAAEz2B,KAAK2jB,GAAGoyB,EAAElrC,OAAOlS,GAAOqH,OAASy2B,EAAE58B,KAAKmnO,SAASi6F,IAAa1rT,aAAewmC,EAAElrC,OAAOlS,GAAOkB,KAAKmnO,SAASi6F,IAAa1rT,eAG1N,OAAOwtT,EAMT,MAAMG,EAAWryT,EAAO2rT,WAAU,CAAC,EAEhC79T,KAF+B,IAAC,KACjCkB,GADgC,SAErBmjU,EAAQpyS,OAAM,CAAC,EAEzBuyS,KAFwB,IAAC,OAC1BtyT,GADyB,SAEbA,EAAOlS,GAAOkB,KAAKknO,SAAsB,IAAXo8F,IAAiBtyT,EAAOlS,GAAOkB,KAAK8pB,GAAG9pB,GAFxD,GAFO,IAMlC,IAAkB,IAAdqjU,EACF,OAAOH,EAIT,MAAMK,EAAW,IAAIz+T,MAAMq+T,EAAQ5nU,QAGnC,IAAK,IAAI4B,EAAI,EAAGA,EAAIgmU,EAAQ5nU,OAAQ4B,IAAK,CACvC,MAAM,YACJomP,EADI,KAEJp9O,EAFI,OAGJ6K,GACEmyT,EAAQhmU,IACN,IACJ8+H,EADI,KAEJzlH,GACE+X,EAAO67N,UAAUp5O,EAAOqyT,GAAUrjU,KAAK0lO,UAG3C,IAAKzpG,EAAIunM,cAAgBhtT,EAAKjb,OAC5B,OAAO,KAGTgoU,EAASpmU,GAAK,CACZomP,cACAp9O,KAAM81H,EAAIunM,YAAJ,UAAqBr9T,GAArB,OAA4B81H,EAAIwnM,YAAYj8T,YAA5C,UAA8DrB,GAA9D,OAAqEqQ,EAAKA,EAAKjb,OAAS,GAAGiM,YAEpG,CAGD,GAAIk7T,GAAaa,EAAUZ,GACzB,OAAOO,EAST,IAAK,IAAI/lU,EAAI,EAAGA,EAAIgmU,EAAQ5nU,OAAQ4B,IAAK,CACvC,MAAM,YACJomP,EADI,KAEJp9O,EAFI,OAGJ6K,GACEmyT,EAAQhmU,IACN,IACJ8+H,EADI,KAEJzlH,GACE+X,EAAO67N,UAAUp5O,EAAOqyT,GAAUrjU,KAAK0lO,UACrCn5M,EAAO41S,GAAgBC,EAAU7+E,EAAavyO,EAAQwF,GAAM,GAElE,GAAIylH,EAAIunM,cAAgBj3S,EACtB,OAAO,KAGTg3S,EAASpmU,GAAK,CACZomP,cACAp9O,KAAM,GAAF,OAAKA,GAAL,OAAYomB,EAAKpmB,MAExB,CAGD,OAAIu8T,GAAaa,EAAUZ,GAClBO,EAGF,IAAP,IACC5kT,QAAO8P,KAAOA,IAAG5pB,KAAI,QAAC,YACvB++O,EADuB,KAEvBp9O,EAFuB,OAGvB6K,GAHsB,QAIjB,CACLuyO,cACAp9O,KAAMw8T,EAAQp/E,IAAgBp9O,EAC9B6K,SAPsB,GASzB,CAqFe0yT,CAAgBn1S,EAAQ6zS,EAAUS,GAC1Cc,EAAaV,EAAM1nU,OAEzB,IAAK,IAAI4B,EAAI,EAAGA,EAAIwmU,EAAYxmU,IAAK,CACnC,MAAM,YACJomP,EADI,KAEJp9O,EACA6K,OAAQ4rB,GACNqmS,EAAM9lU,GACV+jD,EAAMqiM,GAAep9O,EACrB68T,EAAQ78T,GAAQooB,EAAOojL,SAASi/B,iBAAiB2S,GACjDvyO,EAAO7K,GAAQy2B,CAChB,CAED,MAAO,CACLomS,UACA9hR,QACAlwC,SACA6L,QAEH,CAED,IAAIyvN,GAAsBpU,GAA2B,SAEjD0rG,GAAwB1rG,GAA2B,WAEnD2rG,GAAsB3rG,GAA2B,SAEjD4rG,GAAuB5rG,GAA2B,UAElD6rG,GAAyB7rG,GAA2B,YAEpD/jM,GAAsB+jM,GAA2B,SAEjD8rG,GAA4B9rG,GAA2B,eAEvD+rG,GAA4B/rG,GAA2B,eAEvDgsG,GAAwBhsG,GAA2B,WAEnDisG,GAA6BjsG,GAA2B,gBAExDksG,GAAmClsG,GAA2B,sBAE9DmsG,GAA+BnsG,GAA2B,kBAE1DosG,GAAiCpsG,GAA2B,oBAE5DqsG,GAAoCrsG,GAA2B,uBAE/DssG,GAA8BtsG,GAA2B,iBAEzDusG,GAAmCvsG,GAA2B,sBAE9DwsG,GAAgCxsG,GAA2B,mBAE3DysG,GAAiCzsG,GAA2B,oBAE5D0sG,GAAiC1sG,GAA2B,oBAE5D2sG,GAAgC3sG,GAA2B,mBAE3D4sG,GAA6B5sG,GAA2B,gBAExD6sG,GAA+B7sG,GAA2B,kBAE1D8sG,GAAmC9sG,GAA2B,sBAE3D,MAAM+sG,WAAyB7hG,GACpCzxN,YAAYggM,EAAUrzM,EAAO4mU,GAE3BhsT,MAAMy4L,EAAU,CACd90L,MAAO,qBACNve,GACHF,OAAOqR,eAAevU,KAAM8pU,GAAqB,CAC/C1mU,MAAO6mU,KAET/mU,OAAOqR,eAAevU,KAAM6pU,GAAiB,CAC3CzmU,MAAO8mU,KAEThnU,OAAOqR,eAAevU,KAAM4pU,GAAe,CACzCxmU,MAAO+mU,KAETjnU,OAAOqR,eAAevU,KAAM2pU,GAAkB,CAC5CvmU,MAAOgnU,KAETlnU,OAAOqR,eAAevU,KAAM0pU,GAAmB,CAC7CtmU,MAAOinU,KAETnnU,OAAOqR,eAAevU,KAAMypU,GAAmB,CAC7CrmU,MAAOknU,KAETpnU,OAAOqR,eAAevU,KAAMwpU,GAAkB,CAC5CpmU,MAAOmnU,KAETrnU,OAAOqR,eAAevU,KAAMupU,GAAqB,CAC/CnmU,MAAOonU,KAETtnU,OAAOqR,eAAevU,KAAMspU,GAAgB,CAC1ClmU,MAAOqnU,KAETvnU,OAAOqR,eAAevU,KAAMqpU,GAAsB,CAChDjmU,MAAOsnU,KAETxnU,OAAOqR,eAAevU,KAAMopU,GAAmB,CAC7ChmU,MAAOunU,KAETznU,OAAOqR,eAAevU,KAAMmpU,GAAiB,CAC3C/lU,MAAOwnU,KAET1nU,OAAOqR,eAAevU,KAAMkpU,GAAqB,CAC/C9lU,MAAOynU,KAET3nU,OAAOqR,eAAevU,KAAMipU,GAAe,CACzC7lU,MAAO0nU,KAET5nU,OAAOqR,eAAevU,KAAMgpU,GAAU,CACpC5lU,MAAO2nU,KAET7nU,OAAOqR,eAAevU,KAAM+oU,GAAc,CACxC3lU,MAAO4nU,KAET9nU,OAAOqR,eAAevU,KAAM8oU,GAAc,CACxC1lU,MAAO6nU,KAET/nU,OAAOqR,eAAevU,KAAMoxO,GAAQ,CAClC1sM,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAM0oU,GAAU,CACpChkS,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAM2oU,GAAQ,CAClCjkS,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAM4oU,GAAS,CACnClkS,UAAU,EACVthC,WAAO,IAETF,OAAOqR,eAAevU,KAAM6oU,GAAW,CACrCnkS,UAAU,EACVthC,MAAO,CAAC,IAEVF,OAAOqR,eAAevU,KAAMi5B,GAAQ,CAClCyL,UAAU,EACVthC,WAAO,IAET,MAAM,QACJ0kU,EADI,MAEJ9hR,EACAlwC,OAAQo1T,EAHJ,MAIJvpT,GACE+lT,GAAgB1nU,KAAMA,KAAK2hB,OAC/B87M,GAA4Bz9N,KAAMoxO,IAAQA,IA5M9C,SAAwBt7N,EAAQk0T,GAC9B,MAAMmB,EAAYjoU,OAAOihB,KAAKrO,GAAQ8sH,MAAKv6H,IAAMA,EAAEk6I,WAAW,YACxDwsF,EAAQ,CAAC,EAEf,GAAIj5N,EAAOs1T,4BAA6B,CAEtC,MAAO,EAAE,KACPtmU,IACGgR,EAAOs1T,4BACZr8F,EAAMjqO,EAAK0lO,SAAShwN,YAAc,MACnC,MAAU2wT,IAAcnB,GACvBjjS,GAAEntB,KAAK,sHAGT,GAAI9D,EAAOu1T,uBAAwB,CAEjC,OAAO,KACLvmU,IACGgR,EAAOu1T,uBACZt8F,EAAMjqO,EAAK0lO,SAAShwN,YAAc,OACnC,MAAU2wT,IAAcnB,GACvBjjS,GAAEntB,KAAK,oFAGT,OAAOm1N,CACR,CAmLuDu8F,CAAeJ,EAAUlB,GAC7EvsG,GAA4Bz9N,KAAM0oU,IAAUA,IAAYZ,EACxDrqG,GAA4Bz9N,KAAM2oU,IAAQA,IAAU3iR,EACpDy3K,GAA4Bz9N,KAAM4oU,IAASA,IAAWsC,EACtDztG,GAA4Bz9N,KAAMi5B,IAAQA,IAAUtX,CACrD,CAEGqkC,YACF,OAAO9iD,OAAO0b,OAAO6+M,GAA4Bz9N,KAAM2oU,IAAQA,KAAS9zS,MACzE,CAMGlT,YACF,OAAO3hB,KAAKijO,KAAK,QAClB,CAEDxwM,YA/PF,SAAuBY,EAAQy0S,EAAS9hR,EAAOlwC,GAI7C,GAFAud,EAAOojL,SAAShkL,SAASq1S,GAErBhyT,EAAOs1T,4BAA6B,CAEtC,MAAOG,EAAD,CAAaC,GAAY11T,EAAOs1T,4BAChCK,EAAYp4S,EAAO67N,UAAUq8E,EAAUzmU,KAAK0lO,UAE5CkhG,EADcr4S,EAAO67N,UAAUs8E,EAAS1mU,KAAK0lO,UACnBlvN,KAAKzU,KAAK,MAC1C,IAAI8kU,EAAcF,EAAUnwT,KAAKzU,KAAK,MACtC,MAAM+kU,EAAiC,2CAAhBD,EAEvB,GAAIC,EAAgB,CAElB,MAAOC,GAAWJ,EAAU31T,OAC5B61T,EAAct4S,EAAO67N,UAAU28E,EAAQ/mU,KAAK0lO,UAAUlvN,KAAKzU,KAAK,KACjE,CAEDwsB,EAAOojL,SAAShkL,SAAS,CACvB0oO,UAAW,CAAC,gCAAgCjgK,SAASywO,GAAe,cAAgB,CAAC,uBAAwB,yBAAyBzwO,SAASywO,GAAe,cAAgB,cAE9KlzJ,QAASmzJ,EAAiB,eAAiB,YAC3CnqD,mBAAoB,CAAC,8BAA8BvmL,SAASwwO,GAAe,iBAAmB1lR,EAAMwlR,EAAS1mU,KAAK0lO,SAAShwN,aAAe,kBAE7I,CACF,CAsOGsxT,CAAc9rU,KAAMy9N,GAA4Bz9N,KAAM0oU,IAAUA,IAAWjrG,GAA4Bz9N,KAAM2oU,IAAQA,IAASlrG,GAA4Bz9N,KAAM4oU,IAASA,IAC1K,CAMDrmG,QAAQwpG,GACN,OAAOtuG,GAA4Bz9N,KAAM2oU,IAAQA,IAAQlrG,GAA4Bz9N,KAAM+oU,IAAcA,IAAcgD,GACxH,CAMD78E,UAAU68E,GAGR,MAAMlzS,GAAS4kM,GAA4Bz9N,KAAMi5B,IAAQA,KAAWj5B,KAAK2hB,OAAO87M,GAA4Bz9N,KAAM+oU,IAAcA,IAAcgD,IAE9I,IAAKlzS,EACH,MAAM,IAAIjZ,MAAJ,8DAAiEmsT,EAASz/T,aAGlF,OAAOusB,EAAM/zB,IACd,CAMD0rO,WAAWu7F,GACT,MAAM1jF,EAAc5qB,GAA4Bz9N,KAAM+oU,IAAcA,IAAcgD,GAElF,IAAKtuG,GAA4Bz9N,KAAM6oU,IAAWA,IAAWxgF,GAAc,CACzE,MAAM3W,EAAajU,GAA4Bz9N,KAAM2oU,IAAQA,IAAQtgF,GAE/DxtG,EAAQ,CACZ92G,KAAM2qM,GAAY9K,eAClBykB,cACA3W,aACA5sO,KAAM9E,KAAKy2M,SAASi/B,iBAAiB2S,IAGnC3W,IACFjU,GAA4Bz9N,KAAM6oU,IAAWA,IAAWxgF,GAAextG,GAGzE,MAAMgtL,EAAYpqG,GAA4Bz9N,KAAMgpU,IAAUA,IAAUhpU,KAAKkvP,UAAU68E,GAAW1jF,GAG7F3W,IACHjU,GAA4Bz9N,KAAM6oU,IAAWA,IAAWxgF,GAAextG,GAGzE33I,OAAOihB,KAAK0jT,GAAWtmU,SAAQ8G,KACnB,eAANA,GAAsBw/T,EAAUx/T,MAElCo1N,GAA4Bz9N,KAAM6oU,IAAWA,IAAWxgF,GAAahgP,GAAKw/T,EAAUx/T,GACrF,IAGCw/T,EAAU9jS,OAAS2qM,GAAY6B,QACjC9S,GAA4Bz9N,KAAM6oU,IAAWA,IAAWxgF,GAAa2jF,eAAiBvuG,GAA4Bz9N,KAAM6oU,IAAWA,IAAWxgF,GAAa3W,kBACpJjU,GAA4Bz9N,KAAM6oU,IAAWA,IAAWxgF,GAAa3W,WAE/E,CAED,OAAOjU,GAA4Bz9N,KAAM6oU,IAAWA,IAAWxgF,EAChE,CAED1S,cAAc1qO,GACZ,IAAIghU,EAAY,KACZC,EAAW,KAcf,OAZIjhU,EAAK+gO,SACPigG,EAAYpmG,GAAgB56N,EAAKu/N,UAE7ByhG,EAAU/wO,SAAS,MACrBgxO,EAAWD,EACXA,EAAYC,EAAS7oU,QAAQ,KAAM,MAC1BsjU,GAASzrO,SAAS+wO,KAC3BC,EAAWD,EACXA,EAAY,GAAH,OAAMA,EAAN,OAIN,CAACA,EAAWC,EACpB,EAIH,SAASjB,GAAcc,GACrB,MAAMr5F,EAAU1yO,KAAKwwO,WAAWu7F,GAC1B1jF,EAAc0jF,EAASvxT,WAE7B,MAAO,CAACk0N,GAAY9K,eAAgB8K,GAAYtH,KAAMsH,GAAYxG,QAAQhtI,SAASw3I,EAAQ3uM,OAAS2uM,EAAQhB,WAAa,CACvHv5B,KAAMu6B,EAAQv6B,KACdp0K,KAAM2qM,GAAY/gK,GAClB06K,cACA3W,WAAYjU,GAA4Bz9N,KAAM2oU,IAAQA,IAAQtgF,GAC9DvjP,KAAM9E,KAAKy2M,SAASi/B,iBAAiBq2F,IACnCr5F,CACL,CAED,SAASs4F,GAAce,GACrB,GAAIv7I,GAASu7I,GAAW,CACtB,IAAK/rU,KAAKy2M,SAASm8B,aAAam5F,GAC9B,MAAM,IAAInsT,MAAJ,iEAAoEmsT,IAG5E,OAAOj1T,SAASi1T,EAAS1oU,QAAQ,SAAU,IAAK,GACjD,CAAM,OAAI64N,GAAS6vG,GACXA,EAGFA,EAASvxT,UACjB,CAED,SAASuwT,GAAUjmU,EAAMujP,GACvB,MAAM9tH,EAAYz1H,EAAKwW,KAAKzU,KAAK,MACjC,IAAI6rO,EACJ,MAAMy5F,EAAY1uG,GAA4Bz9N,KAAMoxO,IAAQA,IAAQiX,MAnmBhD/sO,EAmmB6ExW,EAAKwW,MAjmB1Fjb,QAAUimU,GAAY1jM,MAAK9vG,GAAKg0S,GAAWh0S,EAAGxX,KAASA,EAAKA,EAAKjb,OAAS,GAAGiM,WAAa,MAFxG,IAAsBgP,EAqmBpB,IACE,GAAI6wT,EACFz5F,EAAUjV,GAA4Bz9N,KAAM0pU,IAAmBA,IAAmBrhF,EAAa8jF,QAE/F,OAAQrnU,EAAKi8H,IAAIj8H,MACf,IAAK,QACH4tO,EAAUjV,GAA4Bz9N,KAAMipU,IAAeA,IAAe5gF,EAAavjP,EAAKi8H,IAAI+nH,SAChG,MAEF,IAAK,cACHpW,EAAUjV,GAA4Bz9N,KAAMkpU,IAAqBA,IAAqB7gF,EAAavjP,EAAKi8H,IAAIqrM,eAC5G,MAEF,IAAK,UACH15F,EAAUjV,GAA4Bz9N,KAAMmpU,IAAiBA,IAAiB9gF,EAAavjP,EAAKi8H,IAAIsrM,WACpG,MAEF,IAAK,YACH35F,EAAUjV,GAA4Bz9N,KAAMopU,IAAmBA,IAAmB/gF,EAAavjP,EAAMA,EAAKi8H,IAAIurM,aAC9G,MAEF,IAAK,qBACH55F,EAAUjV,GAA4Bz9N,KAAMwpU,IAAkBA,IAAkBnhF,EAAavjP,EAAKi8H,IAAIwrM,sBACtG,MAEF,IAAK,YACH75F,EAAUjV,GAA4Bz9N,KAAMypU,IAAmBA,IAAmBphF,EAAavjP,GAC/F,MAEF,IAAK,WACH4tO,EAAUjV,GAA4Bz9N,KAAM2pU,IAAkBA,IAAkBthF,EAAavjP,EAAKi8H,IAAIyrM,YACtG,MAEF,IAAK,QACH95F,EAAUjV,GAA4Bz9N,KAAM4pU,IAAeA,IAAevhF,EAAavjP,EAAKi8H,IAAIouH,SAChG,MAEF,IAAK,UACHzc,EAAUjV,GAA4Bz9N,KAAM6pU,IAAiBA,IAAiBxhF,EAAavjP,EAAMA,EAAKi8H,IAAIm8L,WAC1G,MAEF,SpN9sBD,SAA2B50T,GAChC,MAAM,IAAIsX,MAAJ,gEAAmEtX,GAC1E,CoN6sBSmkU,CAAkB3nU,EAAKi8H,IAAIj8H,MAKlC,CAFC,MAAO0W,GACP,MAAM,IAAIoE,MAAJ,4BAA+ByoO,GAA/B,OAA6C9tH,EAAY,KAAH,OAAQA,EAAR,KAAuB,GAA7E,8BAAqG5zH,GAAU7B,GAA/G,aAAyH0W,EAAMK,SACtI,CAED,OAAOm5J,GAAa,CAClBmjC,KAAM0uH,GAAa/hU,EAAKqzM,MACxB59E,aACCm4G,EACJ,CAED,SAASo4F,GAAepmT,EAAxB,GAGG,IAHwB,IACzBrY,EADyB,KAEzBvH,GACC,EACD,MAAMzE,EAASgM,EAAImO,WAEnB,GAAIna,EAAS,KACX,MAAM,IAAIuf,MAAM,2DAGlB,OAAOqmT,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAYP,SAClB9tO,SACAutB,IAAK6vM,GAA4Bz9N,KAAM8oU,IAAcA,IAAchkU,IAEtE,CAED,SAAS+lU,GAAqBnmT,EAA9B,GAGG,IAH8B,aAC/BwtO,EAD+B,aAE/BD,GACC,EAGD,MAAMn/N,EAAI2qM,GAA4Bz9N,KAAM8oU,IAAcA,IAAc52E,GAElEn/N,EAAI0qM,GAA4Bz9N,KAAM8oU,IAAcA,IAAc72E,IAEjEy6E,EAAUC,GAAYlG,GAAUvrO,SAASpoE,EAAEynG,WAAa,IAAM,CAACznG,EAAGC,GAAK,CAACA,EAAGD,GAIlF,IAAK2zS,GAAUvrO,SAASwxO,EAASnyM,WAAa,IAC5C,MAAM,IAAI36G,MAAJ,uCAA0C8sT,EAASnyM,WAAa,cACjE,GAAIoyM,EAAS5oS,OAAS2qM,GAAY6B,OAA2B,OAAlBo8F,EAAS7nU,KACzD,MAAM,IAAI8a,MAAJ,yDAA4D+sT,EAAS7nU,OAG7E,MAAO,CACLi/B,KAAM2qM,GAAY6B,MAClBzrO,KAAM,SAET,CAED,SAAS8lU,GAAiBlmT,EAA1B,GAEG,IAF0B,KAC3B5f,GACC,EACD,OAAOmhU,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAYnE,QAClB38M,IAAK6vM,GAA4Bz9N,KAAM8oU,IAAcA,IAAchkU,IAEtE,CAED,SAAS6lU,GAAmBtiF,EAA5B,KAKG,IALsC,OACvCvyO,EADuC,KAEvCwF,GAGC,GAFA,OACD6c,GACC,EACD,GAAI7c,EAAKjb,OAAQ,CACf,MAAMusU,EAAYtxT,EAAK,GAAGhP,WACpBugU,EAAWvxT,EAAKA,EAAKjb,OAAS,GAAGiM,WAEvC,GAAoB,IAAhBgP,EAAKjb,QAA8B,aAAdusU,EAA0B,CACjD,GAAsB,IAAlB92T,EAAOzV,OACT,MAAM,IAAIuf,MAAJ,gDAAmD9J,EAAOzV,SAGlE,OAAO4lU,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAYzE,SAClBr8M,IAAK9X,EAAOxM,KAAI,QAAC,KACfxE,GADc,SAEV24N,GAA4Bz9N,KAAM8oU,IAAcA,IAAchkU,EAAK0lO,SAFzD,KAInB,CAAM,GAAoB,IAAhBlvN,EAAKjb,QAA8B,aAAdusU,EAA0B,CACxD,GAAsB,IAAlB92T,EAAOzV,OACT,MAAM,IAAIuf,MAAJ,+CAAkD9J,EAAOzV,SAGjE,OAAO4lU,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAYpE,SAClB18M,IAAK6vM,GAA4Bz9N,KAAM8oU,IAAcA,IAAchzT,EAAO,GAAGhR,KAAK0lO,WAErF,CAAM,GAAI,CAAC,QAAS,kBAAkBtvI,SAAS0xO,GAAY,CAC1D,GAAsB,IAAlB92T,EAAOzV,OACT,MAAM,IAAIuf,MAAJ,4CAA+C9J,EAAOzV,SAG9D,OAAO4lU,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAoB,UAAd6oS,EAAwBl+F,GAAYpC,MAAQoC,GAAYlC,eAC9D5+M,IAAK6vM,GAA4Bz9N,KAAM8oU,IAAcA,IAAchzT,EAAO,GAAGhR,KAAK0lO,UAClF1lO,KAAM8nU,GAET,CAAM,GAAI,CAAC,oBAAqB,iBAAiB1xO,SAAS2xO,GAAW,CACpE,GAAsB,IAAlB/2T,EAAOzV,OACT,MAAM,IAAIuf,MAAJ,oDAAuD9J,EAAOzV,SAGtE,OAAO4lU,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAmB,sBAAb8oS,EAAmCn+F,GAAYL,kBAAoBK,GAAYD,cACrF7gN,IAAK6vM,GAA4Bz9N,KAAM8oU,IAAcA,IAAchzT,EAAO,GAAGhR,KAAK0lO,UAClF1lO,KAAM+nU,GAET,CACF,CAED,OAAOrG,GAAU5jM,MAAKlhG,GAAKolS,GAAWplS,EAAGpmB,KAASmiN,GAA4Bz9N,KAAMqpU,IAAsBA,IAAsBhhF,EAAavyO,EAAQqiB,GAAUslM,GAA4Bz9N,KAAMspU,IAAgBA,IAAgBjhF,EAAalwN,EAC/O,CAED,SAASuyS,GAAsBhmT,EAAG5O,EAAQqiB,GACxC,GAAsB,IAAlBriB,EAAOzV,QAAkC,IAAlB83B,EAAO93B,OAChC,MAAM,IAAIuf,MAAM,sDAGlB,OAAOqmT,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAYr6M,IAClBh0B,OAAQL,KAAKy2M,SAAS28B,iBAAiBpzO,KAAKy2M,SAASi/B,iBAAiBv9M,EAAO,GAAGrzB,MAAO,IAAI2lC,YAC3F7c,IAAK5tB,KAAKkvP,UAAUp5O,EAAO,GAAGhR,KAAK0lO,UAAUzpG,IAAIm8L,UAAU3nQ,SAASjsD,KAAI,QAAC,MACvE1F,EADuE,KAEvEqH,GAFsE,QAGjE,CAELrH,MAAOA,EAAM4W,WACbupB,KAAM2qM,GAAY6B,MAClBtlO,KAAMA,EAAKqB,WACXxH,KAAM,OARgE,KAW3E,CAED,SAAS2lU,GAAgBpiF,EAAalwN,GACpC,IAAI20S,GAAW,EACXC,GAAU,EAEd,IAAK,IAAI3oT,EAAI,EAAGA,EAAI+T,EAAO93B,OAAQ+jB,IAAK,CACtC,MAAM,KACJnZ,GACEktB,EAAO/T,GACX0oT,EAAWA,GAAY7hU,EAAK+gO,OAC5B+gG,EAAUA,GAAW9hU,EAAKy8N,MAC3B,CAED,IAAKqlG,IAAYD,EACf,MAAM,IAAIltT,MAAM,2FAGlB,GAAsB,IAAlBuY,EAAO93B,OACT,MAAO,CACL0jC,KAAM2qM,GAAYrI,KAClBvhO,KAAM,QAEH,GAAIioU,GAA6B,IAAlB50S,EAAO93B,OAAc,CACzC,MAAMqyO,EAAUjV,GAA4Bz9N,KAAM8oU,IAAcA,IAAc3wS,EAAO,GAAGrzB,MAExF,OAAOkwK,GAAa,CAAC,EAAG09D,GAA0B,IAAjB2V,EAAqB,KAAO,CAC3DA,cACA3W,WAAYjU,GAA4Bz9N,KAAM2oU,IAAQA,IAAQtgF,GAC9D2jF,eAAgBt5F,EAAQhB,YACvBv5M,EAAO,GAAG0rM,SAASmI,OAAS,CAC7BnI,SAAUoM,GAAS93M,EAAO,GAAG0rM,SAAS2G,WACpC,KACL,CAED,MAAO58M,EAAKmhN,GAAStR,GAA4Bz9N,KAAMupU,IAAqBA,IAAqBpxS,GAEjG,OAAO8tS,GAAejmU,KAAKy2M,SAAUzhC,GAAa,CAChDjxI,KAAMgpS,EACJr+F,GAAYvC,MAAQuC,GAAYxG,OAClCt6M,OACCmhN,EAAM5mO,KAAO,CACd4mO,SACE,MAAuB,IAAjBsZ,EAAqB,KAAO,CACpCA,cACA3W,WAAYjU,GAA4Bz9N,KAAM2oU,IAAQA,IAAQtgF,KAEjE,CAED,SAASmiF,GAAqBryS,GAC5B,MAAM42M,EAAQ,IAAI9pI,IACZr3E,EAAM,IAAIhkB,MAAMuuB,EAAO93B,QAE7B,IAAK,IAAI4B,EAAI,EAAGA,EAAIk2B,EAAO93B,OAAQ4B,IAAK,CACtC,MAAM,KACJk2M,EADI,KAEJltM,EAFI,KAGJnG,EAHI,SAIJ++N,GACE1rM,EAAOl2B,GAELywO,EAAUjV,GAA4Bz9N,KAAM8oU,IAAcA,IAAchkU,GAE9E,GAAImG,EAAKy8N,OACP95M,EAAI3rB,GAAKywO,MACJ,CACL,MAAOu5F,EAAWC,GAAYlsU,KAAK21O,cAAc1qO,GAE7CghU,GAAaC,GACfn9F,EAAM7lO,IAAI+iU,EAAWC,GAGvBt+S,EAAI3rB,GAAK+yK,GAAa,CACpBmjC,KAAM0uH,GAAa1uH,GACnBltM,KAAMghU,GACLv5F,EAAS7O,EAASmI,OAAS,CAC5BnI,SAAUoM,GAASpM,EAAS2G,WAC1B,KACL,CACF,CAED,MAAO,CAAC58M,EAAKmhN,EACd,CAED,SAASw7F,GAAkB7lT,EAAG5f,GAC5B,OAAOkwK,GAAa,CAClB3gK,YAAavP,EAAKwH,WAClB0gU,UAAU,GACTx8F,GAAW1rO,GACf,CAED,SAASwlU,GAAmB5lT,EAAG5f,GAC7B,MAAMmoU,EAAUnoU,EAAKi8H,IAAIwnM,YAAYzjU,KAAKwH,WAC1C,MAAO,CACLy3B,KAAM2qM,GAAY6B,MAClBzrO,KAAMqhU,GAAgB8G,IAAYA,EAAQt9T,cAE7C,CAED,SAAS06T,GAAmB3lT,EAAG5f,GAC7B,MAAO,CACLi/B,KAAM2qM,GAAY6B,MAClBzrO,OAEH,CAED,SAASslU,GAAkB/hF,EAA3B,GAEG,IAFqC,KACtCvjP,GACC,EACD,MAAM8oB,EAAM6vM,GAA4Bz9N,KAAM8oU,IAAcA,IAAchkU,GAE1E,MAAiB,OAAb8oB,EAAI9oB,KACC,CACLi/B,KAAM2qM,GAAY6B,MAClBzrO,KAAM,SAIHmhU,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAYb,IAClBwa,cACA3W,WAAYjU,GAA4Bz9N,KAAM2oU,IAAQA,IAAQtgF,GAC9Dz6N,OAEH,CAED,SAASu8S,GAAe9hF,EAAa7nB,GACnC,GAAmB,IAAfA,EAAIngO,OACN,MAAO,CACL0jC,KAAM2qM,GAAYrI,KAClBvhO,KAAM,QAEH,GAAmB,IAAf07N,EAAIngO,OACb,OAAOL,KAAKwwO,WAAWhQ,EAAI,IAG7B,MAAM5yM,EAAM4yM,EAAIl3N,KAAIqvB,GAAK8kM,GAA4Bz9N,KAAM8oU,IAAcA,IAAcnwS,KACvF,OAAOstS,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAYvC,MAClBkc,cACA3W,WAAYjU,GAA4Bz9N,KAAM2oU,IAAQA,IAAQtgF,GAC9Dz6N,OAEH,CAED,SAASs8S,GAAiB7hF,EAA1B,KAKG,IALoC,OACrCvyO,EADqC,KAErCwF,GAGC,GAFA,SACDi6C,GACC,EACD,GAAIj6C,EAAKjb,OAAQ,CACf,MAAM6sU,EAAiB5xT,EAAK,GAAGhP,WAE/B,GAAuB,WAAnB4gU,EAA6B,CAC/B,GAAsB,IAAlBp3T,EAAOzV,OACT,MAAM,IAAIuf,MAAJ,6CAAgD9J,EAAOzV,SAU/D,OAAO4lU,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAY5C,OAClBl+M,IAAK6vM,GAA4Bz9N,KAAM8oU,IAAcA,IAAchzT,EAAO,GAAGhR,KAAK0lO,WAErF,CAAM,GAAuB,WAAnB0iG,EAA6B,CACtC,GAAsB,IAAlBp3T,EAAOzV,OACT,MAAM,IAAIuf,MAAJ,8CAAiD9J,EAAOzV,SAGhE,OAAO4lU,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAYjC,OAClB7+M,IAAK9X,EAAOxM,KAAI,CAAC,EAEd1F,KAFa,IAAC,KACfkB,GADc,SAEHkwK,GAAa,CACxB/pK,KAAM,CAAC,KAAM,SAASrH,IACrB65N,GAA4Bz9N,KAAM8oU,IAAcA,IAAchkU,EAAK0lO,UAJtD,KAMnB,CACF,CAED,OAAwB,IAApBj1K,EAASl1D,OACJ,CACL0jC,KAAM2qM,GAAYrI,KAClBvhO,KAAM,QAIH24N,GAA4Bz9N,KAAM8pU,IAAqBA,IAAqBzhF,EAAa9yL,EACjG,CAED,SAAS00Q,GAAqB5hF,EAAa9yL,GACzC,MAAM3nC,EAAM,GAwBZ,OArBA2nC,EAAStxD,QAAQ4wB,MAAK,CAAC/B,EAAGC,IAAMD,EAAElvB,MAAMirC,IAAI9b,EAAEnvB,SAAQrC,SAAQ,IAIxD,IAJyD,OAC7D42B,EACAv0B,MAAOupU,EAFsD,KAG7DliU,GACI,EACJ,MAAMrH,EAAQupU,EAAQ3yT,WAEtB,KAAOoT,EAAIvtB,SAAWuD,GACpBgqB,EAAIhtB,KAAK,CACPgD,MAAOgqB,EAAIvtB,OACX0jC,KAAM2qM,GAAYrI,KAClBp7N,KAAM,WAAF,OAAa2iB,EAAIvtB,QACrByE,KAAM,SAIV8oB,EAAIhtB,KAAKo0K,GAAayoD,GAA4Bz9N,KAAMspU,IAAgBA,KAAiB,EAAGnxS,GAAS,CACnGv0B,QACAqH,KAAMA,EAAKqB,aAFb,IAKK25T,GAAejmU,KAAKy2M,SAAU,CACnC1yK,KAAM2qM,GAAYtH,KAClBihB,cACA3W,WAAYjU,GAA4Bz9N,KAAM2oU,IAAQA,IAAQtgF,GAC9Dz6N,OAEH,CCtlCD,MAAMw/S,GAAyB,IAAIjxT,WAAW,GACxC4qB,GAAI7xB,GAAO,YAEjB,SAASm4T,GAAmBv6S,EAAGC,GAC7B,OAAOjc,SAASgc,EAAG,IAAMhc,SAASic,EAAG,GACtC,CAED,SAASu6S,GAAc7sT,GACrB,OAAOA,EAAEnU,UACV,CAED,SAASihU,GAAal6S,EAAQ8E,GAC5B,MAAMjnB,EAAO,IAAItH,MAAMuuB,EAAO93B,QAE9B,IAAK,IAAI4B,EAAI,EAAGA,EAAIk2B,EAAO93B,OAAQ4B,IACjCiP,EAAKjP,GAAKoxB,EAAOm9M,WAAWr4M,EAAOl2B,GAAG6C,MAAMA,KAG9C,OAAOoM,CACR,CAED,SAASs8T,GAAYtvG,GACnB,MAAM/5M,EAAOjhB,OAAOihB,KAAK+5M,GAEzB,IAAK,IAAIj8N,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,WACxBi8N,EAAO/5M,EAAKliB,GAEtB,CAED,SAASwrU,GAAT,GAEG,IAF0B,MAC3B7pU,GACC,EACD,OAAOA,EAAM0I,UACd,mRA2HM,MAAMohU,GAoBXj3T,YAAY08N,GAAe,8BAnBhB,IAAIluI,MAmBY,8BAlBZ,IAAIA,MAkBQ,8BAjBT,OAiBS,4GAdR,IAcQ,8BAbV,CAAC,IAaS,8BAZT,CAAC,IAYQ,8BAXT,CAAC,IAWQ,8BAVd,CAAC,IAUa,8BATX,IAAIA,MASO,qEAPjB0kG,KAOiB,4GAJb,CAAC,IAIY,8BAHP2rC,KAGO,uCACzB,GAAAt1O,KAAA,GAAsBg1K,GAAa,CACjC8tD,KADiC,GAEjCixB,SAFiC,GAGjCg2E,iBAHiC,GAIjCxmG,IAAGA,IACFoqG,IACH,GAAA3tU,KAAA,GAAyB4tU,GACzB,MAAMhvJ,EAAW17K,OAAO0b,OAAP,GAAc5e,KAAd,KAEjB,IAAK,IAAIiC,EAAI,EAAGA,EAAI28K,EAASv+K,OAAQ4B,IACnCjC,KAAKyyB,SAASmsJ,EAAS38K,GAAG0f,OAGxBwxN,IACFnzO,KAAKmzO,cAAgBnzO,KAAK6tU,WAAW,OAAQ16F,GAEhD,CAEGz8B,oBACF,IAAIo3H,EAEJ,GAAwD,QAAnDA,EAAwB,GAAA9tU,KAAH,WAAgE,IAA1B8tU,GAAoCA,EAAsBz0G,cAAc2S,OAAQ,CAC9I,MAAM+hG,EAAc,GAAA/tU,KAAA,IAAsBq5N,cAAcmR,SAExD,GAAIujG,EAAY1tU,OACd,OAAO0tU,EAAYzkU,KAAIypB,GAAKA,EAAEvY,YAEjC,CAED,MAAO,CAAC,GACT,CAEG4+M,gBACF,IAAI40G,EAEJ,OAA4D,QAApDA,EAAyB,GAAAhuU,KAAH,WAAiE,IAA3BguU,GAAqCA,EAAuBrjI,WAAWqhC,OAAS,GAAAhsO,KAAA,IAAsB2qM,WAAW6/B,SAAShwN,gBAAa1Z,CAC5M,CAEG61M,kBACF,IAAIs3H,EAEJ,GAAyD,QAApDA,EAAyB,GAAAjuU,KAAH,WAAiE,IAA3BiuU,GAAqCA,EAAuB30G,YAAY0S,OAAQ,CAC/I,MAAMkiG,EAAY,GAAAluU,KAAA,IAAsBs5N,YAAYkR,SAEpD,GAAI0jG,EAAU7tU,OACZ,OAAO6tU,EAAU5kU,IAAIgkU,GAExB,CAED,MAAO,CAACp4H,GAAcG,cAActzI,KACrC,CAEGymL,qBACF,OAAO,GAAAxoP,KAAA,KAAwBotU,EAChC,CAMDx6F,aAAaxvO,GACX,MAAO,aAAa8O,KAAK9O,EAC1B,CAMDsyO,iBAAiBq2F,GACf,MAAO,SAAP,OAAgBA,EAASz/T,WAC1B,CAEGgzK,iBACF,OAAO,GAAAt/K,KAAP,GACD,CAEGqzB,aACF,OAAOogN,GAAa,GAAAzzO,KAAD,IAAe,2CACnC,CAEGy3K,eACF,OAAOg8D,GAAa,GAAAzzO,KAAD,IAAiB,6CACrC,CAEGmuU,mBACF,MAAO,IAAI,GAAAnuU,KAAA,IAAmBmkB,OAC/B,CAEGy0N,uBACF,OAAO,GAAA54O,KAAP,GACD,CAEDouU,aACE,GAAApuU,KAAA,GAAgB,IAAIilG,IACrB,CAMDopO,YAAYvpU,GACV,OAAOkhO,GAAkBhmO,KAAM8E,EAChC,CAMDkhO,kBAAkBlhO,GAChB,OAAOkhO,GAAkBhmO,KAAM8E,EAChC,CAMD+oU,WAAW/oU,GAAiB,2BAARgR,EAAQ,iCAARA,EAAQ,kBAC1B,OAAOs9N,GAAiBpzO,KAAM8E,EAAMgR,EACrC,CAMDs9N,iBAAiBtuO,EAAMgR,EAAQhW,GAC7B,OAAOszO,GAAiBpzO,KAAM8E,EAAMgR,EAAQhW,EAC7C,CAGDkiO,aAAaD,GACX,MAAOvpB,EAAS/yL,GAAU,CAACs8M,EAAU,GAAIA,EAAU,IACnD,OAAO0R,GAAa,GAAAzzO,KAAA,cAAuBw4M,KAAc,GAAAx4M,KAAA,cAAuBw4M,IAAvB,UAAqC/yL,KAAW,IAAM,iDAAN,OAAuD+yL,EAAvD,aAAmE/yL,EAAnE,cAA+Es8M,EAAUz1N,WAAzF,MAC1G,CAGDqsM,cAAcupB,GACZ,MAAO1pB,EAAS/yL,GAAUq+J,GAAMo+C,GAAc,CAACA,EAAW,GAAIA,EAAW,IAAM,CAACA,EAAWt+N,MAAM4W,WAAYspK,GAAMo+C,EAAW1mN,OAAS0mN,EAAW1mN,MAAM,GAAK0mN,EAAW1mN,MAAMhB,YAC9K,OAAOi5N,GAAa,GAAAzzO,KAAA,cAAwBw4M,KAAc,GAAAx4M,KAAA,cAAwBw4M,IAAxB,UAAsC/yL,KAAW,IAAM,mDAAN,OAAyD+yL,EAAzD,aAAqE/yL,EAArE,cAAiFy8M,EAAW51N,WAA5F,MAC5G,CAEDwpO,cAAcw4F,GACZ,MAAO91H,EAAS/yL,GAAU,CAAC6oT,EAAW,GAAIA,EAAW,IACrD,OAAO76F,GAAa,GAAAzzO,KAAA,cAAwBw4M,KAAc,GAAAx4M,KAAA,cAAwBw4M,IAAxB,UAAsC/yL,KAAW,IAAM,mDAAN,OAAyD+yL,EAAzD,aAAqE/yL,EAArE,cAAiF6oT,EAAWhiU,WAA5F,MAC5G,CAEDrD,IAAIgC,EAAMsjU,EAAaC,GACrB,OAAOxuU,KAAK2yO,UAAU1nO,EAAMsjU,EAAaC,EAC1C,CAED77F,UAAU1nO,EAAMsjU,EAAaC,GAC3B,IAAI7nG,EAAO,GAAA3mO,KAAA,IAAciJ,IAAIgC,IAAS,GAAAjL,KAAA,IAAoBiL,GAE1D,IAAK07N,EAAM,CACT,MAAMlnK,EAAa,GAAAz/D,KAAA,IAAkBiJ,IAAIgC,GACzC,IAAIwjU,EAEAhvQ,EACFgvQ,EAAWzoG,GAAkBhmO,KAAMy/D,GAC1B+uQ,EACTC,ExN3LD,SAA4Bh4H,EAAUi8B,GAC3C,IACE,MAAM/L,EAAO4L,GAAYG,EAAQ3uM,MAAM0yK,EAAUi8B,GAEjD,IAAK/L,EACH,MAAM,IAAI/mN,MAAM,oBAUlB,OANK+mN,EAAK2M,gBAAkBZ,EAAQpC,eAGlC3J,EAAK2M,eAAiBZ,EAAQpC,cAGzB3J,CAGR,CAFC,MAAOnrN,GACP,MAAM,IAAIoE,MAAJ,yCAA4CjZ,GAAU+rO,GAAtD,aAAmEl3N,EAAMK,SAChF,CACF,CwNwKkB6yT,CAAmB1uU,KAAMwuU,GAC3BD,IACTxnS,GAAEntB,KAAF,iCAAiC3O,EAAjC,mCACA,GAAAjL,KAAA,IAAmBkJ,IAAI+B,GAAM,GAC7BwjU,EAAW7qG,GAAAA,KAAoB34N,IAG7BwjU,IAIF9nG,EAAO,cAAc8nG,IACrB,GAAAzuU,KAAA,IAAckJ,IAAI+B,EAAM07N,GAGpB6nG,GAAgBtyG,GAASsyG,EAAanmF,cACxC,GAAAroP,KAAA,IAAckJ,IAAIlJ,KAAK01O,iBAAiB84F,EAAanmF,aAAc1hB,GAGxE,CAED,OAAOA,CACR,CAEDgoG,qBACE,OAAO,GAAA3uU,KAAP,GACD,CAEDomO,aAAaO,GAIX,MAAM3gL,EAAQ,GAEd,IAAK,MAAO/6C,EAAMinO,KAAUhvO,OAAOq+D,QAAP,GAAevhE,KAAf,KACtB2mO,IAASuL,GACXlsL,EAAMplD,KAAKqK,GAIf,IAAK,MAAOA,EAAMinO,KAAU,GAAAlyO,KAAA,IAAcuhE,UACpColK,IAASuL,GACXlsL,EAAMplD,KAAKqK,GAMf,OADA+6C,EAAMnxB,OAAOjI,UACNo5B,EAAM3lD,OAAS2lD,EAAM,QAAKllD,CAClC,CAED8tU,cAAc/qG,GACZ,OAAO,GAAA7jO,KAAA,IAAkBiJ,IAAI46N,EAC9B,CAEDgrG,mBAAmB1vJ,EAAU2vJ,GAC3B,IAAIC,EAAkBC,EAAuBC,EAAwBC,EAAwBC,EAE7F,OAAkD,QAAzCJ,EAAmB,GAAA/uU,KAAH,WAAsD,IAArB+uU,GAAkG,QAA1DC,EAAwBD,EAAiB7uJ,mBAAmD,IAA1B8uJ,GAAsG,QAAzDC,EAAyBD,EAAsB7uJ,YAA6C,IAA3B8uJ,GAAwH,QAA1EC,EAAyBD,EAAuB9vJ,EAAS7yK,mBAAoD,IAA3B4iU,GAA6G,QAA/DC,EAAyBD,EAAuB9rC,iBAAkD,IAA3B+rC,OAA/a,EAA4dA,EAAuBL,KAAgB,GAAA9uU,KAAA,IAAgB8uU,EAC5mB,CAEDM,WAAWnkU,EAAMw+B,GACf,MAAMyoM,EAAQlyO,KAAKiJ,IAAIgC,GAEvB,IAAKinO,EACH,MAAM,IAAItyN,MAAM6pB,GAAO,QAAJ,OAAYx+B,EAAZ,eAGrB,OAAOinO,CACR,CAEDM,aAAavnO,GACX,OAAOjL,KAAKiJ,IAAIgC,GAAM,EACvB,CAED8tO,0BACE,OAAOxD,GAAqB,GAAAv1O,KAAD,IAAyB,UAAzB,GAAoCA,KAApC,IAC5B,CAED42O,0BACE,OAAOrB,GAAqB,GAAAv1O,KAAD,IAAyB,YAAzB,GAAsCA,KAAtC,IAC5B,CAEDqvU,SAASpkU,GACP,OAAO,GAAAjL,KAAA,IAAcm2B,IAAIlrB,MAAW,GAAAjL,KAAA,IAAoBiL,EACzD,CAEDqkU,OAAOrkU,GACL,OAAO,GAAAjL,KAAA,IAAkBm2B,IAAIlrB,EAC9B,CAEDs5T,QAAQt5T,GACN,OAAQ,GAAAjL,KAAA,IAAmBiJ,IAAIgC,KAAUjL,KAAKqvU,SAASpkU,IAASjL,KAAKsvU,OAAOrkU,GAC7E,CAEDlE,KAAKqV,GACH,OAAOpc,KAAK6tU,WAAW,YAAhB,GAA6B7tU,KAA7B,SAA6BA,KAAaoc,GAClD,CAGDqW,SAAS88S,EAAMC,GAEb,GAAI91M,GAAW61M,GACb,GAAAvvU,KAAA,IAAckJ,IAAIqmU,EAAKtkU,KAAMskU,QACxB,GAAI/+I,GAAS++I,GAAO,CACzB,IAAK71M,GAAW81M,GACd,MAAM,IAAI5vT,MAAJ,+CAAkD2vT,EAAlD,mBACD,GAAIA,IAASC,EAAKljU,WACvB,MAAM,IAAIsT,MAAJ,sCAAyC2vT,EAAzC,gBAAqDA,IAG7D,GAAAvvU,KAAA,IAAckJ,IAAIqmU,EAAMC,EACzB,MACCxvU,KAAKyvU,gBAAgBF,EAExB,CAEDE,gBAAgBn/T,GACd,MAAMixD,EAAUr+D,OAAOq+D,QAAQjxD,GAE/B,IAAK,IAAI/N,EAAI,EAAGA,EAAIg/D,EAAQlhE,OAAQkC,IAAK,CACvC,MAAO0I,EAAMnG,GAAQy8D,EAAQh/D,GAE7B,GAAIm3H,GAAW50H,GAEb,GAAA9E,KAAA,IAAckJ,IAAI+B,EAAMnG,OACnB,CACL,MAAMi8H,EAAMyvD,GAAS1rL,GAAQA,EAAO6B,GAAU7B,GAE9C,GAAImG,IAAS81H,EACX,MAAM,IAAInhH,MAAJ,sCAAyC3U,EAAzC,gBAAqD81H,IAIzD,GAAA/gI,KAAA,IAAcm2B,IAAIlrB,IACpB,GAAAjL,KAAA,IAAcslG,OAAOr6F,GAGvB,GAAAjL,KAAA,IAAkBkJ,IAAI+B,EAAM81H,EAC7B,CACF,CACF,CAGD2uM,mBAAmBjoS,GACbA,GACF,GAAAznC,KAAA,GAAwBynC,EAE3B,CAEDkoS,UAAUvgF,GACR,GAAApvP,KAAA,GAAeovP,GAAUzlD,GAC1B,CAEDimI,cAActwJ,GACZ,GAAAt/K,KAAA,GAAmBs/K,EACpB,CAEDuwJ,UAAUx8S,GACR,GAAArzB,KAAA,GAAeqzB,GAEfA,EAAOZ,UACR,CAGDq9S,YAAYr4J,EAAUmhE,EAAkBpD,GACtC,GAAAx1O,KAAA,GAAiBy3K,EAASstJ,UAC1B,GAAA/kU,KAAA,GAAwBy3K,EAASxiK,SACjC,GAAAjV,KAAA,GAAuB,MAEvBA,KAAK6vU,UAAU,GAAA7vU,KAAA,IAAeqzB,QAxZlC,SAA0BojL,EAA1B,EAGGxhM,EAASnE,EAAQszT,GAAS,IAHO,OAClC/wS,EADkC,QAElC6/N,GAC2B,EAC3B,MAAMyqE,EAAWzqE,EAAQ9vO,OAAOw6S,IAChC4P,GAAY18T,GACZ08T,GAAYpJ,GAEZ,IAAK,IAAIniU,EAAI,EAAGA,EAAI07T,EAASt9T,OAAQ4B,IAAK,CACxC,MAAM,MACJsuP,EADI,MAEJ3sP,EAFI,KAGJqH,GACE0yT,EAAS17T,GACPs7T,EAAetoT,GAAW,GAAKrR,EAAM4W,WAAavY,EAClD67T,EAAcj4F,GAAgB56N,GAC9B8kU,EAAWx/E,EAAM/lB,SACvB+I,GAAWziO,EAAQysT,GAAc,IAAMN,GAAa5pS,EAAQ08S,EAAUtC,IAAqBxuQ,GAAW4+P,GAAmBpnH,EAAUpjL,EAAQ4rC,EAAS6+P,EAAaP,OACjK,MAAM,KACJjiT,GACEm7L,EAASpjL,OAAO67N,UAAU6gF,EAASjrU,MAEjCkrU,EAAY10T,EAAKmmT,WAAUhhT,GAAKA,EAAEmO,GAAG,YAE3C,IAAmB,IAAfohT,EAAkB,CACpB,MAAM/kU,EAAO46N,GAAgBvqN,EAAKrX,MAAM,EAAG+rU,GAAW1mU,KAAI,CAACo4B,EAAGz/B,IAAY,IAANA,EAClEy/B,EAAEr+B,QAAQ,mBAAoB,IAAMq+B,IAAG76B,KAAK,MAEzCu9T,EAAQn5T,GAGXm5T,EAAQn5T,GAAMrK,KAAKk9T,GAFnBsG,EAAQn5T,GAAQ,CAAC6yT,EAIpB,CACF,CACF,CAsXGmS,CAAiBjwU,KAAD,GAAOA,KAAP,OAAuBA,KAAvB,OAA8CA,KAA9C,OAAmEA,KAAnE,KAvdpB,SAAsB0kB,EAAtB,EAGGzP,EAASnE,GAAQ,IAHK,OACvBuiB,EADuB,QAEvB6/N,GACkB,EAClBs6E,GAAY18T,GAEZ,IAAK,IAAI7O,EAAI,EAAGA,EAAIixP,EAAQ7yP,OAAQ4B,IAAK,CACvC,MAAM,OACJmZ,EADI,MAEJxX,EAFI,KAGJqH,GACEioP,EAAQjxP,GAEZ,GAAImZ,EAAO4wN,OAAQ,CACjB,MAAM8xF,EAAcj4F,GAAgB56N,GACpCsoO,GAAWziO,EAAQmE,GAAW,GAAKrR,EAAM4W,WAAavY,GAAG,IAAMg7T,GAAa5pS,EAAQjY,EAAOovN,SAAUijG,IAAqB,QAAC,KACzHt1H,EADyH,OAEzHhgL,EAFyH,MAGzHv0B,EAHyH,KAIzHqH,GAJwH,QAKnH,CACLiG,KAAMq8T,GAAal6S,EAAQ8E,GAC3BggL,KAAMA,EAAK7uM,IAAIgkU,IACfn1S,SACAv0B,MAAOA,EAAM4W,WACbiL,OAAQxa,EAAKqB,WACbrB,KAAMA,EAAKqB,WACXksM,QAASslH,EAZ+G,KAc3H,CACF,CACF,CAybGoS,CAAalwU,EAAD,GAAOA,KAAP,OAAuBA,KAAvB,OAA8CA,KAA9C,KAtbhB,SAAsBy2M,EAAtB,EAGGxhM,EAASnE,GAAQ,IAHY,OAC9BuiB,EAD8B,QAE9B6/N,GACkB,EAClB,MAAMyqE,EAAWzqE,EAAQ9vO,OAAOq6S,IAChC+P,GAAY18T,GAEZ,IAAK,IAAI7O,EAAI,EAAGA,EAAI07T,EAASt9T,OAAQ4B,IAAK,CACxC,MAAM,OACJwhB,EADI,MAEJ7f,EAFI,KAGJqH,GACE0yT,EAAS17T,GACbsxO,GAAWziO,EAAQmE,GAAW,GAAKrR,EAAM4W,WAAavY,GAAG,IAAMg7T,GAAa5pS,EAAQ5P,EAAO+mN,SAAUijG,IAAqBxuQ,IACxH,MAAMggC,EAAOw3G,EAASo3H,WAAW,sBAAuB74J,GAAa,CAAC,EAAG/1G,EAAS,CAChF/tD,KAAMq8T,GAAal6S,EAAQ4rC,EAAQ9mC,WAErC,OAAO,cAAcs9M,GACnBh/N,YAAYggM,EAAUrzM,GACpB4a,MAAMy4L,EAAUrzM,EAAO67F,EAAM4mI,GAAgB56N,GAAOg0D,EAAQh0D,KAAKqB,WAClE,EAHH,KAOH,CACF,CA8ZG6jU,CAAanwU,KAAD,GAAOA,KAAP,OAAuBA,KAAvB,OAA8CA,KAA9C,KAGZ,MAAOowU,GAAcltU,OAAOihB,KAAP,GAAYnkB,KAAZ,KAAiC60B,KAAKw4S,IAE3D,GAAI+C,EAAY,CACd,MAAOC,GAAantU,OAAOihB,KAAK,GAAAnkB,KAAA,IAAoBowU,IAAav7S,KAAKw4S,IAElEgD,GACF,GAAArwU,KAAA,GAAuB,IAAImc,WAAW,CAACrF,SAASs5T,EAAY,IAAKt5T,SAASu5T,EAAW,MAExF,CAGDrwU,KAAKswU,oBAAoB13F,IAAqB,GAAA54O,KAAA,IAAe2zO,UAAU1+N,QAAQ6L,GAAGmjN,IAChF,GAAAjkO,KAAA,IAAe2zO,UAAUiF,iBAAiBtvO,KAAI,QAAC,WAC/CtD,GAD8C,SAE1CA,EAAWsG,UAF+B,IAEjBgpO,IAAqBE,GAEpDx1O,KAAK0vU,mBAxYT,SAA2Bj5H,EAAUh/B,GACnC,MAAMuwJ,EAAWvxH,EAASk4H,qBACpBn+E,EAAY8tE,GAAkB7nH,EAAUh/B,EAASstJ,SAAUttJ,EAASxiK,SACpE01L,EAAa6lD,EAAU33B,SAAW23B,EAAU33B,OAAO03G,YAAc//E,EAAU33B,OAAO23G,YAExF,IAAK7lI,EACH,OAAOq9H,EAGT,MAAM,cACJ3uG,EADI,YAEJC,GACE0uG,GAAY,CAAC,EACjB,OAAOvxH,EAAS28B,iBAAiB,kBAAmB,CAAC,CACnDzoC,aACA0uB,gBACAC,gBAEH,CAsX2Bm3G,CAAkBzwU,KAAMy3K,GACjD,CAGD64J,sBAA2E,IAAhB96F,EAAgB,uCACzE,GAAAx1O,KAAA,GADyE,uDAApCs1O,IAErC,GAAAt1O,KAAA,GAAuBw1O,GACvB,MAAMk7F,ElNphBH,SAA+B3kI,GAAiC,IAArBypC,EAAqB,uDAAJ,CAAC,EAClE,MAAMxvL,EAAQ,IAAI9iD,OAAOihB,KAAK2vN,OAAmB5wO,OAAOihB,KAAKqxN,IAC7D,OAAOzpC,EAAW3oL,QAAO/a,IAAM29C,EAAMk1C,SAAS7yF,IAC/C,CkNihBmBsoU,CAAsB,GAAA3wU,KAAD,OAAyBA,KAAzB,KAEjC0wU,EAAQrwU,QACV0mC,GAAEntB,KAAF,oCAAoC82T,EAAQ7pU,KAAK,MAAjD,sCAEH,ECjiBH,mBACE,WAAoB89C,GAApB,MACEk1F,EAAAA,KAAAA,OAAO,YADW95I,EAAAA,OAAAA,GAEnB,CAyBH,OA5BwC0+H,EAAAA,GAAAA,IAAAA,EAAAA,GAKtCv7H,OAAAA,eAAI0tU,EAAAA,UAAA,QAAK,KAAT,WACE,OAAO5wU,KAAKukE,UACb,kCAGSqsQ,EAAAA,UAAAA,WAAV,SAAqB3zL,GACnB,IAAMmC,EAAevF,EAAAA,UAAM0D,WAAU1zI,KAAA,KAACozI,GAEtC,OADCmC,EAAapF,QAAUiD,EAAW73I,KAAKpF,KAAK2kD,QACtCy6F,CACR,EAEDwxL,EAAAA,UAAAA,SAAAA,WACQ,MAAoC5wU,KAAlCw+I,EAAQ,WAAEC,EAAW,cAAE95F,EAAM,SACrC,GAAI65F,EACF,MAAMC,EAGR,OADAz+I,KAAKq+I,iBACE15F,CACR,EAEDisR,EAAAA,UAAAA,KAAAA,SAAKxtU,GACHy2I,EAAAA,UAAMz0I,KAAIyE,KAAA,KAAE7J,KAAK2kD,OAASvhD,EAC3B,EACH,CAAC,CA5BD,CAAwC86I,ICVhC,GAAYt0I,MAAK,QACjB09B,GAA0DpkC,OAAM,eAArCoiL,GAA+BpiL,OAAM,UAAlBu1T,GAAYv1T,OAAM,KAQlE,SAAU2tU,GAAqD3/T,GACnE,GAAoB,IAAhBA,EAAK7Q,OAAc,CACrB,IAAMywU,EAAQ5/T,EAAK,GACnB,GAAIV,GAAQsgU,GACV,MAAO,CAAE5/T,KAAM4/T,EAAO3sT,KAAM,MAE9B,IAYY7T,EAZDwgU,IAagB,kBAARxgU,GAAoBg3B,GAAeh3B,KAASg1K,GAb5C,CACjB,IAAMnhK,EAAOs0S,GAAQqY,GACrB,MAAO,CACL5/T,KAAMiT,EAAK7a,KAAI,SAACpI,GAAQ,SAAMA,EAAI,IAClCijB,KAAI,EAEP,CACF,CAKH,IAAgB7T,EAHd,MAAO,CAAEY,KAAMA,EAAaiT,KAAM,KACnC,CCtBO,OAAYva,MAAK,QAUnB,SAAUmnU,GAAuB5lU,GACnC,OAAO7B,IAAI,SAAA4H,GAAQ,OATvB,SAA2B/F,EAA6B+F,GACpD,OAAOV,GAAQU,GAAQ/F,EAAE,cAAAq0H,EAAAA,GAAAA,IAAC,IAADA,EAAAA,GAAAA,IAAItuH,KAAQ/F,EAAG+F,EAC3C,CAOsB8/T,CAAY7lU,EAAI+F,EAAK,GAC3C,CCfK,SAAU+/T,GAAa9sT,EAAgBvF,GAC3C,OAAOuF,EAAKxE,QAAO,SAAC7O,EAAQ5P,EAAKe,GAAM,OAAE6O,EAAO5P,GAAO0d,EAAO3c,GAAK6O,CAAO,GAAE,CAAC,EAC9E,CCsMK,SAAUogU,SAAiD,oCAAAhgU,EAAAA,GAAAA,UAAAA,GAC/D,IAAMu9L,EAAY4zB,GAAanxN,GACzBu+L,EAAiB2yB,GAAkBlxN,GAEnC,EAA8B2/T,GAAqB3/T,GAA3CigU,EAAW,OAAEhtT,EAAI,OAE/B,GAA2B,IAAvBgtT,EAAY9wU,OAId,OAAOyC,GAAK,GAAI2rM,GAGlB,IAAM39L,EAAS,IAAI0sI,GACjB4zL,GACED,EACA1iI,EACAtqL,EAEI,SAACvF,GAAW,OAAAqyT,GAAa9sT,EAAMvF,EAAO,EAEtCu+H,KAIR,OAAOsyD,EAAkB3+L,EAAOm+L,KAAK8hI,GAAiBthI,IAAqC3+L,CAC5F,CAEK,SAAUsgU,GACdD,EACA1iI,EACA4iI,GAEA,YAFA,IAAAA,IAAAA,EAAAA,IAEO,SAACp0L,GAGNq0L,GACE7iI,GACA,WAaE,IAZQ,IAAApuM,EAAW8wU,EAAW,OAExBvyT,EAAS,IAAIhV,MAAMvJ,GAGrB4uD,EAAS5uD,EAITkxU,EAAuBlxU,aAGlB4B,GACPqvU,GACE7iI,GACA,WACE,IAAM58L,EAAS/O,GAAKquU,EAAYlvU,GAAIwsM,GAChC+iI,GAAgB,EACpB3/T,EAAOyrI,UACLy8C,GACE98C,GACA,SAAC75I,GAECwb,EAAO3c,GAAKmB,EACPouU,IAEHA,GAAgB,EAChBD,KAEGA,GAGHt0L,EAAW73I,KAAKisU,EAAezyT,EAAO3a,SAEzC,IACD,aACSgrD,GAGLguF,EAAWf,UAEd,IAGN,GACDe,IAjCKh7I,EAAI,EAAGA,EAAI5B,EAAQ4B,MAAnBA,EAoCV,GACDg7I,EAEH,CACF,CAMD,SAASq0L,GAAc7iI,EAAsCgjI,EAAqBryL,GAC5EqvD,EACFF,GAAgBnvD,EAAcqvD,EAAWgjI,GAEzCA,GAEH,CCrMK,SAAUC,GACd50L,EACAthI,EACA0gI,GAKA,IAAMy1L,EACJj4M,GAAWojB,IAAmBthI,GAAS0gI,EAElC,CAAE92I,KAAM03I,EAA2EthI,MAAK,EAAE0gI,SAAQ,GACnGY,EAEN,OAAO60L,EACH/3I,IAAQ,SAAC/nL,EAAQorI,SACM,QAArB,EAAA00L,EAAYr0L,iBAAS5mH,IAAAA,GAAAA,EAAAA,KAArBi7S,GACA,IAAIC,GAAU,EACd//T,EAAOyrI,UACLy8C,GACE98C,GACA,SAAC75I,SACiB,QAAhB,EAAAuuU,EAAYvsU,YAAIsxB,IAAAA,GAAAA,EAAAA,KAAhBi7S,EAAmBvuU,GACnB65I,EAAW73I,KAAKhC,EACjB,IACD,iBACEwuU,GAAU,EACU,QAApB,EAAAD,EAAYz1L,gBAAQxlH,IAAAA,GAAAA,EAAAA,KAApBi7S,GACA10L,EAAWf,UACZ,IACD,SAACpmH,SACC87S,GAAU,EACO,QAAjB,EAAAD,EAAYn2T,aAAKkb,IAAAA,GAAAA,EAAAA,KAAjBi7S,EAAoB77S,GACpBmnH,EAAWzhI,MAAMsa,EAClB,IACD,mBACM87S,IACqB,QAAvB,EAAAD,EAAY12L,mBAAWvkH,IAAAA,GAAAA,EAAAA,KAAvBi7S,IAEkB,QAApB,EAAAA,EAAY98O,gBAAQ3R,IAAAA,GAAAA,EAAAA,KAApByuP,EACD,IAGN,IAIDx0L,EACL,CCtJD,IAAM00L,GAAa,SAACtgT,EAAYnuB,GAAe,OAACmuB,EAAI3wB,KAAKwC,GAAQmuB,CAAI,EAgC/D,SAAUwY,KAId,OAAO6vJ,IAAQ,SAAC/nL,EAAQorI,ICmBpB,SAAuBs9C,EAAyDj9J,GACpF,OAAOs8J,GAAQU,GAAcC,EAAaj9J,EAAM1rB,UAAUvR,QAAU,GAAG,GAAO,GAC/E,EDpBGsf,CAAOkyT,GAAY,GAAnBlyT,CAA8B9N,GAAQyrI,UAAUL,EACjD,GACF,CEvCD,SAAS60L,KACP,MAAO,MACR,CAQM,SAASriU,GAAQtE,GAEhB,IAFoB,cAC1B4mU,EAAgBD,IACV,uDAAJ,CAAC,EACH,MAAM9mU,EAAQ,CAAC,EAET0kL,EAAW,WAAa,2BAATx+K,EAAS,yBAATA,EAAS,gBAC5B,MAAM8gU,EAAerrU,GAAUuK,GACzB+gU,EAAaF,IAUnB,OARK/mU,EAAMinU,KACTjnU,EAAMinU,GAAc,CAAC,QAGiBnxU,IAApCkK,EAAMinU,GAAYD,KACpBhnU,EAAMinU,GAAYD,GAAgB7mU,KAAM+F,IAGnClG,EAAMinU,GAAYD,EAC1B,EAWD,OATAtiJ,EAASwiJ,UAAY,WAAa,2BAAThhU,EAAS,yBAATA,EAAS,gBAChC,MAAM8gU,EAAerrU,GAAUuK,GACzB+gU,EAAaF,IAEf/mU,EAAMinU,SAAmDnxU,IAApCkK,EAAMinU,GAAYD,WAClChnU,EAAMinU,GAAYD,EAE5B,EAEMtiJ,CACR,CC8FK,SAAUyiJ,GACdC,EACAC,GAOA,YAPA,IAAAA,IAAAA,EAA+Bl1L,IAK/Bi1L,EAAuB,OAAVA,QAAU,IAAVA,EAAAA,EAAcE,GAEpB14I,IAAQ,SAAC/nL,EAAQorI,GAGtB,IAAIs1L,EAEAv7F,GAAQ,EAEZnlO,EAAOyrI,UACLy8C,GAAyB98C,GAAY,SAAC75I,GAEpC,IAAMovU,EAAaH,EAAYjvU,IAK3B4zO,GAAUo7F,EAAYG,EAAaC,KAMrCx7F,GAAQ,EACRu7F,EAAcC,EAGdv1L,EAAW73I,KAAKhC,GAEnB,IAEJ,GACF,CAED,SAASkvU,GAAex/S,EAAQC,GAC9B,OAAOD,IAAMC,CACd,CCrHK,SAAU0/S,KACd,OAAO74I,IAAQ,SAAC/nL,EAAQorI,GACtB,IAAIl0F,EAAkC,KAErCl3C,EAAe6gU,YAEhB,IAAMC,EAAa54I,GAAyB98C,OAAYn8I,OAAWA,OAAWA,GAAW,WACvF,IAAK+Q,GAAWA,EAAe6gU,WAAa,GAAK,IAAO7gU,EAAe6gU,UACrE3pR,EAAa,SADf,CA8BA,IAAM6pR,EAAoB/gU,EAAeghU,YACnCC,EAAO/pR,EACbA,EAAa,MAET6pR,GAAsBE,GAAQF,IAAqBE,GACrDF,EAAiB33L,cAGnBgC,EAAWhC,aAnCV,CAoCF,IAEDppI,EAAOyrI,UAAUq1L,GAEZA,EAAW34L,SACdjxF,EAAcl3C,EAAoCg1C,UAErD,GACF,CCvGD,mBAgBE,WAAmBh1C,EAAiCkhU,GAApD,MACEl5L,EAAAA,KAAAA,OAAO,YADU95I,EAAAA,OAAAA,EAAiCA,EAAAA,eAAAA,EAf1CA,EAAAA,SAA8B,KAC9BA,EAAAA,UAAoB,EACpBA,EAAAA,YAAmC,KAkBvC25L,GAAQ7nL,KACV9R,EAAK45L,KAAO9nL,EAAO8nL,OAEtB,CAgEH,OAxF8Cl7D,EAAAA,GAAAA,IAAAA,EAAAA,GA2BlCu0M,EAAAA,UAAAA,WAAV,SAAqB/1L,GACnB,OAAOj9I,KAAKizU,aAAa31L,UAAUL,EACpC,EAES+1L,EAAAA,UAAAA,WAAV,WACE,IAAM70L,EAAUn+I,KAAKkzU,SAIrB,OAHK/0L,IAAWA,EAAQ/B,YACtBp8I,KAAKkzU,SAAWlzU,KAAK+yU,kBAEhB/yU,KAAKkzU,QACb,EAESF,EAAAA,UAAAA,UAAV,WACEhzU,KAAK0yU,UAAY,EACT,IAAAG,EAAgB7yU,KAAI6yU,YAC5B7yU,KAAKkzU,SAAWlzU,KAAK6yU,YAAc,KACxB,OAAXA,QAAW,IAAXA,GAAAA,EAAa53L,aACd,EAMD+3L,EAAAA,UAAAA,QAAAA,WAAA,WACMjqR,EAAa/oD,KAAK6yU,YACtB,IAAK9pR,EAAY,CACfA,EAAa/oD,KAAK6yU,YAAc,IAAI14L,GACpC,IAAMg5L,EAAUnzU,KAAKizU,aACrBlqR,EAAW/nC,IACThhB,KAAK6R,OAAOyrI,UACVy8C,GACEo5I,OACAryU,GACA,WACEf,EAAKqzU,YACLD,EAAQj3L,UACT,IACD,SAACpmH,GACC/1B,EAAKqzU,YACLD,EAAQ33T,MAAMsa,EACf,IACD,WAAM,SAAKs9S,WAAW,MAKxBrqR,EAAWixF,SACbh6I,KAAK6yU,YAAc,KACnB9pR,EAAaoxF,GAAaY,MAE7B,CACD,OAAOhyF,CACR,EAMDiqR,EAAAA,UAAAA,SAAAA,WACE,OAAOK,KAAsBrzU,KAC9B,EACH,CAAC,CAxFD,CAA8Cw9I,ICM9C,IAAM81L,GAAyC,CAC7Cx+J,UAAW,WAAM,WAAI52B,EAAkB,GA4EnC,SAAUr3F,GACdj8C,EACA6mF,QAAA,IAAAA,IAAAA,EAAAA,IAEQ,IAAAqjF,EAAcrjF,EAAM,UAC5B,OAAOmoG,IAAQ,SAAC/nL,EAAQorI,GACtB,IC1FgCs2L,ED0F1Bp1L,EAAU22B,IAChBk5B,GAAUpjM,GC3FsB2oU,ED2FIp1L,EC1F/B,IAAIX,IAAW,SAACP,GAA8B,OAAAs2L,EAAaj2L,UAAUL,EAAW,OD0FtCK,UAAUL,GACzDA,EAAWj8H,IAAInP,EAAOyrI,UAAUa,GACjC,GACF,CE1BK,SAAUq1L,GACdC,EACAC,EACAC,EACAC,GAEID,IAAwBj6M,GAAWi6M,KACrCC,EAAoBD,GAEtB,IAAM/oU,EAAW8uH,GAAWi6M,GAAuBA,OAAsB7yU,EAGzE,OAAO,SAAC+Q,GAA0B,OCb9B,SACJgiU,EACAjpU,GAEA,IAAMmoU,EAAiBr5M,GAAWm6M,GAA2BA,EAA0B,WAAM,OAAAA,CAAuB,EAEpH,OAAIn6M,GAAW9uH,GAINi8C,GAAQj8C,EAAU,CACvBkqK,UAAWi+J,IAIR,SAAClhU,GAA0B,WAAImhU,GAA2BnhU,EAAQkhU,EAAe,CACzF,CDHmCe,CAAU,IAAI70L,GAAiBw0L,EAAYC,EAAYE,GAAoBhpU,EAA3EkpU,CAAsFjiU,EAAO,CAChI,CE7ED,IChBIk9M,GDgBJ,eACE,WAAYtgB,EAAsBC,UAChC70D,EAAAA,KAAAA,OAAO,IACR,CAcH,OAjB+Bpb,EAAAA,GAAAA,IAAAA,EAAAA,GActBs1M,EAAAA,UAAAA,SAAP,SAAgBh8T,EAAWygD,GACzB,YADyB,IAAAA,IAAAA,EAAAA,GAClBx4D,IACR,EACH,CAAC,CAjBD,CAA+Bm6I,IEHlB65L,GAAqC,CAGhDr9K,YAAA,SAAY1uB,EAAqB1+E,OAAkB,oCAAAr4C,EAAAA,EAAAA,GAAAA,UAAAA,GACzC,IAAAqqI,EAAay4L,GAAgB,SACrC,OAAY,OAARz4L,QAAQ,IAARA,OAAQ,EAARA,EAAUob,aACLpb,EAASob,YAAW5kJ,MAApBwpI,GAAQ/b,EAAAA,GAAAA,IAAAA,CAAayI,EAAS1+E,IAAO+1E,EAAAA,GAAAA,IAAKpuH,KAE5CylJ,YAAW,cAAAn3B,EAAAA,GAAAA,IAAC,CAAAyI,EAAS1+E,IAAO+1E,EAAAA,GAAAA,IAAKpuH,IACzC,EACD0lJ,cAAA,SAAcpb,GACJ,IAAAD,EAAay4L,GAAgB,SACrC,QAAgB,OAARz4L,QAAQ,IAARA,OAAQ,EAARA,EAAUqb,gBAAiBA,eAAepb,EACnD,EACDD,cAAUz6I,GCtBZ,eAOE,WAAsB2tM,EAAqCC,GAA3D,MACE70D,EAAAA,KAAAA,KAAM40D,EAAWC,IAAK,YADF3uM,EAAAA,UAAAA,EAAqCA,EAAAA,KAAAA,EAFjDA,EAAAA,SAAmB,GAI5B,CAkIH,OA3IoC0+H,EAAAA,GAAAA,IAAAA,EAAAA,GAW3Bw1M,EAAAA,UAAAA,SAAP,SAAgBl8T,EAAWygD,GACzB,QADyB,IAAAA,IAAAA,EAAAA,GACrBx4D,KAAKg6I,OACP,OAAOh6I,KAITA,KAAK+X,MAAQA,EAEb,IAAM6L,EAAK5jB,KAAK4jB,GACV6qL,EAAYzuM,KAAKyuM,UAmCvB,OAZU,MAAN7qL,IACF5jB,KAAK4jB,GAAK5jB,KAAKk0U,eAAezlI,EAAW7qL,EAAI40C,IAK/Cx4D,KAAKomF,SAAU,EAEfpmF,KAAKw4D,MAAQA,EAEbx4D,KAAK4jB,GAAK5jB,KAAK4jB,IAAM5jB,KAAKm0U,eAAe1lI,EAAWzuM,KAAK4jB,GAAI40C,GAEtDx4D,IACR,EAESi0U,EAAAA,UAAAA,eAAV,SAAyBxlI,EAA2B2lI,EAAW57Q,GAC7D,YAD6D,IAAAA,IAAAA,EAAAA,GACtDw7Q,GAAiBr9K,YAAY83C,EAAUhsM,MAAMiP,KAAK+8L,EAAWzuM,MAAOw4D,EAC5E,EAESy7Q,EAAAA,UAAAA,eAAV,SAAyBI,EAA4BzwT,EAAS40C,GAE5D,QAF4D,IAAAA,IAAAA,EAAAA,GAE/C,MAATA,GAAiBx4D,KAAKw4D,QAAUA,IAA0B,IAAjBx4D,KAAKomF,QAChD,OAAOxiE,EAITowT,GAAiBp9K,cAAchzI,EAEhC,EAMMqwT,EAAAA,UAAAA,QAAP,SAAel8T,EAAUygD,GACvB,GAAIx4D,KAAKg6I,OACP,OAAO,IAAIp6H,MAAM,gCAGnB5f,KAAKomF,SAAU,EACf,IAAM5qE,EAAQxb,KAAKs0U,SAASv8T,EAAOygD,GACnC,GAAIh9C,EACF,OAAOA,GACmB,IAAjBxb,KAAKomF,SAAgC,MAAXpmF,KAAK4jB,KAcxC5jB,KAAK4jB,GAAK5jB,KAAKk0U,eAAel0U,KAAKyuM,UAAWzuM,KAAK4jB,GAAI,MAE1D,EAESqwT,EAAAA,UAAAA,SAAV,SAAmBl8T,EAAUw8T,GAC3B,IACIC,EADAC,GAAmB,EAEvB,IACEz0U,KAAK0uM,KAAK32L,EAOX,CANC,MAAOxV,GACPkyU,GAAU,EAIVD,EAAajyU,GAAQ,IAAIqd,MAAM,qCAChC,CACD,GAAI60T,EAEF,OADAz0U,KAAKi7I,cACEu5L,CAEV,EAEDP,EAAAA,UAAAA,YAAAA,WACE,IAAKj0U,KAAKg6I,OAAQ,CACV,IAAEp2H,EAAkB5jB,KAAhB,GAAEyuM,EAAczuM,KAAL,UACb+nK,EAAY0mC,EAAS,QAE7BzuM,KAAK0uM,KAAO1uM,KAAK+X,MAAQ/X,KAAKyuM,UAAY,KAC1CzuM,KAAKomF,SAAU,EAEf0zD,GAAUiuB,EAAS/nK,MACT,MAAN4jB,IACF5jB,KAAK4jB,GAAK5jB,KAAKk0U,eAAezlI,EAAW7qL,EAAI,OAG/C5jB,KAAKw4D,MAAQ,KACbqhF,EAAAA,UAAMoB,YAAWpxI,KAAA,KAClB,CACF,EACH,CAAC,CA3ID,CAAoCkqU,IFPhCW,GAAa,EAGXC,GAAwC,CAAC,EAO/C,SAASC,GAAmBp5L,GAC1B,OAAIA,KAAUm5L,YACLA,GAAcn5L,IACd,EAGV,CAKM,IGnBCpnB,GHoBN,SAAa33B,GACX,IAAM++C,EAASk5L,KAMf,OALAC,GAAcn5L,IAAU,EACnBuzE,KACHA,GAAWnlM,QAAQE,WAErBilM,GAAShlM,MAAK,WAAM,OAAA6qT,GAAmBp5L,IAAW/+C,GAAI,IAC/C++C,CACR,EG5BmBq5L,GH8BpB,SAAer5L,GACbo5L,GAAmBp5L,EACpB,EGhBUs5L,GAAuC,CAGlD1gN,aAAY,eAAC,oCAAAljH,EAAAA,GAAAA,UAAAA,GACH,IAAAqqI,EAAau5L,GAAiB,SACtC,QAAgB,OAARv5L,QAAQ,IAARA,OAAQ,EAARA,EAAUnnB,eAAgBA,IAAariH,WAAA,GAAAytH,EAAAA,GAAAA,IAAC,IAADA,EAAAA,GAAAA,IAAItuH,IACpD,EACD2jU,eAAA,SAAer5L,GACL,IAAAD,EAAau5L,GAAiB,SACtC,QAAgB,OAARv5L,QAAQ,IAARA,OAAQ,EAARA,EAAUs5L,iBAAkBA,IAAgBr5L,EACrD,EACDD,cAAUz6I,GCxBZ,eACE,WAAsB2tM,EAAoCC,GAA1D,MACE70D,EAAAA,KAAAA,KAAM40D,EAAWC,IAAK,YADF3uM,EAAAA,UAAAA,EAAoCA,EAAAA,KAAAA,GAEzD,CA+BH,OAlCmC0+H,EAAAA,GAAAA,IAAAA,EAAAA,GAKvBs2M,EAAAA,UAAAA,eAAV,SAAyBtmI,EAA0B7qL,EAAU40C,GAE3D,YAF2D,IAAAA,IAAAA,EAAAA,GAE7C,OAAVA,GAAkBA,EAAQ,EACrBqhF,EAAAA,UAAMs6L,eAActqU,KAAA,KAAC4kM,EAAW7qL,EAAI40C,IAG7Ci2I,EAAU1mC,QAAQnnK,KAAKZ,MAIhByuM,EAAUumI,aAAevmI,EAAUumI,WAAaF,GAAkB1gN,aAAaq6E,EAAUhsM,MAAMiP,KAAK+8L,OAAW3tM,KACvH,EACSi0U,EAAAA,UAAAA,eAAV,SAAyBtmI,EAA0B7qL,EAAU40C,GAI3D,QAJ2D,IAAAA,IAAAA,EAAAA,GAI7C,MAATA,GAAiBA,EAAQ,GAAgB,MAATA,GAAiBx4D,KAAKw4D,MAAQ,EACjE,OAAOqhF,EAAAA,UAAMq6L,eAAcrqU,KAAA,KAAC4kM,EAAW7qL,EAAI40C,GAKxCi2I,EAAU1mC,QAAQnlC,MAAK,SAAC5zE,GAAW,OAAAA,EAAOprC,KAAOA,CAAE,MACtDkxT,GAAkBD,eAAejxT,GACjC6qL,EAAUumI,gBAAal0U,EAI1B,EACH,CAAC,CAlCD,CAAmCmzU,ICmBnC,cAGE,WAAoBgB,EAAoCryS,QAAA,IAAAA,IAAAA,EAAoBsyS,EAAUtyS,KAAlE,KAAAqyS,oBAAAA,EAClBj1U,KAAK4iC,IAAMA,CACZ,CAgCH,OAHSsyS,EAAAA,UAAAA,SAAP,SAAmBxmI,EAAqDl2I,EAAmBzgD,GACzF,YADsE,IAAAygD,IAAAA,EAAAA,GAC/D,IAAIx4D,KAAKi1U,oBAAuBj1U,KAAM0uM,GAAME,SAAS72L,EAAOygD,EACpE,EAnCa08Q,EAAAA,IAAoBt2L,GAAsBh8G,IAoC1D,CAAC,CArCD,GCpBA,eAkBE,WAAYuyS,EAAgCvyS,QAAA,IAAAA,IAAAA,EAAoBsyS,GAAUtyS,KAA1E,MACEi3G,EAAAA,KAAAA,KAAMs7L,EAAiBvyS,IAAI,YAlBtB7iC,EAAAA,QAAmC,GAOnCA,EAAAA,SAAmB,EAQnBA,EAAAA,gBAAkBe,GAIxB,CA4BH,OAhDoC29H,EAAAA,GAAAA,IAAAA,EAAAA,GAsB3B22M,EAAAA,UAAAA,MAAP,SAAapmR,GACH,IAAA+4G,EAAY/nK,KAAI+nK,QAExB,GAAI/nK,KAAKq1U,QACPttK,EAAQnnK,KAAKouD,OADf,CAKA,IAAIxzC,EACJxb,KAAKq1U,SAAU,EAEf,GACE,GAAK75T,EAAQwzC,EAAOyiR,QAAQziR,EAAOj3C,MAAOi3C,EAAOwJ,OAC/C,YAEMxJ,EAAS+4G,EAAQ1qI,SAI3B,GAFAr9B,KAAKq1U,SAAU,EAEX75T,EAAO,CACT,KAAQwzC,EAAS+4G,EAAQ1qI,SACvB2xB,EAAOisF,cAET,MAAMz/H,CACP,CAlBA,CAmBF,EACH,CAAC,CAhDD,CAAoC05T,ICkCvBI,GAAgB,ICnC7B,uEAkCC,CAAD,OAlCmC72M,EAAAA,GAAAA,IAAAA,EAAAA,GAC1B82M,EAAAA,UAAAA,MAAP,SAAavmR,GACXhvD,KAAKq1U,SAAU,EAUf,IAAMG,EAAUx1U,KAAKg1U,WACrBh1U,KAAKg1U,gBAAal0U,EAEV,IACJ0a,EADIusJ,EAAY/nK,KAAI+nK,QAExB/4G,EAASA,GAAU+4G,EAAQ1qI,QAE3B,GACE,GAAK7hB,EAAQwzC,EAAOyiR,QAAQziR,EAAOj3C,MAAOi3C,EAAOwJ,OAC/C,aAEMxJ,EAAS+4G,EAAQ,KAAO/4G,EAAOprC,KAAO4xT,GAAWztK,EAAQ1qI,SAInE,GAFAr9B,KAAKq1U,SAAU,EAEX75T,EAAO,CACT,MAAQwzC,EAAS+4G,EAAQ,KAAO/4G,EAAOprC,KAAO4xT,GAAWztK,EAAQ1qI,SAC/D2xB,EAAOisF,cAET,MAAMz/H,CACP,CACF,EACH,CAAC,CAlCD,CAAmC45T,IDmCN,CAAkBL,IEjCxC,SAASU,KAA4B,IAAdj9Q,EAAc,uDAAN,KACpC,OAAO3mD,IAEL,IAAKkG,EAAO06T,EAAU1pR,EAAY0lJ,GAAa,CAAC,EAAG,EAAGt0D,GAAaY,MAAOZ,GAAaY,OACvF,OAAO,IAAIyC,IAAW5/C,IACpB/rF,EAAOyrI,UAAU1/C,GAEE,IAAf60O,MACY,IAAV16T,EACF02L,EAAUxzD,cAEVlyF,EAAal3C,EAAOg1C,UAGtB9uC,EAAQ,GAGH,KACc,MAAb06T,IACU,IAAV16T,GACFA,EAAQ,EACR02L,EAAUxzD,gBAGVljI,EAAQ,EACR02L,EAAY6mI,GAAc1mI,UAAS,KACjC72L,EAAQ,EACRgxC,EAAWkyF,aAAX,GACCziF,IAEN,IA1BL,CA8BH,CCjCD,SAASk9Q,GAAI5iT,EAAGC,GACd,OAAOpsB,GAAU,CACfgyB,EAAG7F,MACEnsB,GAAU,CACfgyB,EAAG5F,GAEN,CAED,SAAS4iT,GAAIn6T,GACX,MAAMA,CACP,CAED,SAASo6T,KACR,CASM,SAASC,KAIR,IAJY,MAClBr9Q,EADkB,WAElBs9Q,GAAa,EAFK,YAGlBC,GAAc,GACR,uDAAJ,CAAC,EACH,OAAOC,GAAWA,EAAQ/mI,KAAKe,GAAW2lI,IAAMG,EAAapE,GAAIkE,IAAQzD,GAAqBuD,IAAMlC,GAAc,GAAIuC,EAActD,KAAagD,GAAcj9Q,GAChK,CCvBM,SAASu7D,GAAKk+M,EAAYlrP,GAC/B,MAGMh2E,EAAStB,IAAQ,sCAAIqG,EAAJ,yBAAIA,EAAJ,uBAAe,IAAI0nI,IAAWy4L,IACnD,MAAM72L,EAAer4D,KAASjxE,GAAQwnI,UAAU24L,GAChD,MAAO,KACLllU,EAAOmhU,aAAap8T,GACpBspI,EAAanE,aAAb,CAFF,IAICg0D,KAAK4mI,KANe,GAHP,CACd9D,cAAe,IAAME,IASvB,OAAOlhU,CACR,CCXM,SAAS6jQ,GAAUq9D,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAYvuT,IACtB,MAAMwlB,EAAU46I,GAAMpgK,GAAWA,EAAU8mL,IAAe9mL,GAAW,IAAIpX,YAEzE,GAAI48B,EAAQ7oC,OAAS,EACnB,OAAO0zG,GAAGuiG,EAAIG,SAASo3H,WAAW,YAAa3kS,IAGjD,MAAMgtS,EAAe5/H,EAAIG,SAASo3H,WAAW,eAAgB3kS,GAC7D,OAAOotK,EAAIr7J,OAAO4wJ,SAASsqI,UAAUD,EAAa5pU,YAAY2iM,KAAK3lM,IAAIwpB,GAAK2gN,GAAa3gN,EAAG,kCAA5F,GAEH,CCJM,SAASsjT,GAAOnE,EAAY37H,GACjC,OAAOviF,GAAKk+M,GAAY,KACtB,IAAIl/T,EAAMsjU,EAAoBC,EAAuBC,EAAoBC,EAEzE,MAAMnsT,EAAU,MAACvpB,EAAW,GAAI,GAAI,QAAIA,GAClCyvP,EAAQ,CAA+F,QAA7Fx9O,EAAOujM,EAAIwjB,MAAM28G,kBAAoBngI,EAAIwjB,MAAM48G,mBAAqBpgI,EAAIwjB,MAAM68G,iBAAgC,IAAT5jU,OAAkB,EAASA,EAAK6jU,QAAsD,QAA5CP,EAAqB//H,EAAIwjB,MAAM+8G,eAA4C,IAAvBR,OAAgC,EAASA,EAAmBO,QAAoE,QAA1DN,EAAwBhgI,EAAIwjB,MAAMg9G,0BAA0D,IAA1BR,OAAmC,EAASA,EAAsBM,QAAsD,QAA5CL,EAAqBjgI,EAAIwjB,MAAMonG,eAA4C,IAAvBqV,OAAgC,EAASA,EAAmBK,QAAgD,QAAtCJ,EAAkBlgI,EAAIwjB,MAAMi9G,YAAsC,IAApBP,OAA6B,EAASA,EAAgBt1U,KAC/nBy8T,EAAWptE,EAAMntO,QAAOnL,GAAKA,IAEnC,OAAK0lT,EAASt9T,OAIPi2M,EAAI0gI,WAAWrZ,GAAU1uH,KAAK3lM,IAAIsV,IACvC,IAAIq4T,GAAe,EAEnB,IAAK,IAAIh1U,EAAI,EAAGA,EAAIsuP,EAAMlwP,OAAQ4B,IAC5By3H,GAAW62H,EAAMtuP,MACnBooB,EAAQpoB,GAAK2c,IAASq4T,IAI1B,OAAO5sT,CAAP,KAZO0pF,GAAG1pF,EAGZ,GAYH,CAMM,SAASg3E,GAAM4wO,EAAY37H,GAChC,OAAOviF,GAAKk+M,GAAYvuT,GAAW4yL,EAAIr7J,OAAO4wJ,SAASuqI,SAASnnI,KAAK3lM,IAAIknB,GA5C3E,SAAoB9M,EAApB,GAAqH,IAAvFwzT,EAAkBC,EAAgBC,EAA2BC,EAAgBC,GAAU,EACnH,MAAMC,EAAU7zT,GAAWA,EAAQpX,WAE7BkrU,EAAa5zT,GAAMA,EAAGtX,aAAeirU,EAE3C,MAAO,CACLE,YAAkC,OAArBP,QAAkD,IAArBA,OAA8B,EAASA,EAAiB5tU,KAAIknB,GAAK5mB,MAAM4G,QAAQggB,GAAKA,EAAE,GAAKA,EAAEwnL,QAASm/H,GAAkB,IAAIv0M,KAAK40M,GAC3KE,WAAYL,GAAkB,IAAIz0M,KAAK40M,GACvCG,QAAqB,OAAZL,QAAgC,IAAZA,OAAqB,EAASA,EAAQhrU,cAAgBirU,EACnFK,iBAAkBR,GAA6B,IAAIx0M,KAAK40M,GAE3D,CAiC+EK,CAAWn0T,EAAS8M,OACnG,CC/BM,SAASsnT,GAAW7F,EAAY37H,GACrC,OAAOviF,GAAKk+M,GAAYvuT,IACtB,IAEE,MAAMwlB,EAAU46I,GAAMpgK,GAAWA,EAAU8mL,IAAe9mL,GAAW,IAAIpX,YAEzE,GAAI48B,EAAQ7oC,OAAS,EAAG,CACtB,MAAMu0Q,EAAYt+D,EAAIG,SAASo3H,WAAW,YAAa3kS,GACvD,OAAOotK,EAAIr7J,OAAO4wJ,SAASksI,UAAUnjE,GAAW3lE,KAAK3lM,IAAI4sU,GAAgB,CAACthE,EAAWshE,KACtF,CAED,MAAMA,EAAe5/H,EAAIG,SAASo3H,WAAW,eAAgB3kS,GAC7D,OAAOotK,EAAIr7J,OAAO4wJ,SAASsqI,UAAUD,EAAa5pU,YAAY2iM,KAAK3lM,IAAIsrQ,GAAa,CAACA,EAAWshE,KAGjG,CAFC,MAAO16T,GACP,OAAOu4F,GAAG,MAACjzG,OAAWA,GACvB,IAEJ,CClBM,SAASi3U,GAAU9F,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAYr9D,GAAat+D,EAAIr7J,OAAO4wJ,SAASmsI,UAAU/oI,KAAK3lM,IAAI0uU,IAAYA,GAAW,CAAC,GAAGpjE,EAAUtoQ,gBAClH,CCjBM,SAAS2rU,GAAgBhqI,GAC9B,OAAOA,EAAIgB,KAAK3lM,IAAI,QAAEwpB,GAAF,SAASA,CAAT,IACrB,CACM,SAASolT,GAAU/sU,GACxB,MAAO,CAAC8mU,EAAY37H,IAAQviF,GAAKk+M,GAAY,sCAAI/gU,EAAJ,yBAAIA,EAAJ,uBAAa+mU,GAAgB9sU,EAAGmrM,KAAQplM,GAAxC,GAC9C,CCJD,MAAMinU,GAAY,CAChBjpT,MAAO,KADS,GAIlB,SAASkpT,GAAah8T,GACpB,OAAOA,EAAKoxO,MAAQhsD,GAAYplL,EAAKqxO,MAAMr5B,OAAM,IAASh4M,EAAKsrN,YAAS5mO,EAAYsb,EAAK8S,OAC1F,CAwDM,SAASmpT,GAAUpG,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAYr9D,IACtB,IAAI0jE,EAEJ,OAAO1jE,GAA4D,QAA9C0jE,EAAsBhiI,EAAIwjB,MAAM38E,gBAA8C,IAAxBm7L,GAAkCA,EAAoBC,WAAarH,GAAc,CAAC56H,EAAIwjB,MAAM38E,SAASo7L,WAAW3jE,GAAYt+D,EAAIwjB,MAAM38E,SAASq7L,QAAQ5jE,KAAe7gK,GAAG,MAACjzG,OAAWA,GAAhQ,GAEH,CAMM,SAASq8I,GAAS80L,EAAY37H,GACnC,OAAOviF,GAAKk+M,GAAYr9D,GAAat+D,EAAIr7J,OAAO4wJ,SAASwsI,UAAUzjE,GAAW3lE,KAAKM,IAAU,QAAEkpI,EAAeC,GAAjB,SA1B/F,SAAmBpiI,EAAKmiI,EAAeC,GACrC,GAAsB,OAAlBD,QAA4C,IAAlBA,GAA4BA,EAAczsG,OAEtE,OAAOj4H,GAAG,CAAC0kO,OAAe33U,IACrB,GAAmB,OAAf43U,QAAsC,IAAfA,GAAyBA,EAAW1sG,OAAQ,CAC5E,MAAMwsG,EAAUE,EAAWluG,SAC3B,OAAO0mG,GAAc,CAAC56H,EAAIr7J,OAAO4wJ,SAASwsI,UAAUG,EAAQ,IAAIvpI,KAAK3lM,IAAI,QAAEy6B,GAAF,SAAYA,CAAZ,KAAoBgwE,GAAGykO,IACjG,CAGD,OAAOzkO,GAAG,MAACjzG,OAAWA,GACvB,CAe+H63U,CAAUriI,EAAKmiI,EAAeC,EAA/D,IAA6EpvU,IAAI,QAAEmvU,EAAeD,GAAjB,SAtDhL,SAAyBC,EAAeD,GACtC,GAAwB,OAAlBC,QAA4C,IAAlBA,IAA4BA,EAAczsG,OACxE,MAAO,CACLo9C,WAAY,IAIhB,MAAM,KACJrlP,EADI,WAEJqlP,GACEqvD,EAAcjuG,SACZouG,EAAaR,GAAar0S,EAAKoqB,SACrC,MAAO,CACLA,QAASqqR,GAAWJ,GAAaI,EAAQ,KAAOI,EAChDC,cAAeL,GAAWI,EAC1Bz+Q,MAAOi+Q,GAAar0S,EAAKo2B,OACzBgvJ,MAAOivH,GAAar0S,EAAKolL,OACzBigE,aACAb,MAAO6vD,GAAar0S,EAAKwkP,OACzB56P,OAhCkB26P,EAgCEvkP,EAAKukP,WA/BpBA,EAAW3oQ,QAAO,CAACgO,EAAD,KAA2B,IAAlBld,EAAMk0C,GAAY,EAClD,MAAMzjD,EAAMk3U,GAAa3nU,GACnBrN,EAAQg1U,GAAazzR,GAM3B,OAJIzjD,GAAOkC,IACTuqB,EAAMzsB,GAAOkC,GAGRuqB,CAAP,GACC,CAAC,IAuBF9oB,OAAQ2zU,GAAWA,EAAQ,GAC3BM,IAAK/0S,EAAK0kP,eAAex8C,SAASksG,IAAWjpT,QAC7Cs5P,KAAM4vD,GAAar0S,EAAKykP,MACxBE,QAAS0vD,GAAar0S,EAAK2kP,SAC3BzjC,IAAKmzF,GAAar0S,EAAKkhN,MArC3B,IAAsBqjC,CAuCrB,CA4B6MywD,CAAgBN,EAAeD,EAA7D,MAC/K,CACM,MAAMQ,GAAcd,IAAU,CAAC5hI,EAAKs+D,IAAct+D,EAAIr7J,OAAO4wJ,SAASotI,iBAAiB,CAACrkE,MACxF,SAASqkE,GAAiBhH,EAAY37H,GAC3C,OAAOviF,GAAKk+M,GAAYiH,IACtB,IAAIC,EAEJ,OAAuD,QAA/CA,EAAuB7iI,EAAIwjB,MAAM38E,gBAA+C,IAAzBg8L,GAAmCA,EAAqBZ,WAAarH,GAAc,CAAC56H,EAAIwjB,MAAM38E,SAASo7L,WAAWa,MAAMF,GAAa5iI,EAAIwjB,MAAM38E,SAASq7L,QAAQY,MAAMF,KAAcjqI,KAAK3lM,IAAI,QAAE+vU,EAAYC,GAAd,SAA0BD,EAAW/vU,KAAI,CAACmvU,EAAe70U,KACnT,MAAM80U,EAAaY,EAAO11U,GACpB83T,EAAWgd,GAAcA,EAAW1sG,OAAS0sG,EAAWluG,SAAS,GAAGl+N,gBAAaxL,EACvF,IAAIqtD,EAEJ,GAAIsqR,GAAiBA,EAAczsG,OAAQ,CACzC,MAAM5oO,EAAQg1U,GAAaK,EAAcjuG,SAASzmM,KAAKoqB,SAEnD/qD,IAAU+xK,GAAM/xK,KAClB+qD,EAAU/qD,EAEb,CAED,MAAO,CACL+qD,UACA6qR,eAAgB7qR,IAAWutQ,GAC3BA,WAHF,GAb0P,KAkBrP3nN,GAAGmlO,EAAW5vU,KAAI,KAAM,CAC7B0vU,aAAa,MAnBf,GAsBH,CC3FM,SAAS7C,GAAUlE,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAYiE,GAAgB5/H,EAAIwjB,MAAM17L,QAAUk4K,EAAIwjB,MAAM17L,QAAQytK,SAASqqI,GAAcjnI,KAAK3lM,IAAIiwU,GAAaA,EAAUttG,SAAS,IAAI,MAAOl4H,QAAGjzG,IAC7J,CC8DK,SAAU04U,GACdhqI,EACAC,EACAgqI,GAEA,YAFA,IAAAA,IAAAA,EAAAA,KAEI//M,GAAW+1E,GAEN+pI,IAAS,SAAC1mT,EAAG7wB,GAAM,WAAI,SAAC8wB,EAAQ4tF,GAAe,OAAA8uF,EAAe38K,EAAGC,EAAG9wB,EAAG0+G,EAAG,GAAvD,CAAyDqtF,GAAUwB,EAAQ18K,EAAG7wB,IAAI,GAAEw3U,IAC3E,kBAAnBhqI,IAChBgqI,EAAahqI,GAGR7V,IAAQ,SAAC/nL,EAAQorI,GAAe,OC1EnC,SACJprI,EACAorI,EACAuyD,EACAiqI,EACAC,EACAC,EACAC,EACAC,GAGA,IAAMlxS,EAAc,GAEhBsmB,EAAS,EAETrrD,EAAQ,EAER+rM,GAAa,EAKXC,EAAgB,YAIhBD,GAAehnK,EAAOtoC,QAAW4uD,GACnCguF,EAAWf,UAEd,EAGK49L,EAAY,SAAC12U,GAAa,OAAC6rD,EAASwqR,EAAaM,EAAW32U,GAASulC,EAAO/nC,KAAKwC,EAAO,EAExF22U,EAAa,SAAC32U,GAIlBu2U,GAAU18L,EAAW73I,KAAKhC,GAI1B6rD,IAKA,IAAI+qR,GAAgB,EAGpBhsI,GAAUwB,EAAQpsM,EAAOQ,MAAU05I,UACjCy8C,GACE98C,GACA,SAAC8yD,GAGa,OAAZ2pI,QAAY,IAAZA,GAAAA,EAAe3pI,GAEX4pI,EAGFG,EAAU/pI,GAGV9yD,EAAW73I,KAAK2qM,EAEnB,IACD,WAGEiqI,GAAgB,CACjB,QAEDl5U,GACA,WAIE,GAAIk5U,EAKF,IAIE/qR,IAKA,qBACE,IAAMgrR,EAAgBtxS,EAAOtL,QAIzBu8S,EACFrrI,GAAgBtxD,EAAY28L,GAAmB,WAAM,OAAAG,EAAWE,EAAc,IAE9EF,EAAWE,IARRtxS,EAAOtoC,QAAU4uD,EAASwqR,OAYjC7pI,GAGD,CAFC,MAAO95K,GACPmnH,EAAWzhI,MAAMsa,EAClB,CAEJ,IAGN,EAaD,OAVAjkB,EAAOyrI,UACLy8C,GAAyB98C,EAAY68L,GAAW,WAE9CnqI,GAAa,EACbC,GACD,KAKI,WACc,OAAnBiqI,QAAmB,IAAnBA,GAAAA,GACD,CACF,CDtDwCK,CAAeroU,EAAQorI,EAAYuyD,EAASiqI,EAAW,IAC/F,CEpCK,SAAUU,KACd,YCGuD,KAAAV,EDHvC,KCGuCA,EAAAA,KAChDD,GAASr8L,GAAUs8L,GADtB,IAAmDA,CDFxD,CEmDK,SAAU9uU,SAAO,oCAAAuG,EAAAA,GAAAA,UAAAA,GACrB,OAAOipU,KAAYr3U,GAAKoO,EAAMmxN,GAAanxN,IAC5C,CCxDK,SAAUkpU,SAAgB,oCAAAx7T,EAAAA,GAAAA,UAAAA,GAC9B,IAAM6vL,EAAY4zB,GAAazjN,GAC/B,OAAOg7K,IAAQ,SAAC/nL,EAAQorI,IAIrBwxD,EAAY9jM,GAAOiU,EAAQ/M,EAAQ48L,GAAa9jM,GAAOiU,EAAQ/M,IAASyrI,UAAUL,EACpF,GACF,CC9DD,IAAIo9L,GAAe,KA4BZ,SAASrC,GAAQ/F,EAAY37H,GAClC,OAAOviF,GAAKk+M,GAAY,IAAMoI,GAAetmO,GAAGsmO,KAAiB/jI,EAAIwjB,MAAM17L,QA3B7E,SAAuBk4K,GACrB,OAAOA,EAAIwjB,MAAM17L,QAAQytK,SAAStqI,UAAU0tI,KAAK3lM,IAAIi4D,GAAWA,EAAQ5hD,QAAO,CAACq4T,EAAD,KAA2B,IAAhB92U,EAAKo5U,GAAW,EAKxG,OAJIA,EAAMtuG,SACRgsG,EAAQsC,EAAM9vG,SAAS,GAAGl+N,YAAcgqM,EAAIG,SAASo3H,WAAW,eAAgB3sU,EAAIgQ,KAAK,KAGpF8mU,CAAP,GACC,CAAC,KACL,CAmBsFuC,CAAcjkI,GAAKrH,KAAKmrI,GAAU,CAAC,IAAMrmO,GAAG,CAAC,IAAIk7F,KAAK3lM,IAAI80B,IAC7Ii8S,GAAej8S,EACRA,OAEV,CC/BD,SAASo8S,GAAalkI,EAAKs+D,GACzB,IAAI6lE,EAEJ,OAAQ7lE,GAAsD,QAAxC6lE,EAAmBnkI,EAAIwjB,MAAM4gH,aAAwC,IAArBD,GAA+BA,EAAiBE,OAASrkI,EAAIwjB,MAAM4gH,MAAMC,OAAO/lE,GAAa7gK,QAAGjzG,IAAYmuM,KAAK3lM,IAAIqxU,GAAqB,OAAXA,QAA8B,IAAXA,GAAqBA,EAAO3uG,OAASxqC,GAAYm5I,EAAOnwG,SAAS,IAAIpxN,UAAU,EAAGk9L,EAAIskI,OAAOF,MAAMr4R,UAAU7nC,iBAAc1Z,IACpV,CAOM,SAASijC,GAAKkuS,EAAY37H,GAC/B,OAAOviF,GAAKk+M,GAAYvuT,GAAW4yL,EAAIr7J,OAAO4wJ,SAASisI,WAAWp0T,GAASurL,KAAKM,IAAU,QAAEqlE,EAAWshE,GAAb,SAA+BhF,GAAc,CAACn9N,GAAG,CACzI6gK,YACAshE,iBACE5/H,EAAIr7J,OAAO4wJ,SAAS1uD,SAASy3H,GAAY4lE,GAAalkI,EAAKs+D,IAH2B,IAGZtrQ,IAAI,SAAE,UAClFsrQ,EADkF,aAElFshE,GACC/4L,EAAU09L,GAHqE,QAGtD,CAC1BjmE,YACAshE,eACA/4L,WACA09L,WAPgF,MASnF,CCpBM,SAASC,GAAYtiI,EAASrtM,GACnC,MAAO,CAAC8mU,EAAY37H,IAAQviF,GAAKk+M,EAAY9mU,EANxC,SAAqBmrM,EAAKkC,GAC/B,MAAM4qF,EAAY9sF,EAAIG,SAASo4H,mBAAmBv4H,EAAIsjB,eAAez6C,SAAUq5B,GACzEvtM,EAAOm4R,GAAaA,EAAU/iS,OAAS+iS,EAAU,GAAK5qF,EAC5D,OAAOlC,EAAIwjB,MAAM7uN,EAClB,CAEiD8vU,CAAYzkI,EAAKkC,GAAUlC,EAAK27H,GACjF,CACM,SAAS+I,GAAWv1T,EAAQo1H,GACjC,OAAO29D,GAAWsiI,GAAYtiI,GAASshB,GAAS,IAAMpgG,GAAqB,OAAVogG,QAA4B,IAAVA,OAAmB,EAASA,EAAMr0M,IAAWq0M,EAAMr0M,KAAYsuF,GAAG8mC,IACtJ,CCXM,MAAM+7L,GAAUoE,GAAW,UAAW,ICW7C,SAASC,GAAe3kI,EAAKwjB,EAAO5hD,GAClC,OAAQx+C,GAAqB,OAAVogG,QAA4B,IAAVA,OAAmB,EAASA,EAAMohH,YAAchjK,EAAO73K,OAAS6wU,GAAc,CAACn9N,GAAGmkE,GAGvH4hD,EAAMqhH,WAAW/B,MAAMlhK,GAAQ+2B,KAAKe,IAAW,IAAMj8F,GAAGmkE,EAAO5uK,KAAI,IAAM,WAAUwwN,EAAMshH,OAAOhC,MAAMlhK,KAAYnkE,GAAG,CAAC,GAAI,GAAI,MAAMk7F,KAAK3lM,IAAIknB,GAZ/I,SAAe8lL,EAAf,GAAgD,IAA3Bp+B,EAAQgjK,EAAW5/D,GAAQ,EAC9C,OAAO4/D,EAAU5xU,KAAI,CAAC03C,EAAGp9C,KAAJ,CACnBmD,KAAMuvM,EAAIG,SAASo3H,WAAW,OAAQ31J,EAAOt0K,IAC7Cy3U,SAAUr6R,GAAKA,EAAEgrL,OAAShrL,EAAEwpL,SAAW,KACvC8wC,MAAOA,EAAM13Q,GAAOqoO,SAAS,SAEhC,CAMmJhlO,CAAMqvM,EAAK9lL,KAC9J,CAEM,SAAS8qT,GAAa9iI,GAC3B,OAAOsiI,GAAYtiI,GAASshB,GAAS,IAAM/lH,GAAG2lB,GAAqB,OAAVogG,QAA4B,IAAVA,OAAmB,EAASA,EAAMohH,aAC9G,CACM,SAASA,GAAU1iI,GACxB,OAAOsiI,GAAYtiI,GAAS,CAACshB,EAAOxjB,IAAQ,IAAMA,EAAIr7J,OAAOu9J,GAAS+iI,iBAAiBtsI,KAAKM,IAAU1lL,GAAOoxT,GAAe3kI,EAAKwjB,EAAOjwM,OACzI,CACM,SAASwxT,GAAS7iI,GACvB,OAAOsiI,GAAYtiI,GAAS,CAACshB,EAAOxjB,IAAQvvM,GAAQ2yH,GAAqB,OAAVogG,QAA4B,IAAVA,OAAmB,EAASA,EAAMohH,WAAajD,GAAgBgD,GAAe3kI,EAAKwjB,EAAO,CAAC/yN,KAAUgtG,GAAG,OAC1L,CACM,MAAMynO,GAAgBR,GAAW,gBAAiB,MAC5CO,GAAiBP,GAAW,YAAa,IC1B/C,SAAS7uS,GAAMqsK,GACpB,OAAOsiI,GAAYtiI,GAASshB,GAAS,IAAMpgG,GAAqB,OAAVogG,QAA4B,IAAVA,OAAmB,EAASA,EAAM3tL,OAAS2tL,EAAM3tL,QAAQ8iK,KAAK3lM,IAAI03C,GAAKA,EAAEirL,SAAS,SAAUl4H,GAAG,OACxK,CCLM,MAAM6iO,GAAU6E,GAAkB,kBAC5BH,GAAeI,GAAuB,kBACtCL,GAAWM,GAAmB,kBAC9BH,GAAgBI,GAAwB,kBACxCL,GAAiBM,GAAyB,kBAC1CX,GAAYY,GAAoB,kBAChC3vS,GAAQ4vS,GAAgB,kBCW9B,SAASC,GAAQ/J,EAAY37H,GAClC,OAAOviF,GAAKk+M,GAAYgK,IACtB,MAAMz7G,EAAMy7G,EAAK3yU,KAAIsa,GAAMmyJ,GAAOnyJ,KAElC,OAAO48M,EAAIngO,QAAUi2M,EAAIwjB,MAAMoiH,WAAa5lI,EAAIwjB,MAAMqiH,UAAUC,SAAShD,MAAM54G,GAAKvxB,KAAK3lM,IAAI+yU,GAlBjG,SAAmB77G,EAAK67G,GACtB,MAAMznT,EAAS4rM,EAAIl3N,KAAI,CAACsa,EAAIhgB,KAAL,CACrB04U,IAAKD,EAAKz4U,GAAOqoO,SAAS,MAC1BroN,KACA1iB,IAAK0iB,EAAGtX,eACNuoB,MAAK,CAAC/B,EAAGC,IAAMA,EAAEnP,GAAGirB,IAAI/b,EAAElP,MACxB4mB,EAAM5V,EAAOv0B,OAAS,EAC5B,OAAOu0B,EAAOtrB,KAAI,CAACm9K,EAAO7iL,IAAUoxK,GAAayR,EAAO,CACtD81J,SAAU34U,IAAU4mC,EAAMy5L,GAAUrvM,EAAOhxB,EAAQ,GAAGggB,GACtD44T,SAAU/1J,EAAM7iK,GAChBhgB,WAEH,CAMwG64U,CAAUj8G,EAAK67G,MAAUtoO,GAAG,GAAjI,GAEH,CACM,SAASlqF,GAAIooT,EAAY37H,GAC9B,OAAOviF,GAAKk+M,GAAY,KAAO37H,EAAIwjB,MAAMoiH,WAAa5lI,EAAIwjB,MAAMqiH,UAAUC,SAASj4T,OAAO8qL,KAAKM,IAAUprL,GAAQmyL,EAAIr7J,OAAOkhS,SAASH,QAAQ73T,EAAK7a,KAAI,QACpJ4H,MAAO0S,IAD6I,SAEhJA,CAFgJ,OAEzIta,IAAIy9J,GAAQA,EAAK3jJ,QAAO,QAAC,IACpCk5T,GADmC,SAE/BA,CAF+B,QAGtC,CACM,SAASrzU,GAAIgpU,EAAY37H,GAC9B,OAAOviF,GAAKk+M,GAAYruT,GAAM0yL,EAAIr7J,OAAOkhS,SAASH,QAAQ,CAACjmK,GAAOnyJ,KAAMqrL,KAAK3lM,IAAI+yU,GAAQA,EAAK,OAC/F,CC/BM,SAAS1C,GAAO1H,EAAY37H,GACjC,OAAOviF,GAAKk+M,GAAYqK,GAAOhmI,EAAIr7J,OAAOkhS,SAASO,UAAUJ,EAAIA,KAAKrtI,KAAK3lM,IAAIhI,GAAS0zK,GAAa,CACnG1zK,SACCg7U,OACJ,CACM,SAASK,GAAY1K,EAAY37H,GACtC,OAAOviF,GAAKk+M,GAAYruT,GAAM0yL,EAAIr7J,OAAOkhS,SAASlzU,IAAI2a,GAAIqrL,KAAKM,IAAU+sI,GAAOhmI,EAAIr7J,OAAOkhS,SAASxC,OAAO2C,OAC5G,CCLM,SAASjlN,GAASulN,EAAQt7R,GAI/BsH,YAAW,KACTh/B,QAAQE,UAAUC,MAAK,KACrB6yT,GAAQ,IACPh1T,OAAMpM,IACH8lC,EACFA,EAAQ9lC,GAERnB,QAAQmB,MAAMA,EACf,GAPH,GASC,EACJ,CCNM,SAASkhU,GAAUzK,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAYqK,GAAOA,GAAOA,EAAIvyU,KAAKiiO,OAXjD,SAAuB11B,EAAKvsM,GAC1B,MAAMo0I,EAAU,IAAIyyL,GAAgB7mU,GACpC,OAAOo0I,EAAQ8wD,KAAKM,IAAU1vK,IAAYy2K,EAAIwjB,MAAMoiH,WAAa5lI,EAAIwjB,MAAMqiH,UAAUO,UAAU78S,KAAW6xS,IAAI/sU,IAC5G0yH,IAAS,KACP1yH,EAAKqnO,QAAUrnO,EAAKvB,MAAMgC,KAAK4mO,OAAS7tF,EAAQ/4I,KAAKT,EAAK6lO,SAASplO,KAAKolO,UAAYrsF,EAAQjC,UAA5F,GADF,IAGEnyG,KACJzgC,IAAIugB,GAAOA,EAAIvgB,KAAI03C,GAAKA,EAAEwpL,aAC3B,CAGyDqyG,CAAcvmI,EAAKgmI,EAAIvyU,KAAKygO,UAAYz2H,GAAG,KACpG,CCdM,SAAS+oO,GAAUjuS,GACxB,OAAO,WAAc,2BAAVhf,EAAU,yBAAVA,EAAU,gBACnB,GAAqB,IAAjBA,EAAMxvB,OACR,MAAM,IAAIuf,MAAM,sCAGlB,IAAI9O,EAAS+e,EAAM,GAEnB,IAAK,IAAI5tB,EAAI,EAAGA,EAAI4tB,EAAMxvB,OAAQ4B,IAC5B4sC,EAAIhf,EAAM5tB,GAAI6O,KAChBA,EAAS+e,EAAM5tB,IAInB,OAAO6O,CACR,CACF,CCHM,MAAMisU,GAAQD,IAAU,CAAChqT,EAAGC,IAAMD,EAAEhS,GAAGiS,KAejCiqT,GAAQF,IAAU,CAAChqT,EAAGC,IAAMD,EAAE/R,GAAGgS,KCc9C,SAASkqT,GAAW3mI,EAAK2oF,EAAY7iR,EAAM8gU,GACzC,MAAM,UACJC,EADI,cAEJjhC,EAFI,gBAGJkhC,EAHI,cAIJC,GA5CJ,SAAoB/mI,EAAK2oF,EAAYi+C,GACnC,IAAIhhC,EAAgB5lG,EAAIG,SAASo3H,WAAW,WACxCuP,EAAkB,GAClBC,EAAgB/mI,EAAIG,SAASo3H,WAAW,WACxCsP,GAAY,EAEhB,GAAIvzU,MAAM4G,QAAQ0sU,GAAQ,CAExBE,EAAkBF,EAAM95T,QAAO,QAAC,MAC9B+lP,GAD6B,SAExBA,GAAS81B,GAAc91B,EAAMroP,GAAGm+Q,EAFR,IAG/Bk+C,EAAYC,EAAgBx6M,MAAK,QAAC,OAChCihI,GAD+B,SAE3BA,GAAUA,EAAOx4B,OAFU,IAGjCgyG,EAAgB/mI,EAAIG,SAASo3H,WAAW,UAAWuP,EAAgBh6T,QAAO,QAAC,GACzEQ,GADwE,SAEpEA,EAAGgL,GAlBM,qBAgB2D,IAEjDjP,QAAO,CAAC7O,EAAD,SAAS,OACvC+yP,GAD8B,SAE1B/yP,EAAOynC,KAAKsrN,EAFc,GAEL,IAAI92O,GAAG,KAElC,MAAMuwT,EAASF,EAAgBh6T,QAAO,QAAC,OACrCygP,GADoC,SAEhCA,IAAWA,EAAOx4B,OAFc,IAIlCiyG,EAAOj9U,SACT67S,EAAgB5lG,EAAIG,SAASo3H,WAAW,UAAWkP,MAASO,EAAOh0U,KAAI,QAAC,OACtEu6P,GADqE,SAEjEA,CAFiE,MAI1E,CAED,MAAO,CACLs5E,YACAjhC,gBACAkhC,kBACAC,gBAEH,CAQKE,CAAWjnI,EAAK2oF,EAAYi+C,GAChC,OAAOloK,GAAa,CAAC,EAAG54J,EAAM,CAC5BohU,iBAAkBlnI,EAAIG,SAASo3H,WAAW,UAAWsP,EAAY,EAAIJ,GAAM,IAAIhwT,GAAG,GAAI3Q,EAAK6/R,YAAYruR,IAAIsuR,KAC3GA,gBACAkhC,kBACAC,iBAEH,CAsCD,SAASI,GAAannI,EAAtB,GAAmF,IAAvDl6L,GAAOy6L,EAAS6mI,EAAUC,GAAgB1+C,GAAa,EACjF,MAAMjjL,EAASihO,GAAW3mI,EAAK2oF,EAAY7iR,EAAMshU,EAAS,IAC1D,OAAO1oK,GAAah5D,EAtCtB,SAAqBijL,EAAYjjL,EAAQ4hO,GAIvC,MAAM/mI,EAAU+mI,GAAY,GACtBC,GAAa7hO,EAAOqhO,cAAcn9T,SAClC49T,EAAiBjnI,EAAQvtM,KAAI,QAAC,OAClCw6R,EADkC,SAElCp6B,EAFkC,cAGlCC,GAHiC,SAI7Bs1B,EAAWn+Q,GAAG6oP,GAAiBqzE,GAAMl5C,EAAQp6B,EAASxoP,IAAI+9Q,EAAWrxQ,IAAI+7O,KAAmB1lC,EAJ/D,IAK7B85G,EAAgBD,EAAen+T,QAAO,CAACkK,EAAKzmB,IAAUymB,EAAI0uB,KAAKn1C,IAAQ,IAAI2pB,GAAG,IAC9EixT,EAAennI,EAAQl3L,QAAO,CAACkK,EAAD,SAAM,OACxCi6Q,GADkC,SAE9Bj6Q,EAAI0uB,KAAKurP,EAFqB,GAEZ,IAAI/2Q,GAAG,IAC/B,MAAO,CACL8wT,YACAE,gBACAE,gBAAiBJ,EAAY7hO,EAAOqhO,cAAczvT,IAAIowT,EAAapwT,IAAImwT,IAAkB95G,GACzFptB,QAASA,EAAQvtM,KAAI,CAAC,EAInB1F,KAJkB,IAAC,OACpBkgS,EADoB,SAEpBp6B,EAFoB,cAGpBC,GAHmB,QAIP,CACZu0E,SAAUp6C,EAAOj2Q,IAAI67O,GAAUnxN,KAAKoxN,GACpCm6B,SACAp6B,WACAC,gBACAw0E,OAAQL,EAAel6U,GATJ,IAUjBwf,QAAO,QAAC,OACV0gR,GADS,SAEJA,EAAO5jR,QAFH,IAGX89T,eAEH,CAI6BI,CAAYn/C,EAAYjjL,EAAQ66F,GAAU,CACpE+9D,UAAWx4P,EAAKw4P,UAChBypE,aAAcjiU,EAAKiiU,aACnB/1D,WAAYo1D,EAASz5U,MAAM,GAAGqF,KAAI,CAACy9B,EAAGnjC,IAAUq5U,GAAW3mI,EAAK2oF,EAAY7iR,EAAKksQ,WAAW1kR,GAAQmjC,KACpG42S,iBAEH,CAGD,SAASW,GAAShoI,EAAKs+D,GACrB,OAAOs8D,GAAc,CAAC56H,EAAIwjB,MAAM0lG,SAAS0d,MAAMtoE,GAAYt+D,EAAIwjB,MAAM0lG,SAAS3oH,QAAQ+9D,KAAa3lE,KAAK3lM,IAAI,IAAyB,IAAvB4zU,EAAOqB,GAAgB,EAC/HC,EAAa,KAEjB,GAAID,EAAWvyG,OAAQ,CACrB,MACEzkO,OAAQu8R,EADJ,SAEJp6B,EAFI,cAGJC,GACE40E,EAAW/zG,SACfg0G,EAAaloI,EAAIG,SAASo3H,WAAW,cAAe,CAClD/pC,SACAp6B,WACAC,iBAEH,CAED,MAAO,CAAC60E,EAAa,CAACA,GAAc,KAAM,CAACtB,GAAQ,GAAnD,IAEH,CAED,MAAMuB,GAAgBC,KAAcA,EAEpC,SAASC,GAAYpuF,GACnB,MAAO,CAACA,EAAMjnP,KAAI2O,IAAMA,IAAIs4O,EAAMntO,OAAOq7T,IAC1C,CAGD,SAASG,GAAatoI,EAAKs+D,GAA4C,IAAjCiqE,EAAiC,uDAAd,CAAC,YACxD,IAAIC,EAEJ,MAAOC,EAAWC,GAAeL,GAAYE,EAAiBv1U,KAAIqqB,IAChE,IAAIsrT,EAAIC,EAER,OAAiC,QAAxBD,EAAK3oI,EAAIr7J,OAAOtnB,UAAuB,IAAPsrT,OAAgB,EAASA,EAAGE,eAAiD,QAA/BD,EAAa5oI,EAAIwjB,MAAMnmM,UAA+B,IAAfurT,OAAwB,EAASA,EAAWhC,MAA1K,MAEKkC,EAAcC,GAAkBV,GAAYE,EAAiBv1U,KAAIqqB,IACtE,IAAI2rT,EAEJ,OAAwC,QAAhCA,EAAchpI,EAAIwjB,MAAMnmM,UAAgC,IAAhB2rT,OAAyB,EAASA,EAAYC,QAA9F,KAEF,OAAOrO,GAAc,CAA8C,QAA5C4N,EAAqBxoI,EAAIwjB,MAAMjjB,eAA4C,IAAvBioI,GAAiCA,EAAmBjoI,QAAUP,EAAIwjB,MAAMjjB,QAAQA,QAAQ+9D,GAAa7gK,GAAGuiG,EAAIG,SAASo3H,WAAW,wBAAyBmR,EAAY3+U,OAAS6wU,GAAc8N,EAAY11U,KAAI2O,GAAKA,EAAE28P,MAAe7gK,GAAG,IAAKsrO,EAAeh/U,OAAS6wU,GAAcmO,EAAe/1U,KAAI2O,GAAKA,EAAE28P,MAAe7gK,GAAG,MAAMk7F,KAAK3lM,IAAI,IAA4B,IAA1Bk2U,EAAKtC,EAAOqC,GAAc,EAC5aE,GAAc,EACdC,GAAiB,EACrB,MAAM7oI,EAAU2oI,EAAIvzG,SAAS,MAC7B,MAAO,CAACp1B,EAAUjtM,MAAM4G,QAAQqmM,GAAWA,EAAU,CAACA,GAAW,KAAMkoI,EAAUz1U,KAAI/G,GAAKA,EAAI+zM,EAAIG,SAASo3H,WAAW,oBAAsBqP,IAAQuC,KAAcL,EAAa91U,KAAI/G,GAAKA,EAAI+zM,EAAIG,SAASo3H,WAAW,kCAAoC0R,IAAWG,KAAnQ,IAEH,CAkBM,SAAS71T,GAAIooT,EAAY37H,GAC9B,MAAMuoI,EAAmBvoI,EAAIG,SAASo4H,mBAAmBv4H,EAAIsjB,eAAez6C,SAAU,YACtF,OAAOprD,GAAKk+M,GAAYvuT,IACtB,IAAIi8T,EAAmBC,EAEvB,OAAO1O,GAAc,CAAC56H,EAAIr7J,OAAOukR,SAAS3/R,QAAQnc,GAAUg2G,GAAsD,QAA1CimN,EAAoBrpI,EAAIwjB,MAAMjB,cAA0C,IAAtB8mH,OAA+B,EAASA,EAAkB9/S,UAAY65F,GAA0D,QAA9CkmN,EAAsBtpI,EAAIwjB,MAAM0lG,gBAA8C,IAAxBogB,OAAiC,EAASA,EAAoB//S,SAAW++S,GAAatoI,EAAK5yL,EAASm7T,GAAoBP,GAAShoI,EAAK5yL,KAAWurL,KAAKM,IAAU,QAAE1vK,EAASq9S,GAAX,SAAsBhM,GAAc,CAACn9N,GAAGl0E,GAAUk0E,GAAGmpO,GAAQ5mI,EAAIr7J,OAAO4jI,MAAMogH,cAA9E,IAA+F31R,IAAIwH,GAAU2sU,GAAannI,EAAKxlM,KAAjiB,GAEH,CC9KD,SAAS+uU,GAAYvpI,GACnB,OAAOA,EAAIG,SAASo3H,WAAW,UAChC,CAED,SAASllT,GAAW2tL,EAApB,GAAgF,IAAtD2lG,EAAa6jC,EAAiBC,EAAWC,GAAa,EAC9E,MAAMC,EAAgB3pI,EAAIG,SAASo3H,WAAW,UAAW5xB,EAAYjmI,QACrE,MAAO,CACLimI,cACA8jC,YACAC,aACAF,kBACAG,gBAEH,CAWD,SAASC,GAAkB5pI,EAAKs+D,GAC9B,OAAOs8D,GAAc,CAAC56H,EAAIwjB,MAAM0lG,SAASvjB,YAAYrnC,GAAYt+D,EAAIwjB,MAAM0lG,SAASsgB,gBAAgBlrE,GAAYt+D,EAAIwjB,MAAMjB,OAAOwlH,aAAazpE,KAAa3lE,KAAK3lM,IAAI,QAAE2yS,EAAa6jC,EAAiBzB,GAAhC,QAAkD,CAACA,EAAc,CAAC,CAACpiC,EAAa6jC,EAAiBD,GAAYvpI,GAAMupI,GAAYvpI,KAA/H,IACrK,CAED,SAAS6pI,GAAe7pI,EAAKs+D,GAC3B,MAAMhhP,EAAO3yB,GAAS,CAACA,EAAO,CAAC,CAAC4+U,GAAYvpI,GAAMupI,GAAYvpI,GAAMupI,GAAYvpI,GAAMupI,GAAYvpI,MAElG,OAAO58E,GAAW48E,EAAIwjB,MAAMjB,OAAOh5L,SAAWy2K,EAAIwjB,MAAMjB,OAAOh5L,QAAQ+0O,GAAW3lE,KAAK3lM,IAAI,QAAC,MAC1FrI,GADyF,SAErF2yB,EAAK3yB,EAFgF,KAErEy4H,GAAW48E,EAAIwjB,MAAMjB,OAAOwlH,cAAgB/nI,EAAIwjB,MAAMjB,OAAOwlH,aAAazpE,GAAW3lE,KAAK3lM,IAAIrI,GAAS2yB,EAAK3yB,MAAW8yG,GAAGngF,EAAK0iL,EAAIG,SAASo3H,WAAW,UAC9K,CAED,SAASuS,GAAqB9pI,EAAKs+D,GAAmC,IAAxBxkB,EAAwB,uDAAd,CAAC,YACvD,MAAMovE,EAAWpvE,EAAQ9mP,KAAIqqB,IAC3B,IAAIsrT,EAAIoB,EAER,OAAiC,QAAxBpB,EAAK3oI,EAAIr7J,OAAOtnB,UAAuB,IAAPsrT,OAAgB,EAASA,EAAGqB,iBAAqD,QAAjCD,EAAe/pI,EAAIwjB,MAAMnmM,UAAiC,IAAjB0sT,OAA0B,EAASA,EAAaxgT,QAAlL,IACCzc,QAAOqJ,GAAKitG,GAAWjtG,KAEpB8zT,EAAU,CAACt/U,EAAOmb,IAAS,CAACnb,EAAOmb,EAAK9S,KAAI,QAAC,UACjD2/P,EADiD,KAEjDH,EAFiD,WAGjDE,EAHiD,SAIjDD,GAJgD,QAK5C,CAACD,EAAMC,EAAUE,EAAWD,EALgB,KAQlD,OAAOw2D,EAASn/T,OAASq5H,GAAW48E,EAAIwjB,MAAMjB,OAAOh5L,SAAWqxS,GAAc,CAAC56H,EAAIwjB,MAAMjB,OAAOh5L,QAAQ+0O,MAAe4qD,EAASl2T,KAAI2O,GAAKA,EAAE28P,OAAc3lE,KAAK3lM,IAAI,SAAE,MAClKrI,MACIu+T,GAF4J,SAE9I+gB,EAAQt/U,EAAOu+T,EAF+H,KAEjH0R,GAAc,CAAC56H,EAAIwjB,MAAMjB,OAAOwlH,aAAazpE,MAAe4qD,EAASl2T,KAAI2O,GAAKA,EAAE28P,OAAc3lE,KAAK3lM,IAAI,QAAErI,KAAUu+T,GAAZ,SAA0B+gB,EAAQt/U,EAAOu+T,EAAzC,KAAuD2gB,GAAe7pI,EAAKs+D,EACpO,CAED,SAAS4rE,GAAmBlqI,EAAKs+D,GAE/B,OAAOt+D,EAAIwjB,MAAMjB,OAAOh5L,QAAQ+0O,GAAW3lE,KAAK3lM,IAAIm3U,IAClD,MAAMrkU,EAAOqkU,EAAYx/U,MAAQw/U,EAAYrkU,KAAOqkU,EAAY,GAC1Dx/U,EAAQw/U,EAAYx/U,OAASw/U,EAAY,GAE/C,IAAKrkU,GAAQA,EAAK2iD,QAChB,MAAO,CAAC99D,EAAO,CAAC,CAAC4+U,GAAYvpI,GAAMupI,GAAYvpI,GAAMupI,GAAYvpI,GAAMupI,GAAYvpI,MAGrF,MAAM,UACJ2yD,EADI,KAEJH,EAFI,WAGJE,EAHI,SAIJD,GACE3sP,EACJ,MAAO,CAACnb,EAAO,CAAC,CAAC6nQ,EAAMC,EAAUE,EAAWD,IAA5C,IAEH,CAkBM,SAASnpO,GAAQoyS,EAAY37H,GAClC,MAAMuoI,EAAmBvoI,EAAIG,SAASo4H,mBAAmBv4H,EAAIsjB,eAAez6C,SAAU,YAChFuhK,EAAqB7B,IAAiD,IAA5BA,EAAiBx+U,QAAwC,aAAxBw+U,EAAiB,IAClG,OAAO9qN,GAAKk+M,GAAYvuT,GAAW4yL,EAAIr7J,OAAO4wJ,SAAS+oE,UAAUlxP,GAASurL,KAAKM,IAAUqlE,IACvF,IAAI+qE,EAAmBC,EAAqBe,EAE5C,OAAO/rE,EAAYs8D,GAAc,CAACn9N,GAAG6gK,GAAY8rE,EAAqBN,GAAqB9pI,EAAKs+D,EAAWiqE,GAAoBnlN,GAAsD,QAA1CimN,EAAoBrpI,EAAIwjB,MAAMjB,cAA0C,IAAtB8mH,OAA+B,EAASA,EAAkB9/S,SAAW2gT,GAAmBlqI,EAAKs+D,GAAal7I,GAA0D,QAA9CkmN,EAAsBtpI,EAAIwjB,MAAM0lG,gBAA8C,IAAxBogB,OAAiC,EAASA,EAAoB//S,SAAWugT,GAAqB9pI,EAAKs+D,GAAal7I,GAA2D,QAA/CinN,EAAuBrqI,EAAIwjB,MAAM0lG,gBAA+C,IAAzBmhB,OAAkC,EAASA,EAAqB1kC,aAAeikC,GAAkB5pI,EAAKs+D,GAAaurE,GAAe7pI,EAAKs+D,KAAe7gK,GAAG,CAACuiG,EAAIG,SAASo3H,WAAW,aAAc,CAACv3H,EAAIG,SAASo3H,WAAW,SAAU,CAAC,CAACgS,GAAYvpI,GAAMupI,GAAYvpI,GAAMupI,GAAYvpI,GAAMupI,GAAYvpI,OAAn0B,IACEhtM,IAAIwH,GApFV,SAAsBwlM,EAAtB,GAAkF,IAAtDs+D,GAAYypE,GAAejtR,KAAYk3N,KAAe,EAChF,OAAOtzG,GAAa,CAClB4/F,YACAypE,eACA/1D,WAAYA,EAAWh/Q,KAAIypB,GAAKpK,GAAW2tL,EAAKvjL,MAC/CpK,GAAW2tL,EAAKllJ,GACpB,CA8EmBqsR,CAAannI,EAAKxlM,OACrC,CCtGM,SAAS8vU,GAAe3O,EAAY37H,GACzC,OAAOviF,GAAKk+M,GAAY/lI,GAAcA,GAAcA,EAAU7rM,OAAkB6wU,GAAchlI,EAAU5iM,KAAIsrQ,GAAat+D,EAAIr7J,OAAOukR,SAAS3/R,QAAQ+0O,MAA9E7gK,GAAG,KAC3E,CCDD,MAAMksO,GAAgBp2T,GCHf,SAASg3T,GAAwBvqI,EAAKwqI,GAC3C,MAAMC,EAAezqI,EAAI1vL,GAAGo6T,SAAW1qI,EAAI1vL,GAAGo6T,SAAW1qI,EAAI1vL,GAAGw6S,SAC1D6f,EAAsB,CAACF,EAAaG,cAAeH,EAAaI,YAAaJ,EAAaK,eAAgBL,EAAaM,iBAC7H,OAAOP,EAAa19T,QAAOi4T,GAAY4F,EAAoBxqT,MAAK6qT,GAAcjG,EAASA,UAAYiG,EAAWhiP,GAAG+7O,EAASA,aAC3H,CCAD,SAASkG,GAAT,GAA+E,IAAzDC,EAAeC,EAAmBjhH,EAAKkhH,GAAkB,EAC7E,MAAMV,EAAW,GAWjB,OAVAQ,EAAcjgV,SAAQ,CAACogV,EAAQ/9U,KACzB+9U,EAAO31G,QACTg1G,EAASpgV,KAAK,CACZ+gV,OAAQA,EAAOn3G,SACfn7J,YAAaoyQ,EAAkB79U,GAAOsoO,kBAAkBvI,SACxD//N,MAAO48N,EAAI58N,GACXs3U,UAAWwG,EAAgBt+T,QAAOw+T,GAAkBA,EAAevG,UAAY76G,EAAI58N,GAAOgrB,GAAGgzT,EAAevG,SAASnqU,KAAK,OAE7H,IAEI8vU,CACR,CAEM,SAASA,GAAS/O,EAAY37H,GACnC,MAAMurI,EAAavrI,EAAIwjB,MAAMknH,UAAY1qI,EAAIwjB,MAAMsnG,SACnD,OAAOrtM,GAAKk+M,GAAY,IAAM4P,EAAWb,SAAW9P,GAAc,CAAC2Q,EAAWC,cAAexrI,EAAIwjB,MAAM+8G,QAAUvgI,EAAIwjB,MAAM+8G,QAAQ2E,gBAAkBznO,GAAG,KAAKk7F,KAAKM,IAAU,IAAM2hI,GAAc,CAAC2Q,EAAWb,SAAS78T,OAAQmyL,EAAIr7J,OAAO47R,QAAUvgI,EAAIr7J,OAAO47R,QAAQqE,YAAcnnO,GAAG,QAAQw7F,IAAU,IAAuB,IAArBprL,EAAM+2T,GAAe,EAC7T,MAAM16G,EAAMr8M,EAAK7a,KAAI,QACnB4H,MAAO0S,IADY,SAEfA,CAFe,IAGrB,OAAOstT,GAAc,CAAC2Q,EAAWb,SAAS5H,MAAM54G,GAAMqhH,EAAWE,mBAAmB3I,MAAM54G,GAAMzsH,GAAGysH,GAAMzsH,GAAG8sO,GAAwBvqI,EAAK4kI,KAAzI,IACE5xU,GAAIi4U,KAAgBxtO,GAAGwtO,GAAY,CAAC,GAAI,GAAI,GAAI,OACrD,CCrBM,MAAMS,GAAYpsK,GAAW,WAAY,OAAQ,WAAY,UCL7D,SAASqsK,GAAkBC,GAChC,OAAOF,GAAUE,EAAIr6S,QAAUq6S,EAAIr6S,OAAO2iM,SAAW03G,EAAIr6S,MAC1D,CCCM,SAASs6S,GAAwBh3U,GACtC,MAAO,CAAC8mU,EAAY37H,IAAQviF,GAAKk+M,GAAY,IAAM9mU,EAAGmrM,GAAKrH,KAAK3lM,GAAI24U,MACrE,CACM,SAASG,GAAiBj4R,EAAQk4R,GAEvC,GAAIA,EAAQC,eAAiBD,EAAQC,cAAcC,mBAAoB,CACrE,MAAMC,EAAQr4R,EAAO7gB,OAAOo7K,KAAK,KAAOv6J,EAAO7gB,OAAOo7K,KAAK,GAAG+9H,aAAet4R,EAAO7gB,OAAOo7K,KAAK,GAAGg+H,YAAY,IAAMv4R,EAAO7gB,OAAOo7K,KAAK,GAAGi+H,cAAgBx4R,EAAO7gB,OAAOo7K,KAAK,GAAGk+H,aAAa,IAE9L,GAAIJ,EACF,OAAOtR,GAAc,CAACn9N,GAAG5pD,GAASk4R,EAAQpzD,QAAUozD,EAAQpzD,QAAQ3jB,aAAev3J,GAAG,MAAOsuO,EAAQC,cAAcC,mBAAmBC,GAAOvzI,KAAK3lM,IAAIk2U,GAAOA,EAAIvzG,SAAS,CACxKpsM,QAAS,OACRA,YAEN,CAGD,OAAOqxS,GAAc,CAACn9N,GAAG5pD,GAASk4R,EAAQpzD,QAAUozD,EAAQpzD,QAAQ3jB,aAAev3J,GAAG,MAAOA,GAAG,OACjG,CCPM,MAAMkrL,GAAakjD,IAAwB7rI,GAAOA,EAAI31B,IAAI9B,MAAM25I,sBCC1DqqB,GAAsBV,IAAwB7rI,GAAOA,EAAI31B,IAAI9B,MAAM05I,4BCCzE,SAASuqB,GAAc7Q,EAAY37H,GACxC,OAAOviF,GAAKk+M,GAAY,IAAMf,GAAc,CAAC56H,EAAIr7J,OAAO4jI,MAAMogH,aAAc3oF,EAAIr7J,OAAO4jI,MAAMgkK,wBAAwB5zI,KAAK3lM,IAAI,QAAE21R,EAAY4jD,GAAd,SAAuCvsI,EAAIG,SAASo3H,WAAW,cAAe5uC,EAAWrxQ,IAAIi1T,GAA7F,MAC/H,CClBM,SAASn5F,GAAcpgN,GAAgC,IAAxBqgN,EAAwB,uDAAJ,GACxD,MAAOo5F,GAASz5S,EAAOo7K,KAAKthM,QAAO7gB,GAAKA,EAAEkgV,eACnCO,GAAS15S,EAAOo7K,KAAKthM,QAAO7gB,GAAKA,EAAEogV,gBACnCM,GAAS35S,EAAOo7K,KAAKthM,QAAO7gB,GAAKA,EAAE2gV,SAC1C,IAAItuE,EAEJ,IAGE,GAAIouE,EAAO,CACT,MAAOnrN,EAAQz7G,GAAQ4mU,EAAMJ,aAC7BhuE,EAAY/8I,EAAO6xH,cAActtO,EAAMutO,EACxC,CAED,IAAKirB,GAAamuE,EAAO,CACvB,MAAOlrN,EAAQz7G,GAAQ2mU,EAAML,YAC7B9tE,EAAY/8I,EAAO6xH,cAActtO,EAAMutO,EACxC,CAGD,IAAKirB,GAAaquE,EAAO,CACvB,MAAOprN,EAAQz7G,GAAQ6mU,EAAME,OAC7BvuE,EAAY/8I,EAAO6xH,cAActtO,EAAMutO,EACxC,CAEF,CADC,MACD,CAED,OAAOirB,CACR,CC3BM,SAASwuE,GAAqB3sI,EAAUtsJ,EAAQmhN,EAAY1lD,GAEjE,MAAMy9H,EAAa5sI,EAAS43H,YAAY,UAFiC,kBAuBzE,OAAO,IAnBP,cAA6BgV,EAG3B5sU,YAAYggM,EAAUtsJ,EAAQmhN,EAAY1lD,GACxC5nM,MAAMy4L,EAAUtsJ,GADgC,sCAEhD,GAAAnqD,KAAA,EAAe4lN,GAAU8jC,GAAc1pP,KAAKspC,OAAQgiO,GAAc,KAClEtrQ,KAAKmzO,cAA2B,OAAXhpL,QAA8B,IAAXA,OAAoB,EAASA,EAAOgpL,aAC7E,CAMGvtB,aACF,OAAO,GAAA5lN,KAAP,EACD,GAIuBy2M,EAAUtsJ,EAAQmhN,EAAY1lD,EACzD,CCNM,SAASyyG,GAAU4Z,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAYruH,GAAastH,GAAc,CAAC56H,EAAI31B,IAAI9B,MAAMw5I,UAAUz0G,GAAYtN,EAAI+rI,QAAQz+H,KAAa3U,KAAKM,IAAU,QAAEplJ,EAAQk4R,GAAV,SAAuBD,GAAiBj4R,EAAQk4R,EAAhD,IAA2D/4U,IAAI,QAAE6gD,EAAQmhN,EAAY1lD,GAAtB,SAAkCw9H,IAAsB93E,GAAcnhN,GAAQssJ,SAAUtsJ,EAAQmhN,EAAY1lD,EAA5G,MAChM,CCHM,SAASl+L,GAASuqT,EAAY37H,GACnC,OAAOviF,GAAKk+M,GAAYruH,GAAastH,GAAc,CAAC56H,EAAI31B,IAAI9B,MAAMn3J,SAASk8L,GAAYtN,EAAI+rI,QAAQz+H,KAAa3U,KAAKM,IAAU,QAAE+zI,EAAajB,GAAf,SAA4BnR,GAAc,CAACn9N,GAAGuvO,GAAcjB,EAAQxpH,OAAOp1M,SAAU2+T,GAAiBkB,EAAY/7T,MAAM4iC,OAAQk4R,IAAhI,IAA6I/4U,IAAI,QAAEg6U,EAAa7/T,GAAS,CAAE6nP,EAAY1lD,IAAtC,SCY3Q,SAAmCnP,EAAUlvL,EAAO9D,EAAQ6nP,EAAY1lD,GAE7E,MAAM29H,EAAkB9sI,EAAS43H,YAAY,eAFwC,8CA2CrF,OAAO,IAvCP,cAA6BkV,EAK3B9sU,YAAYggM,EAAUlvL,EAAO9D,EAAQ6nP,EAAY1lD,GAtCrD,IAAuBoiC,EAAYw7F,EAuC7BxlU,MAAMy4L,EAAUlvL,GADuC,kHAEvD,GAAAvnB,KAAA,EAAe4lN,GAAU8jC,GAAc1pP,KAAKunB,MAAM4iC,OAAO7gB,OAAQgiO,GAAc,KAC/E,GAAAtrQ,KAAA,EAAeyjB,GAAU,IACzB,GAAAzjB,KAAA,GA1CiBgoP,EA0CgBhoP,KAAKunB,MAAMygO,WA1Cfw7F,EA0CG,GAAwBxjV,KAAxB,GAzC7BgoP,EAAW1+O,KAAI,CAACqqO,EAAW/vO,KAChC,IAAI60M,EACAqe,EACJ,MAAMrzM,EAAS+/T,EAAQpgU,QAAO,QAAC,MAC7B+zN,GAD4B,SAExBA,EAAMssG,kBAAoBtsG,EAAMusG,iBAAiB90T,GAAGhrB,EAF5B,IAEoC0F,KAAI,IAEhE,IAFiE,MACrEoxD,GACI,EAUJ,MATsB,WAAlBA,EAAM89I,UACa,qBAAjB99I,EAAMj1C,OACRqxM,EAAep8J,EAAMt+C,KAAK,GACA,oBAAjBs+C,EAAMj1C,SACfgzL,EAAgB/9I,EAAMt+C,KAAK,GAC3B06M,EAAep8J,EAAMt+C,KAAK,KAIvBs+C,CAAP,IAEF,MAAO,CACL+9I,gBACAqe,eACArzM,SACAkwN,YAJF,MAuBE3zO,KAAKmzO,cAA0B,OAAV5rN,QAA4B,IAAVA,OAAmB,EAASA,EAAM4rN,aAC1E,CAMGvtB,aACF,OAAO,GAAA5lN,KAAP,EACD,CAMGyjB,aACF,OAAO,GAAAzjB,KAAP,EACD,CAMGgoP,iBACF,OAAO,GAAAhoP,KAAP,EACD,GAIuBy2M,EAAUlvL,EAAO9D,EAAQ6nP,EAAY1lD,EAChE,CDxDoU+9H,CAA0BlgU,EAAOgzL,SAAU6sI,EAAa7/T,EAAQ6nP,EAAY1lD,EAA/H,MACjR,CElBM,SAASupG,GAAiB8iB,EAAY37H,GAC3C,OAAOviF,GAAKk+M,GAAYnzJ,GAAew3B,EAAI31B,IAAI9B,MAAMu5I,aAAat5I,GAAamwB,KAAKM,IAAUnjM,GAAKkqM,EAAIr7J,OAAO4jI,MAAMn3J,SAAStb,OAC9H,CCEM,SAASw3U,GAAgB3R,EAAY37H,GAC1C,OAAOviF,GAAKk+M,GAAY,SAAC4R,EAAWC,GAAZ,IAAqB3+U,EAArB,uDAA4B,GAA5B,OAAmCmxM,EAAI31B,IAAI9B,MAAMw5I,UAAUwrB,GAAW50I,KAAKM,IAAUplJ,GAAUA,EAAO06J,WAAWj2L,GAAGk1T,GAAW/vO,GAAG,CAAC5pD,KAAWhlD,IAASmxM,EAAIr7J,OAAO4jI,MAAM+kK,gBAAgBz5R,EAAO06J,WAAYi/H,EAAS,CAAC35R,KAAWhlD,MAAhO,GACzB,CAUM,SAASozT,GAAwB0Z,EAAY37H,GAClD,OAAOviF,GAAKk+M,GAAY,KACtB,IAAI8R,EAAW,KACf,OAAOztI,EAAI31B,IAAI9B,MAAM05I,0BAA0BtpH,KAAKM,IAAUplJ,IAC5D,MAAM25R,EAAUC,EACVF,EAAY15R,EAAO06J,WAEzB,OADAk/H,EAAW55R,EAAOgpL,cAAgBhpL,EAAOpjD,KACtB,OAAZ+8U,GAAoBD,EAAUj1T,GAAGk1T,GAAW/vO,GAAG5pD,GAAUmsJ,EAAIr7J,OAAO4jI,MAAM+kK,gBAAgBC,EAAWC,EAAS,CAAC35R,IAAS8kJ,KAAKM,IAAU7nJ,GAAW5kD,GAAK4kD,KAA9J,IAJF,GAOH,CCrBM,SAASs8R,GAAmB/R,EAAY37H,GAC7C,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIr7J,OAAO4jI,MAAM25I,oBAAoBvpH,KAAKM,IAAUplJ,GAAUmsJ,EAAIr7J,OAAO4jI,MAAMn3J,SAASyiC,EAAOgpL,eAAiBhpL,EAAOpjD,UACtJ,CCSM,SAASyxT,GAAkByZ,EAAY37H,GAC5C,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAI31B,IAAI9B,MAAM25I,oBAAoBvpH,KAAKM,IAAUplJ,GAAU+mR,GAAc,CAACn9N,GAAG5pD,GAASmsJ,EAAI+rI,QAAQl4R,EAAOpjD,UAAUwoM,IAAU,QAAEplJ,EAAQk4R,GAAV,SAAuBD,GAAiBj4R,EAAQk4R,EAAhD,IAA2D/4U,IAAI,IAAkC,IAAhC6gD,EAAQmhN,EAAY1lD,GAAY,EAE1P,OADAz7J,EAAOgpL,cAAgBhpL,EAAOpjD,KACvBq8U,GAAqBj5R,EAAOssJ,SAAUtsJ,EAAQmhN,EAAY1lD,EAAjE,MAEH,CCCM,SAASu+F,GAAK8tB,EAAY37H,GAC/B,OAAOviF,GAAKk+M,GAAY,IArB1B,SAAwB37H,GACtB,OAAOviG,GAAG,CACVuiG,EAAIskI,OAAOjb,UAAUskB,aAAe3tI,EAAIG,SAASo3H,WAAW,WAAYv3H,EAAIskI,OAAOjb,UAAUukB,aAAe5tI,EAAIG,SAASo3H,WAAW,WAAYv3H,EAAIskI,OAAOjb,UAAUwkB,aAAe7tI,EAAIG,SAASo3H,WAAW,WAAYv3H,EAAIskI,OAAOjb,UAAUykB,oBAAsB9tI,EAAIG,SAASo3H,WAAW,WAAYv3H,EAAIskI,OAAOjb,UAAU0kB,oBAAsB/tI,EAAIG,SAASo3H,WAAW,WAAYv3H,EAAIskI,OAAOjb,UAAU2kB,aAAehuI,EAAIG,SAASo3H,WAAW,WAClbv3H,EAAIskI,OAAOjb,UAAU4kB,YAAajuI,EAAIskI,OAAOjb,UAAU6kB,kBAAmBluI,EAAIskI,OAAOjb,UAAU8kB,gBAAiBnuI,EAAIskI,OAAOjb,UAAU1tD,kBACtI,CAkBUyyE,CAAepuI,GAAKrH,KAAK3lM,IAAI,QAAE26U,EAAaC,EAAaC,EAAaC,EAAoBC,EAAoBC,EAAaC,EAAaC,EAAmBC,EAAiBxyE,GAA/I,QAAsK,CACxMgyE,cACAC,cACAC,cACAI,cACAC,oBACAC,kBACAxyE,mBACAmyE,qBACAC,qBACAC,cAVkC,MAavC,CCpCD,SAASK,GAAQvhV,GACf,OAAQwG,MAAM4G,QAAQpN,EACvB,CAED,SAASwhV,GAAgBjO,GACvB,OAAOA,EAAUkO,QAAQtjR,UAAU0tI,KAAK3lM,IAAIi4D,GAAWA,EAAQj4D,KAAI,SACjE4H,MAAO0jQ,IACN+J,GAFgE,QAErD,CAAC/J,EAAW+J,EAFyC,MAGpE,CAED,SAASmmE,GAAenO,GACtB,OAAOA,EAAUoO,QAAQxjR,UAAU0tI,KAAK3lM,IAAIi4D,GAAWA,EAAQj4D,KAAI,SACjE4H,MAAO0jQ,IACN0G,GAFgE,QAErD,CAAC1G,EAAW0G,EAFyC,MAGpE,CAuCM,SAASA,GAAM22D,EAAY37H,GAChC,MAAMqgI,EAAYrgI,EAAIwjB,MAAM28G,kBAAoBngI,EAAIwjB,MAAM48G,mBAAqBpgI,EAAIwjB,MAAM68G,UACzF,OAAO5iN,GAAKk+M,GAAY,IAAM0E,EAAYA,EAAUkO,QAvCtD,SAAsBvuI,EAAKqgI,GACzB,OAAOzF,GAAc,CAAC0T,GAAgBjO,GAAYmO,GAAenO,KAAa1nI,KAAK3lM,IAAI,IAAqB,IAAnB07U,EAAQ1pE,GAAW,EAC1G,MAAMxqQ,EAAS,GAmBf,OAlBAwqQ,EAAM/5Q,SAAQ,IAAoB,IAAlB0jV,EAAO3pE,GAAW,EAChCxqQ,EAAOlQ,KAAK,CAACqkV,EAAO,CAClBtmE,MAAOroE,EAAIG,SAASo3H,WAAW,WAC/BvyD,UAFF,IAKF0pE,EAAOzjV,SAAQ,IAAqB,IAAnB2jV,EAAQvmE,GAAW,EAClC,MAAMl4F,EAAQ31K,EAAO2lB,MAAK,QAAEwuT,GAAF,SAAaA,EAAMr2T,GAAGs2T,EAAtB,IAEtBz+J,EACFA,EAAM,GAAGk4F,MAAQA,EAEjB7tQ,EAAOlQ,KAAK,CAACskV,EAAQ,CACnBvmE,QACArD,MAAO,KAEV,IAEIxqQ,CAAP,IAEH,CAgB+Dq0U,CAAa7uI,EAAKqgI,GAdlF,SAAyBA,GACvB,OAAOA,EAAUyE,OAAO75Q,UAAU0tI,KAAK3lM,IAAIi4D,GAAWA,EAAQj4D,KAAI,SAChE4H,MAAO0jQ,IACNxxQ,GAF+D,QAEpD,CAACwxQ,EAAW+vE,GAAQvhV,GAAS,CACzCu7Q,MAAOv7Q,EAAMu7Q,MACbrD,MAAOl4Q,EAAMk4Q,OACX,CACFqD,MAAOv7Q,EAAM,GACbk4Q,MAAOl4Q,EAAM,IAPmD,MASnE,CAI8FgiV,CAAgBzO,GAAa5iO,GAAG,KAC9H,CCzDM,SAASgxO,GAAQ9S,EAAY37H,GAClC,OAAOviF,GAAKk+M,GAAYr9D,GAAat+D,EAAIr7J,OAAO47R,QAAQv7D,QAAQrsE,KAAK3lM,IAAIgyQ,IAAUA,EAAM7kP,MAAK,QAAE3zB,GAAF,SAAYA,EAAK8rB,GAAGgmP,EAApB,KAAmC,CAAC,KAAM,CACtI+J,MAAOroE,EAAIG,SAASo3H,WAAW,WAC/BvyD,MAAO,MACL,OACL,CCJM,MAAMs7D,GAAU6E,GAAkB,WAC5BH,GAAeI,GAAuB,WACtCL,GAAWM,GAAmB,WAC9BH,GAAgBI,GAAwB,WACxCL,GAAiBM,GAAyB,WAC1CX,GAAYY,GAAoB,WAChC3vS,GAAQ4vS,GAAgB,WCA9B,SAASsJ,GAASpT,EAAY37H,GACnC,OAAOviF,GAAKk+M,GAAYnhC,GAAUx6F,EAAIwjB,MAAMwrH,UAAUC,MAAMz0C,GAAQ7hG,KAAK3lM,IAAIk8U,GAAWA,EAAQx5G,OALlG,SAAwBjoM,GACtB,OAAOulK,GAAS7N,GAAU,0BAA2BkO,GAAYlO,GAAU,aAAc13J,EAAK0hT,WAAa1hT,EAAKkkQ,WAAW7zE,WAC5H,CAG0GsxH,CAAeF,EAAQh7G,UAAY,SAC7I,CCoDM,IAAMzvF,GAAQ,IAAIyC,IAAkB,SAACP,GAAe,OAAAA,EAAWf,UAAU,IC9CzE,SAASypM,GAAaxhG,GAE3B,GAAsB,IAAlBA,EAAO9jP,OACT,MAAO,GACF,GAAsB,IAAlB8jP,EAAO9jP,OAChB,OAAO8jP,EAAO,GAIhB,IAAIh8O,EAAO,EAEX,IAAK,IAAIlG,EAAI,EAAGA,EAAIkiP,EAAO9jP,OAAQ4B,IACjCkG,GAAQg8O,EAAOliP,GAAG5B,OAGpB,MAAMqG,EAAS,IAAIkD,MAAMzB,GACzB,IAAIlG,GAAK,EAET,IAAK,IAAImG,EAAI,EAAGA,EAAI+7O,EAAO9jP,OAAQ+H,IAAK,CACtC,MAAM0qB,EAAIqxN,EAAO/7O,GAEjB,IAAK,IAAI7F,EAAI,EAAGA,EAAIuwB,EAAEzyB,OAAQkC,IAC5BmE,IAASzE,GAAK6wB,EAAEvwB,EAEnB,CAED,OAAOmE,CACR,CC5CM,SAASk/U,GAAmB90C,EAAQrtR,GACzC,IAAIoiU,EAIJ,OAAOpiU,EAAOL,QAAO,QACnBs3C,OACEt+C,MAAO,CAAE0pU,GADJ,OAELrgU,EAFK,QAGL+yL,IAJiB,QAMH,cAAZA,GAA2B,CAAC,cAAe,YAAYt9G,SAASz1E,IAAWqgU,EAAYl3T,GAAGkiR,EAN3E,IAMoFnxR,QAAO,CAAC7O,EAAD,KAK1G,IAJJ4pD,OACEt+C,MAAOw4P,GADF,OAELnvP,IAEE,EAOJ,MANe,gBAAXA,EACF3U,EAAOi1U,MAAMnlV,KAAKg0Q,EAAU1lP,SAE5Bpe,EAAOy0M,QAAQ3kN,KAAKg0Q,EAAU1lP,SAGzBpe,CAAP,GACC,CACDi1U,MAtBY,GAuBZniI,WAA+D,QAAlDiiI,EAAwBpiU,EAAO0vN,qBAAqD,IAA1B0yG,OAAmC,EAASA,EAAsB32T,UAAY,IACrJq2L,QAvBc,IAyBjB,CCzBD,MAAMygI,GAAc,IAEpB,SAASC,GAAY3vI,EAAKw6F,GACxB,IAAIi1C,EAAQ,GACRxgI,EAAU,GACd,OAAOjP,EAAIwjB,MAAMjB,OAAOp1M,SAASwrL,KAAKM,IAAU9rL,IAC9C,MAAMq5S,EAAU8oB,GAAmB90C,EAAQrtR,GAGzC,IAAIoiU,EADN,OAAI/oB,EAAQipB,MAAM1lV,QAAUy8T,EAAQv3G,QAAQllN,QAG1C0lV,EAAQA,EAAMp7U,UAAUmyT,EAAQipB,OAChCxgI,EAAUA,EAAQ56M,UAAUmyT,EAAQv3G,SAC7BxxG,GAAG,CACRgyO,QACAG,WAAYppB,EAAQipB,MACpBniI,WAA+D,QAAlDiiI,EAAwBpiU,EAAO0vN,qBAAqD,IAA1B0yG,OAAmC,EAASA,EAAsB32T,UAAY,IACrJq2L,UACA4gI,aAAcrpB,EAAQv3G,WAInBxqE,EAAP,IACEq/L,GAAU,CACZ2L,QACAG,WAAY,GACZtiI,UAAW,IACX2B,UACA4gI,aAAc,KAEjB,CA2BD,SAASC,GAAQ9vI,EAAKw6F,EAAQu0C,GAC5B,OA1BF,SAA0B/uI,EAAKw6F,GAC7B,OAAOx6F,EAAIwjB,MAAMjB,OAAOp1M,SAASwrL,KAAKM,IAAU9rL,IAC9C,IAAI4iU,EAEJ,MAAMx2T,EAAQpM,EAAOL,QAAO,QAC1Bs3C,OACEt+C,MAAO0pU,GADF,OAELrgU,EAFK,QAGL+yL,IAJwB,QAMV,cAAZA,GAA2B,CAAC,cAAe,YAAa,qBAAqBt9G,SAASz1E,IAAWqgU,EAAYl3T,GAAGkiR,EAN1F,IAO5B,OAAOjhR,EAAMxvB,OAAS0zG,IAAwD,QAAnDsyO,EAAyB5iU,EAAO0vN,qBAAsD,IAA3BkzG,OAAoC,EAASA,EAAuBn3T,UAAY,KAAO6rH,EAA7K,IACEq/L,GAAU,KACf,CAaQkM,CAAiBhwI,EAAKw6F,GAAQ7hG,KAAKM,IAAU,IAAM71E,GAAW48E,EAAI31B,IAAI4lK,WAAW7tB,cAX1F,SAAuBpiH,EAAK+uI,GAC1B,MAAMlnM,EAAU,IAAIyyL,QAAgB9vU,GACpC,OAAOq9I,EAAQ8wD,KAAKM,IAAUi3I,GAAYlwI,EAAI31B,IAAI4lK,WAAW7tB,aAAa2sB,EAAU,KAAMW,GAAaQ,KAAY9U,IAAIvtT,IACrHkzG,IAAS,KACPlzG,EAAK9jB,SAAW2lV,GAAc7nM,EAAQ/4I,KAAK+e,EAAK6hU,KAAiB92T,SAAWivH,EAAQjC,UAApF,GADF,IAGEnyG,KACJzgC,IAAIm9U,GAAUd,GAAac,KAC5B,CAGyGC,CAAcpwI,EAAK+uI,GAAY/uI,EAAI31B,IAAI4lK,WAAW9tB,QAAQ4sB,EAAU,QAAQ/7U,IAAI6a,GAAQA,EAAK7a,KAAIjB,GAAKA,EAAE6mB,YACjN,CAyBM,SAASy3T,GAAc1U,EAAY37H,GACxC,OAAOviF,GAAKk+M,GAAYnhC,GAAUx6F,EAAIr7J,OAAOqqS,UAAUD,SAASv0C,GAAQ7hG,KAAKM,IAAU81I,GAAYA,EAxBrG,SAAwB/uI,EAAKw6F,EAAQu0C,GACnC,OAAOnU,GAAc,CAACkV,GAAQ9vI,EAAKw6F,EAAQu0C,GAAWY,GAAY3vI,EAAKw6F,KAAU7hG,KAAK3lM,IAAI,IAInF,IAJqF6a,GAAM,MAChG4hU,EADgG,UAEhGniI,EAFgG,QAGhG2B,IACK,EACL,MAAMqhI,EAAkB,CAAC,EAUzB,OATAziU,EAAK5iB,SAAQ8G,IACXu+U,EAAgBv+U,IAAK,CAArB,IAEF09U,EAAMxkV,SAAQ8G,IACZu+U,EAAgBv+U,IAAK,CAArB,IAEFk9M,EAAQhkN,SAAQ8G,WACPu+U,EAAgBv+U,EAAvB,IAEK,CACLu7M,YACAijI,gBAAiB3jV,OAAOihB,KAAKyiU,GAF/B,IAKH,CAG+GE,CAAexwI,EAAKw6F,EAAQu0C,GAAYtxO,GAAG,CACvJ6vG,UAAW,IACXijI,gBAAiB,SAEpB,CCxFD,SAASE,GAAWzwI,EAAK+uI,EAAUlhU,GAEjC,OAAO+sT,GAAc/sT,EAAK7a,KAAIjB,GAAKiuM,EAAI31B,IAAI4lK,WAAW/3E,WAAW62E,EAAUh9U,MAAK4mM,KAAK3lM,IAAIsV,GAAUA,EAAOtV,KAAImX,GAAK61L,EAAIG,SAASo3H,WAAW,sBAAuBptT,KAAInX,KAAI03C,GAAKA,EAAEgrL,OAAS11B,EAAIG,SAASo3H,WAAW,UAAW7sR,EAAEwpL,UAAYl0B,EAAIG,SAASo3H,WAAW,aAAYluT,QAAO,CAACkK,EAAKkJ,EAAGnvB,IAAUoxK,GAAanrJ,EAAK,CACzT,CAAC1F,EAAKvgB,IAASmvB,KACb,CAAC,KACN,CAED,SAASi0T,GAAiB1wI,EAAKw6F,EAAQm2C,EAAU9iU,GAC/C,OAAOmyL,EAAIwjB,MAAMjB,OAAOp1M,SAASwrL,KAAKM,IAAU9rL,IAC9C,MAAMq5S,EAAU8oB,GAAmB90C,EAAQrtR,GACrCk6S,EAAWx5S,EAAKf,QAAO/a,GAAKy0T,EAAQipB,MAAM7qP,SAAS7yF,IAAMy0T,EAAQv3G,QAAQrqH,SAAS7yF,KACxF,OAAOs1T,EAASt9T,OAAS0mV,GAAWzwI,EAAK2wI,EAAUtpB,GAAY5iL,EAA/D,IACEq/L,GAAU,CAAC,GAChB,CAMM,SAAS8M,GAAiBjV,EAAY37H,GAC3C,OAAOviF,GAAKk+M,GAAY,CAACnhC,EAAQ3sR,IAASmyL,EAAIr7J,OAAOqqS,UAAUD,SAASv0C,GAAQ7hG,KAAKM,IAAU81I,GAAYA,GAAYlhU,EAAK9jB,OAL9H,SAAwBi2M,EAAKw6F,EAAQu0C,EAAUlhU,GAC7C,OAAO+sT,GAAc,CAAC6V,GAAWzwI,EAAK+uI,EAAUlhU,GAAO6iU,GAAiB1wI,EAAKw6F,EAAQu0C,EAAUlhU,KAAQ8qL,KAAK3lM,IAAI,QAAEugB,EAAKs9T,GAAP,SAAmBnyK,GAAa,CAAC,EAAGnrJ,EAAKs9T,EAAzC,IACjH,CAGsIL,CAAexwI,EAAKw6F,EAAQu0C,EAAUlhU,GAAQ4vF,GAAG,CAAC,OACxL,CCtBD,MAAMqzO,GCcG99I,GAAStlB,GDde,aA+BjC,SAASqjK,GAAe/wI,GACtB,OAhBF,SAA0BA,GAIxB,OAAOA,EAAIr7J,OAAOqsS,UAAUC,sBAAsBt4I,KAAKM,IAAU,IAAM+G,EAAIwjB,MAAMrrB,UAAU+4I,OAAOrjU,SAASorL,IAAUprL,IACnH,MAAMsjU,EAAetjU,EAAK7a,KAAI,QAC5B4H,MAAO4tK,IADqB,SAExBA,CAFwB,IAG9B,OAAO2oK,EAAapnV,OAAS6wU,GAAc,CAACn9N,GAAG0zO,GAG/CnxI,EAAIwjB,MAAMrrB,UAAU+4I,OAAOpO,MAAMqO,GAAcx4I,KAAKe,IAAW,IAAMj8F,GAAG0zO,EAAan+U,KAAI,IAAM,WAAWyqG,GAAG,CAAC,GAAI,IAHlH,IAKH,CAGQ2zO,CAAiBpxI,GAAKrH,KAAKM,IAAU,IAA6B,IAA3Bk4I,EAAcE,GAAa,EACvE,MAAM72U,EAAS,GAmBf,OAlBA22U,EAAalmV,SAAQ,CAACioT,EAAI5lT,MACvB+jV,EAAQ/jV,IAAU,IAAIwf,QAAO49B,GAAKA,EAAEgrL,SAAQzqO,SAAQy/C,IACnD,MAAMguJ,EAAYhuJ,EAAEwpL,SAEpB,GAAIx7B,EAAUw+E,QAAQxhD,OAAQ,CAC5B,MAAMpoN,EAAKorL,EAAUw+E,QAAQhjD,SAASt7M,QAEtC,GAAItL,EAAG2+H,WAAW6kM,IAAe,CAC/B,MAAMQ,EAA0B54I,EAAUnlM,gBAtC7Bu9N,GAsCqCp4B,EAAUnlM,KAAKg+U,OAAS74I,EAAUnlM,KAAKi+U,OAAS94I,EAAUnlM,KAAKk+U,QAAQ72U,KAAK,GAAK89L,EAAUnlM,KAAKqH,KAAK,GACvJJ,EAAOlQ,KAAK,CACV4oT,KACAo+B,YACAhkV,MAAO0yM,EAAIG,SAASo3H,WAAW,yBAA0BjqT,GAAI,IAEhE,CACF,IAdH,IAiBKstT,GAAc,CAACn9N,GAAGjjG,GAASA,EAAOzQ,OAASi2M,EAAIr7J,OAAOqsS,UAAUU,UAAUl3U,EAAOxH,KAAI,QAAC,UAC3Fs+U,GAD0F,SAEtFA,CAFsF,KAExE7zO,GAAG,KAFvB,IAGEzqG,IAAI,QAAE2+U,EAAOC,GAAT,SAAqBD,EAAM3+U,KAAI,CAACy6B,EAAMngC,IAAUoxK,GAAa,CACnEm0C,MAAO++H,EAAOtkV,IACbmgC,IAFK,IAGT,CAEM,SAASokT,GAAclW,EAAY37H,GACxC,OAAOviF,GAAKk+M,GAAY,KACtB,IAAImW,EAEJ,OAAO1uN,GAA4D,QAAhD0uN,EAAuB9xI,EAAIwjB,MAAMrrB,iBAAgD,IAAzB25I,OAAkC,EAASA,EAAqBZ,QAAUH,GAAe/wI,GAAOA,EAAIwjB,MAAMwtH,UAAUa,cAzDnM,SAAoB7xI,GAClB,OAAOA,EAAIwjB,MAAMwtH,UAAUa,gBAAgBl5I,KAAKM,IAAU84I,GAAcnX,GAAc,CAACn9N,GAAGs0O,GAAa/xI,EAAIr7J,OAAOqsS,UAAUU,UAAUK,EAAW/+U,KAAI,QAAE,CAAEvC,GAAJ,SAAcA,CAAd,SAAyBuC,IAAI,QAAE++U,EAAYH,GAAd,SAA0BG,EAAW/+U,KAAI,CAAC,EAAwBg/U,KAAzB,IAAE9+B,EAAIo+B,EAAWhkV,GAAjB,QAA4C,CACrQ4lT,KACArgG,MAAO++H,EAAOI,GACdV,YACAhkV,QAJyN,GAAzC,IAMnL,CAkDkN2kV,CAAWjyI,GAAOviG,GAAG,GAApO,GAEH,CEnED,MAAMy0O,GAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IASpC,SAASC,GAAUnyI,EAAnB,EAAqDoyI,GAAY,IAAxCC,EAAcC,GAA0B,EAC/D,MAAM,QACJnzI,EADI,KAEJ01C,GACEy9F,EAAYC,YACTC,EAAennD,GAAY+mD,EAAWK,WAZ/C,SAAkBzyI,EAAK60C,EAAvB,GAGG,IAH0B,SAC3BuxB,EAD2B,IAE3B14Q,GACC,EACD,MAAO,CAACA,EAAK04Q,EAASnyB,QAAUY,EAAKF,OAASyxB,EAASpyB,SAAWa,EAAKD,MAAQlnP,EAAIgd,KAAKs1L,EAAIskI,OAAO0M,UAAU0B,mBAAqB1yI,EAAIskI,OAAO0M,UAAU2B,iBAAiBrrQ,KAAK4qQ,GAAQr9F,EAAKL,WAAWlnP,SAAWqgO,GACjN,CAO2DilH,CAAS5yI,EAAK60C,EAAMu9F,EAAWS,YAAc,CAACllH,GAASA,IACjH,MAAO,CACLxuB,UACA2zI,aAAa,EACbL,WAAYL,EAAWK,WACvBD,gBACAH,eACAhnD,WACAx2C,OAEH,CAqCM,SAAS+xF,GAAMjL,EAAY37H,GAChC,OAAOviF,GAAKk+M,GAAYr9D,GAAat+D,EAAIwjB,MAAMwtH,UAAU+B,SAAW/yI,EAAIwjB,MAAMwtH,UAAU+B,SAASz0E,GAAW3lE,KAAKM,IAAU6rI,GAAUA,EAAOkO,SAX9I,SAAqBhzI,EAArB,GAEG,IAFuB,MACxBglE,GACC,EACD,OAAKA,EAAMj7Q,OAIJi2M,EAAIwjB,MAAMwtH,UAAUiC,iBAAiBnQ,MAAM99D,EAAMhyQ,KAAI,QAAEq/U,GAAF,SAAoBA,CAApB,KAAmC15I,KAAK3lM,IAAIkgV,GAAeluE,EAAMhyQ,KAAI,CAAC6hP,EAAMvnP,IAAU,CAACunP,EAAMq+F,EAAY5lV,GAAOqoO,SAAS,SAAQ7oN,QAAO2M,KAAUA,EAAK,IAAMgsM,GAAYhsM,EAAK,GAAG/rB,MAAQ+rB,EAAK,GAAG,GAAG05T,aAAYngV,KAAI,QAAEogV,EAAYhB,GAAd,SAA8BD,GAAUnyI,EAAKozI,EAAYhB,EAAzD,OAHvQ30O,GAAG,GAIb,CAGwJ41O,CAAYrzI,EAAK8kI,EAAOwO,UAAYxO,EAAOyO,aApCpM,SAAuBvzI,EAAvB,GAIG,IAJyB,QAC1Bb,EAD0B,WAE1Bq1C,EAF0B,OAG1Bn5O,GACC,EACD,OAAO2kM,EAAIr7J,OAAOqsS,UAAUpK,MAAMvrU,GAAQs9L,KAAK3lM,IAAIwgV,GAAaA,EAAUxgV,KAAI,QAAC,WAC7Ey/U,EAD6E,cAE7ED,EAF6E,aAG7EH,EAH6E,SAI7EhnD,EAJ6E,KAK7Ex2C,GAL4E,QAMvE,CACL11C,UACA2zI,aAAa,EACbL,aACAD,gBACAH,eACAhnD,SAAUA,EAASzhR,SAAWyhR,EAAWmnD,EAAc9nU,KAAKs1L,EAAIskI,OAAO0M,UAAU0B,mBAAqB1yI,EAAIskI,OAAO0M,UAAU2B,iBAAiBrrQ,KAAK4qQ,GAAQ19F,EAAWlnP,SACpKunP,KAAM70C,EAAIG,SAASo3H,WAAW,OAAQ,CACpChjF,IAAKM,EAAKF,MACVH,eAf0E,MAkB/E,CAakNi/F,CAAczzI,EAAK8kI,EAAO4O,cAAgBj2O,GAAG,OAAQA,GAAG,KAC1Q,CClDM,SAASk2O,GAAahY,EAAY37H,GACvC,OAAOviF,GAAKk+M,GAAY,KACtB,IAAIiY,EAEJ,OAAwD,QAAhDA,EAAuB5zI,EAAIwjB,MAAMwtH,iBAAgD,IAAzB4C,GAAmCA,EAAqBD,aAAe3zI,EAAIwjB,MAAMwtH,UAAU2C,eAAeh7I,KAAKM,IAAU46I,GAjB7L,SAAmB7zI,EAAK6zI,GACtB,GAAIA,EAAQziH,OACV,OAAO3zH,GAAG,MAGZ,MAAO6zO,EAAW7wK,GAAaozK,EAAQ3/G,SACvC,OAAOl0B,EAAIr7J,OAAOqsS,UAAU8C,SAASxC,GAAW34I,KAAK3lM,IAAI6/M,IAAS,CAChEA,QACAy+H,YACA7wK,gBAEH,CAMuMszK,CAAU/zI,EAAK6zI,MAAap2O,GAAG,KAAnO,GAEH,CCdD,SAASu2O,GAAkBh0I,EAA3B,GAAgE,IAC1D+kI,GAD2B3+T,EAAOikR,EAAUlrF,EAAS+zG,GAAK,EAG9D,IACE6xB,EAAW/kI,EAAIG,SAASo3H,WAAW,WAAYnxT,EAAM03M,OAAM,GAG5D,CAFC,MAAO54M,GACPnB,QAAQmB,MAAMA,EACf,CAED,MAAO,CACLguS,KACA/zG,UACA4lI,WACA16C,WAEH,CA0BD,SAAS4pD,GAAmBj0I,EAAKp+B,GAC/B,OAAOo+B,EAAIwjB,MAAMwtH,UAAUU,UAAU5O,MAAMlhK,GAAQ+2B,KAAK3lM,IAAI4+U,GAAUA,EAAO5+U,KAAIkhV,GAzBnF,SAAwBl0I,EAAKk0I,GAC3B,IAAIA,EAAS9iH,OAAb,CAIA,GA1BF,SAA6BpxB,EAAKk0I,GAChC,QAASA,IAAal0I,EAAIwjB,MAAMwtH,UAAUa,aAC3C,CAwBKsC,CAAoBn0I,EAAKk0I,GAAW,CACtC,MAAMjiS,EAASiiS,EAAShgH,SAExB,GAAIjiL,EAAOmiS,UACT,OAGF,MAAM,KACJtuU,EADI,QAEJw6J,EAFI,SAGJ9tJ,EAHI,MAIJ8yP,GACErzN,EAAOoiS,YACX,OAAOL,GAAkBh0I,EAAK,CAACl6L,EAAM0M,EAAU8tJ,EAASglG,GACzD,CAED,OAAO0uE,GAAkBh0I,EAAKk0I,EAAShgH,SAlBtC,CAmBF,CAG8FogH,CAAet0I,EAAKk0I,OAClH,CAEM,SAASxC,GAAU/V,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAY/5J,GAAUA,EAAO73K,QAASq5H,GAAW48E,EAAIwjB,MAAMwtH,UAAUU,WAAauC,GAAmBj0I,EAAKp+B,GAAmBnkE,GAAG,KAC7I,CACM,MAAMq2O,GAAWlS,IAAU,CAAC5hI,EAAKvvM,IAASuvM,EAAIr7J,OAAOqsS,UAAUU,UAAU,CAACjhV,MC9CjF,SAASE,GAAT,GAAmD,IAAnCi0U,EAAWgN,EAAQ2C,GAAgB,EACjD,OAAO3P,EAAU93T,QAAO,CAAC,EAAexf,KAAU,IAAxB,CAAC,CAAE+8R,GAAqB,EAChD,IAAImqD,EAEJ,QAA4D,QAAjDA,EAAuBD,EAAcjnV,UAA6C,IAAzBknV,IAAmCA,EAAqB9+G,UAAY20D,EAAS5hO,OAAjJ,IACCz1D,KAAI,CAAC,EAA8ByhV,KAAkB,IAA/CnnV,EAAOgkV,EAAWjnD,GAA6B,EACtD,MAAMqqD,EAAaH,EAAcE,GAAevgH,SAChD,OAAOx1D,GAAa,CAClBm0C,MAAO++H,EAAO6C,GACdnD,YACAhkV,QACA+8R,YAjBN,SAAyBqqD,GAGvB,OAAOtxN,GAAWsxN,EAAW,GAAG9pU,IACjC,CAcM+pU,CAAgBD,GAAc,CAC/Bv1I,QAASu1I,EAAW,GACpBE,QAASF,EAAW,IAClB,CACFv1I,QAASu1I,EAAW,GACpBE,QAASF,EAAW,IAVtB,GAaH,CAEM,SAAS9P,GAAUjJ,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAY,KACtB,IAAIiY,EAAsBiB,EAE1B,OAAOzxN,GAA4D,QAAhDwwN,EAAuB5zI,EAAIwjB,MAAMwtH,iBAAgD,IAAzB4C,OAAkC,EAASA,EAAqBkB,cAAgB1xN,GAA6D,QAAjDyxN,EAAwB70I,EAAIwjB,MAAMwtH,iBAAiD,IAA1B6D,OAAmC,EAASA,EAAsBnD,WAAa1xI,EAAIwjB,MAAMwtH,UAAU8D,cAAcn8I,KAAKM,IAAU2rI,GAAaA,EAAU76U,OAAS6wU,GAAc,CAACn9N,GAAGmnO,GAAY5kI,EAAIr7J,OAAOqsS,UAAUU,UAAU9M,EAAU5xU,KAAI,QAAE,CAAEvC,GAAJ,SAAcA,CAAd,KAAsBuvM,EAAIwjB,MAAMwtH,UAAU+D,UAAUjS,MAAM8B,EAAU5xU,KAAI,QAAE1F,GAAF,SAAaA,CAAb,OAAyBmwG,GAAG,CAAC,GAAI,GAAI,OAAOzqG,GAAIrC,KAAU8sG,GAAG,GAAhlB,GAEH,CCpCM,SAASu3O,GAAcrZ,EAAY37H,GACxC,OAAOviF,GAAKk+M,GAAY,KACtB,IAAIiY,EAEJ,OAAwD,QAAhDA,EAAuB5zI,EAAIwjB,MAAMwtH,iBAAgD,IAAzB4C,GAAmCA,EAAqBqB,cAAgBj1I,EAAI0gI,WAAW,CAAC1gI,EAAIwjB,MAAMwtH,UAAUiE,cAAej1I,EAAIwjB,MAAMwtH,UAAUkE,kBAAkBv8I,KAAK3lM,IAAI,QAAE0tO,EAAOllN,GAAT,SAAoBA,EAAMhR,GAAGk2N,GACrQ,IAAIptO,MAAMkoB,EAAMlE,IAAIopN,GAAOx8N,aAAalR,KAAI,CAACob,EAAGziB,IAAM+0O,EAAMv4J,KAAKx8E,KAAM,EADiK,KAC1J8xG,GAAG,GADnF,GAGH,CCNM,SAASy1O,GAAYvX,EAAY37H,GACtC,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIr7J,OAAOqsS,UAAUmE,oBAAoBx8I,KAAKM,IAAUi6I,GAAeA,EAAYnpV,OAAS6wU,GAAc,CAACn9N,GAAGy1O,GAAclzI,EAAIr7J,OAAOqsS,UAAUoE,kBAAkBlC,KAAiBz1O,GAAG,CAAC,GAAI,OAAOzqG,IAAI,QAAEkgV,EAAaluE,GAAf,SAA0BkuE,EAAYlgV,KAAI,CAACo/U,EAAY9kV,IAAUoxK,GAAa,CAAC,EAAG0zK,EAAYptE,EAAM13Q,KAApG,MACtO,CCHM,SAAS6nV,GAAkBxZ,EAAY37H,GAC5C,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIr7J,OAAOqsS,UAAUgE,gBAAgBr8I,KAAKM,IAAUixB,GAAOA,EAAIngO,OAASi2M,EAAIr7J,OAAOqsS,UAAUqE,gBAAgBnrH,GAAOzsH,GAAG,QACtJ,CCFM,SAASwzO,GAAoBtV,EAAY37H,GAC9C,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIr7J,OAAOqsS,UAAUgE,gBAAgBr8I,KAAKM,IAAUixB,GAAOlqB,EAAIwjB,MAAMwtH,UAAUiC,iBAAiBnQ,MAAM54G,KAAOl3N,IAAI2+U,GAASA,EAAM3+U,KAAI03C,GAAKA,EAAEirL,SAAS,QAAO7oN,QAAO2gB,KAAUA,GAAQA,EAAKglT,aAAYz/U,KAAIy6B,GAAQA,EAAKolT,iBACrP,CCCM,MAAMyC,GAAwB,IAAI7+T,GAAG,UAerC,SAAS8+T,GAAOzoV,GACrB,MAAM8vB,EAAI6iJ,GAAO3yK,GAEjB,GAAI8vB,EAAElF,QACJ,MAAM,IAAIpO,MAAM,oDAKlB,GAAIsT,EAAErE,IAAI21M,IAER,OAAO,IAAIz3M,KAAKlqB,KAAKs+E,KAAKjuD,EAAE1Y,aAK9B,IAAIsxU,EAAKF,GAAsBjhT,QAE/B,OAAa,CACX,MAAMkI,EAAK3f,EAAErF,IAAIi+T,GAAIvzS,KAAKuzS,GAAIxtQ,MAAM,GAEpC,GAAIwtQ,EAAGl9T,GAAGikB,IAAOi5S,EAAGl9T,GAAGikB,EAAGjlB,IAAIs2M,KAC5B,OAAO4nH,EAGTA,EAAKj5S,CACN,CACF,CCrCM,SAASk5S,GAAiBC,EAAI3gT,EAAI4gT,EAAI3gT,GAC3C,OAAa,CACX,MAAMoI,EAAKs4S,EAAGn+T,IAAIwd,GACZsI,EAAKs4S,EAAGp+T,IAAIyd,GAElB,GAAIoI,EAAG3yB,GAAG4yB,GACR,OAAO,EACF,GAAIA,EAAG5yB,GAAG2yB,GACf,OAAO,EAGT,MAAM0yJ,EAAK4lJ,EAAGj+T,IAAIsd,GACZi0C,EAAK2sQ,EAAGl+T,IAAIud,GAElB,GAAIg0C,EAAGp/D,SACL,OAAO,EACF,GAAIkmL,EAAGlmL,SACZ,OAAO,EAGT8rU,EAAK1gT,EACL2gT,EAAK5gT,EACLA,EAAKi0C,EACLh0C,EAAK86J,CACN,CACF,CAWM,SAAS8lJ,GAAYn1K,EAAWo1K,EAAgBp0U,GACrD,OAAOg/J,EAAUq1K,iBAAmBr0U,EAAMs0U,SAASvrU,GAAG/I,EAAMu0U,UAV9D,SAA0Bv1K,EAAWo1K,EAArC,GAIG,IAJkD,SACnDE,EADmD,SAEnDC,EAFmD,WAGnDC,GACC,EACD,MAAMC,EAAaX,GAAOU,GAC1B,OAAOC,EAAWtsU,WAAmB62J,EAAU01K,uBAAyBV,GAAiBO,EAAUE,EAAYH,EAAUF,GAAkBJ,GAAiBO,EAAUH,EAAgBE,EAAUG,GACjM,CAGyEE,CAAiB31K,EAAWo1K,EAAgBp0U,EACrH,CA0DM,SAAS40U,GAAUR,EAAgBzD,EAAYptE,GACpD,MAAMvjQ,EAAwB2wU,EAAWngS,OApGzBq0N,MA6ElB,SAA0BA,EAAOtB,GAC/B,MAAMsxE,EAAS,GACTC,EAAS,GAQf,OAPAvxE,EAAM/5Q,SAAQurV,IACRA,EAAQ3hG,KAAKF,MACf2hG,EAAOhsV,KAAKksV,GAEZD,EAAOjsV,KAAKksV,EACb,IAEI,CACLF,SACAC,SACA9uE,UAAW6uE,EAAOvsV,OAASwsV,EAAOxsV,OAClC0sV,aAAcH,EAAOvsV,OACrB2sV,aAAcH,EAAOxsV,OACrBgsV,SAAUzvE,EAAMzO,KAChBm+E,SAAU1vE,EAAMxO,KAChBm+E,WAAY3vE,EAAME,QAErB,CAGoDmwE,CAAiBvE,EAAWngS,OAAOq0N,MAAOtB,GAAuBA,EAxDpG37P,QAAO,CAAC5H,EAAO+0U,KAC7B,MAAM,QACJr3I,EADI,KAEJ01C,GACE2hG,EACEI,EAAsC,IAA1B/hG,EAAKL,WAAWlnP,MAC5BupV,EAAU13I,EAAQ73H,KAAKsvQ,EAAY,EAAI/hG,EAAKL,WAAWlnP,OAAOu7E,KAAK+tQ,EAAY,GAAK,GAc1F,OAZI/hG,EAAKF,OACPlzO,EAAM60U,OAAOhsV,KAAKksV,GAClB/0U,EAAMg1U,eACNh1U,EAAMs0U,SAAS9zS,KAAK40S,KAEpBp1U,EAAM80U,OAAOjsV,KAAKksV,GAClB/0U,EAAMi1U,eACNj1U,EAAMu0U,SAAS/zS,KAAK40S,IAGtBp1U,EAAMgmQ,YACNhmQ,EAAMw0U,WAAWh0S,KAAK40S,GACfp1U,CAAP,GACC,CACD60U,OAAQ,GACRC,OAAQ,GACR9uE,UAAW,EACXgvE,aAAc,EACdC,aAAc,EACdX,SAAU,IAAIt/T,GAAG,GACjBu/T,SAAU,IAAIv/T,GAAG,GACjBw/T,WAAY,IAAIx/T,GAAG,KA4BrB,OAAOioJ,GAAa,CAAC,EAAGj9J,EAAO,CAC7Bq1U,UAAWlB,GAAYxD,EAAWngS,OAAOwuH,UAAWo1K,EAAgBp0U,GACpEujQ,SAEH,CC3GD,SAAS+xE,GAAU/2I,EAAKqyI,GACtB,OAAOryI,EAAIwjB,MAAMwtH,UAAUgG,UAAU3E,GAAc15I,KAAKM,IAAU+9I,GAAapc,GAAc,CAACn9N,GAAGu5O,GAAYA,EAAUjtV,OAASi2M,EAAIwjB,MAAMwtH,UAAUiG,OAAOnU,MAAMkU,EAAUhkV,KAAIsrQ,GAAa,CAAC+zE,EAAc/zE,MAAe7gK,GAAG,IAAKuiG,EAAIr7J,OAAOukR,SAASohB,eAAe0M,OAAehkV,IAAI,QAAEgkV,EAAWhyE,EAAOkkD,GAApB,SAAkC8tB,EAAUhkV,KAAI,CAACsrQ,EAAWhxQ,KAAZ,CACtUgxQ,YACAn/D,QAAS+pH,EAAS57T,GAAOq8U,eAAiB3pI,EAAIG,SAASo3H,WAAW,WAClEgc,cAAc,EACd1+F,KAAMmwB,EAAM13Q,IAAU0yM,EAAIG,SAASo3H,WAAW,WAJwO,IAMzR,CAgBD,SAAS2f,GAAUl3I,EAAKqyI,GACtB,OAAOryI,EAAIwjB,MAAMwtH,UAAU+B,SAAS9nR,UAAU0tI,KAAK3lM,IAAImkV,IACrD,MAAMC,EAASD,EAAUnkV,KAAI,SAC3B4H,MAAO0jQ,IACNwmE,GAF0B,QAEd,CAACxmE,EAAWwmE,EAFE,IAGvB9/D,EAnBV,SAAsBoyE,EAAQ/E,GAC5B,OAAO+E,EAAOtqU,QAAO,QAAE,CAAEg4T,GAAJ,SAAgBA,EAAOkO,QAAvB,IAAiChgV,KAAI,QAAEsrQ,EAAWwmE,GAAb,QAAyB,CAACxmE,EAAWwmE,EAAOwO,SAAStuE,MAAMl4P,QAAO,QAAEqwI,GAAF,SAAWA,EAAI7kI,GAAG+5T,EAAlB,IAAlE,IAAqGvlU,QAAO,QAAE,CAAEuqU,GAAJ,UAAuBA,EAAYttV,MAAnC,IAA2Csf,QAAO,CAAC7O,EAAD,SAAU8jQ,EAAW0G,GAArB,SACxNA,EAAM37P,QAAO,CAAC7O,EAAD,KAAsB,IAAZ,CAAEq6O,GAAU,EAQjC,OAPIA,EAAKs+F,YACP34U,EAAOlQ,KAAKo0K,GAAa,CACvB4/F,YACAi1E,cAAc,GACb1+F,EAAK09F,aAGH/3U,CAAP,GACCA,EAVqN,GAU5M,GACb,CAOiB88U,CAAaF,EAAQ/E,GAC7BxrE,EAAcuwE,EAAOtqU,QAAO,QAAE,CAAEg4T,GAAJ,SAAgBA,EAAOyO,YAAvB,IAAqCvgV,KAAI,QAAEsrQ,EAAWwmE,GAAb,QAAyB,CAACxmE,EAAWwmE,EAAO4O,aAA5C,IAyB3E,OAvBA7sE,EAAY57Q,SAAQ,IAIb,IAJeqzQ,GAAW,QAC/Bn/D,EAD+B,WAE/Bq1C,EAF+B,OAG/Bn5O,IACK,EAEL,MAAMk8U,EAAc1wE,EAAY1mP,MAAK,QAAEm+O,GAAF,SAAiBA,EAAUhmP,GAAGjd,EAA9B,IAC/BqY,EAAKsxP,EAAM7kP,MAAK,QAAC,UACrBm+O,GADoB,SAEhBA,EAAUhmP,GAAGi/T,EAAcA,EAAY,GAAKl8U,EAF5B,IAIlBqY,GACFsxP,EAAM16Q,KAAK,CACTg0Q,YACAn/D,UACAo0I,cAAc,EACd1+F,KAAM70C,EAAIG,SAASo3H,WAAW,OAAQ,CACpChjF,IAAK7gO,EAAGmhO,KAAKF,MACbH,gBAGL,IAEIwwB,CAAP,IAEH,CAEM,SAASwyE,GAAiB7b,EAAY37H,GAC3C,OAAOviF,GAAKk+M,GAAYyW,GAAcxX,GAAc,CAAC56H,EAAIr7J,OAAOqsS,UAAU6E,iBAAkBzyN,GAAW48E,EAAIwjB,MAAMwtH,UAAU+B,UAAYmE,GAAUl3I,EAAKoyI,EAAW9kV,OAASypV,GAAU/2I,EAAKoyI,EAAW9kV,SAASqrM,KAAK3lM,IAAI,QAAE6iV,EAAgB7wE,GAAlB,SAA6BqxE,GAAUR,EAAgBzD,EAAYptE,EAAnE,MACvN,CACM,SAASowE,GAAkBzZ,EAAY37H,GAC5C,OAAOviF,GAAKk+M,GAAYuX,GAAeA,EAAYnpV,OAAS6wU,GAAcsY,EAAYlgV,KAAIo/U,GAAcpyI,EAAIr7J,OAAOqsS,UAAUwG,iBAAiBpF,MAAgB30O,GAAG,KAClK,CACM,SAASg6O,GAAgB9b,EAAY37H,GAC1C,OAAOviF,GAAKk+M,GAAY,CAACruU,EAAOmgC,KAC9B,MAAMwkB,ED0CH,SAAmBxkB,GACxB,GAAIA,EAAK2jM,OACP,OAAO,KAGT,MAAMsmH,EAAYjqT,EAAKymM,SACvB,OArHF,SAAmBzmM,GACjB,QAASA,EAAKu4O,YACf,CAmHQ2xE,CAAUD,GAAaA,EAAYA,EAAUE,UAAYF,EAAUG,UACxE,IACH,CClDkBC,CAAUrqT,GACzB,OAAOwkB,EAAS+tJ,EAAIr7J,OAAOqsS,UAAU8C,SAAS7hS,EAAO+zN,cAAcrtE,KAAK3lM,IAAI6/M,IAAS,CACnFA,QACAy+H,UAAWr/R,EAAO+zN,aAClB14Q,MAAO0yM,EAAIG,SAASo3H,WAAW,kBAAmBjqU,GAClD2kD,cACKwrD,GAAG,KALV,GAOH,CACM,SAAS43O,GAAgB1Z,EAAY37H,GAC1C,OAAOviF,GAAKk+M,GAAYzxG,GAAOA,EAAIngO,OAASi2M,EAAIwjB,MAAMwtH,UAAUiC,iBAAiBnQ,MAAM54G,GAAKvxB,KAAKM,IAAU04I,GAAS/W,GAAc1wG,EAAIl3N,KAAI,CAACsa,EAAIhgB,IAAU0yM,EAAIr7J,OAAOqsS,UAAUyG,gBAAgBnqU,EAAIqkU,EAAMrkV,SAAY0F,IAAI2+U,GAASA,EAAM7kU,QAAOslU,KAAgBA,OAAgB30O,GAAG,KAClR,CC/EM,SAASo4O,GAAela,EAAY37H,GACzC,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIwjB,MAAM0lG,SAAS6uB,gBAAgBp/I,KAAK3lM,GAAIuiV,MAC3E,CCOD,SAASyC,GAAgBlrV,GACvB,OATF,SAAsBA,GACpB,OAAQwG,MAAM4G,QAAQpN,EACvB,CAOQmrV,CAAanrV,GAAS,CAACA,EAAM40M,IAAK50M,EAAMu7Q,OAASv7Q,CACzD,CAED,SAASorV,GAAaprV,GACpB,OATF,SAA0BA,GACxB,OAAOwG,MAAM4G,QAAQpN,EACtB,CAOQqrV,CAAiBrrV,GAASA,EAAM,GAAKA,CAC7C,CAED,SAASsrV,GAAT,KAAkD,IAA3B,CAAEC,GAAyB,GAAb,CAAEC,GAAW,EAChD,OAAOA,EAAS//S,IAAI8/S,EACrB,CAwCM,SAAS5qT,GAAKkuS,EAAY37H,GAC/B,OAAOviF,GAAKk+M,GAAY,KACtB,MAAO4E,EAASF,GA9BpB,SAAoBrgI,GAClB,MAAOugI,GAAWvgI,EAAIG,SAASo4H,mBAAmBv4H,EAAIsjB,eAAez6C,SAAU,YAAc,CAAC,WAE9F,MAAO,CAAC03J,EADUvgI,EAAIwjB,MAAM28G,iBAAmB,mBAAqBngI,EAAIwjB,MAAM48G,kBAAoB,oBAAsBpgI,EAAIwjB,MAAM68G,UAAY,YAAc,KAE7J,CA0BgCkY,CAAWv4I,GACxC,OAAQqgI,EAzBZ,SAAkBrgI,EAAKugI,EAASF,GAC9B,OAAOrgI,EAAI0gI,WAAW,CAAC1gI,EAAIwjB,MAAM+8G,GAASD,QAAStgI,EAAIwjB,MAAM68G,GAAWmY,WAAYx4I,EAAIwjB,MAAM68G,GAAWC,QAAStgI,EAAIwjB,MAAM68G,GAAWoY,WACxI,CAuBuBC,CAAS14I,EAAKugI,EAASF,GArB/C,SAAsBrgI,EAAKugI,GACzB,OAAO3F,GAAc,CAAC56H,EAAIwjB,MAAM+8G,GAASD,UAAW7iO,GAAG,IAAKA,GAAG,IAAKA,GAAG,KACxE,CAmB2Dk7O,CAAa34I,EAAKugI,IAAU5nI,KAAK3lM,IAAI,QAAE6tU,EAAgB2X,EAAYlY,EAASmY,GAAvC,SAAsD/5K,GAAa,CAAC,EAzCrK,SAAsBshC,EAAKqgI,GACzB,OAAOA,EAAY,CACjBuY,cAAe54I,EAAIskI,OAAOjE,GAAWuY,cACrCC,iBAAkB74I,EAAIskI,OAAOjE,GAAWwY,iBACxCC,aAAc94I,EAAIskI,OAAOjE,GAAW0Y,eACpCC,aAAch5I,EAAIskI,OAAOjE,GAAW2Y,aACpCC,WAAYj5I,EAAIskI,OAAOjE,GAAW4Y,YAChC,CAAC,CACN,CAiCuKC,CAAal5I,EAAKqgI,GAAY,CAChM34D,eAAgB1nE,EAAIG,SAASo3H,WAAW,MAAOihB,EAAWzuV,QAC1DyuV,WAAYA,EAAWxlV,IAAIklV,IAC3B5X,QAASA,EAAQv2U,OAASu2U,EAAQttU,IAAIglV,IAAiBz5T,KAAK65T,IAAgBvX,EAAe7tU,KAAIwpB,GAAK,CAACA,EAAGwjL,EAAIG,SAASo3H,WAAW,cAChIkhB,UAAWA,EAAUzlV,IAAIglV,IAAiBz5T,KAAK65T,KAJ4C,IAA7F,GAOH,CCpED,SAASe,GAAT,GAAgE,IAA5C3+U,EAAQw6P,EAAYokF,EAAYC,GAAY,EAe9D,OAdArkF,EAAW/pQ,SAAQ,CAACw3D,EAAWn1D,KAC7B,MAAMgsV,EAAc72R,EAAUzsD,WACxB8nF,EAAau7P,EAAU/rV,GACvBisV,GAAcH,EAAW9rV,GAAOm7D,QAChC55D,EAAO2L,EAAO8+U,GAEfzqV,GAAQA,EAAK0qV,aAAeA,GAAe1qV,EAAKivF,WAAWxlE,GAAGwlE,KACjEtjF,EAAO8+U,GAAe,CACpBx7P,aACAy7P,aACAC,SAAUD,GAAcz7P,EAAWtzE,GAAGmjN,KAEzC,IAEInzN,CACR,CAMM,SAASi/U,GAAmB9d,EAAY37H,GAC7C,OAAOviF,GAAKk+M,GAAY,KACtB,IAAI+d,EAEJ,OAAsD,QAA9CA,EAAsB15I,EAAIwjB,MAAMm2H,gBAA8C,IAAxBD,GAAkCA,EAAoBD,mBAAqBz5I,EAAIr7J,OAAOkmR,QAAQ+uB,WAAWjhJ,KAAKM,IAAU,QAAC,aACrL4gJ,EADqL,WAErL7kF,GAFoL,SAGhL4lE,GAAc,CAACn9N,GAAG,CAAC,GAAIA,GAAGu3J,GAAah1D,EAAIwjB,MAAMm2H,SAASF,mBAAmB3W,MAAM9tE,EAAWhiQ,KAAI,CAACunN,EAAUjtN,IAAU,CAACusV,EAAcvsV,MAAU0yM,EAAIwjB,MAAMm2H,SAASG,eAAehX,MAAM9tE,EAAWhiQ,KAAIoa,GAAW,CAACysU,EAAczsU,OAHjD,IAGgEpa,GAAImmV,KAAc17O,GAAG,CAAC,EAH5Q,GAKH,CClCM,MAAM6iO,GAAU6E,GAAkB,cAC5BH,GAAeI,GAAuB,cACtCL,GAAWM,GAAmB,cAC9BH,GAAgBI,GAAwB,cACxCL,GAAiBM,GAAyB,cAC1CX,GAAYY,GAAoB,cAChC3vS,GAAQ4vS,GAAgB,cCP9B,SAASsU,GAAgBC,EAAW1sU,GACzC,QAAO0sU,EAAUtkH,QAASskH,EAAU9lH,SAAS5nG,MAAKkuK,GAAUA,EAAOliR,GAAGhL,IACvE,CCGD,SAAS2sU,GAAY3sU,EAAIqrC,GACvB,MAAMp2B,EAAQo2B,EAAOx4B,MAAK,QAAEq6Q,GAAF,SAAcA,IAAWltR,CAAzB,IAE1B,GAAIiV,GAASA,EAAM,GAAGmzM,OAAQ,CAC5B,MAAO+kE,EAAYy/C,GAAa33T,EAAM,GAAG2xM,SACzC,OAAOx1D,GAAa,CAClB+7H,cACCy/C,EAAUC,cAAgB,CAC3BC,aAAa,EACbr4C,QAASm4C,EAAUG,cAAcn2U,YAC/B,CACFk2U,aAAa,EACbr4C,QAAS,GAEZ,CAED,OAAO,IACR,CAED,SAASu4C,GAAehtU,EAAIitU,GAC1B,OAAOA,EAAcvnV,KAAI22G,IACvB,MAAMpnF,EAAQonF,EAAMxpF,MAAK,QAAEq6Q,GAAF,SAAcA,IAAWltR,CAAzB,IACzB,OAAOiV,EAAQA,EAAM,GAAK,IAA1B,GAEH,CAsBM,SAASkL,GAAKkuS,EAAY37H,GAC/B,OAAOviF,GAAKk+M,GAAYruT,GAAM0yL,EAAIwjB,MAAMg3H,WAAax6I,EAAIwjB,MAAM4mG,WAAapqH,EAAI0gI,WAAW,CAAC1gI,EAAIwjB,MAAMg3H,UAAU7hS,OAAQqnJ,EAAIwjB,MAAMg3H,UAAUC,WAAYz6I,EAAIwjB,MAAMg3H,UAAUE,gBAAiB16I,EAAIwjB,MAAM4mG,WAAW4vB,UAAW,CAACh6I,EAAIwjB,MAAMg3H,UAAUG,MAAOrtU,GAAK,CAAC0yL,EAAIwjB,MAAMg3H,UAAUI,YAAattU,GAAK,CAAC0yL,EAAIwjB,MAAM4mG,WAAWywB,MAAOvtU,GAAK,CAAC0yL,EAAIwjB,MAAM4mG,WAAW0wB,mBAAoBxtU,KAAMqrL,KAAK3lM,IAAIwH,GArBlY,SAAe8S,EAAf,GAAmH,IAA/FqrC,EAAQ8hS,EAAYC,EAAiBV,EAAWvsT,EAAMmtT,EAAaC,EAAOC,GAAqB,EACjH,OAAIrtT,EAAK2jM,OACA,KAGF,CACLz4K,OAAQshS,GAAY3sU,EAAIqrC,GACxBqhS,UAAWD,GAAgBC,EAAW1sU,GACtCutU,QACAvtU,KACAmgB,KAAMixI,GAAa,CACjBpxJ,MACCmgB,EAAKymM,UACR6mH,cAAeH,EAAYjlH,SAAS,MACpCmlH,qBACAE,eAAgBV,GAAehtU,EAAImtU,GACnCQ,kBAAmBX,GAAehtU,EAAIotU,GAEzC,CAG2Y/pV,CAAMqvM,EAAIG,SAASo3H,WAAW,SAAUjqT,GAAK9S,MAAYijG,GAAG,OACvc,CChDD,SAAS9sG,GAAT,GAA+E,IAA/Du5N,EAAK8vH,EAAWrI,EAAOuJ,EAAcC,GAA0B,EAC7E,OAAOjxH,EAAIl3N,KAAI,CAACsa,EAAIhgB,KAAL,CACb0sV,UAAWD,GAAgBC,EAAW1sU,GACtCA,KACAmgB,KAAMixI,GAAa,CACjBpxJ,MACCqkU,EAAMrkV,GAAOqoO,SAAS,OACzBolH,cAAeG,EAAa5tV,GAAOqoO,SAAS,MAC5CwvE,uBAAwBg2C,EAAwB7tV,GAAO,GAAG4W,cAE7D,CAEM,SAAS01U,GAASje,EAAY37H,GACnC,OAAOviF,GAAKk+M,GAAY,KACtB,IAAIyf,EAEJ,OAAwD,QAAhDA,EAAuBp7I,EAAIwjB,MAAMg3H,iBAAgD,IAAzBY,GAAmCA,EAAqBhxB,YAAcpqH,EAAIwjB,MAAM4mG,WAAapqH,EAAIwjB,MAAMg3H,UAAUpwB,aAAazxH,KAAKM,IAAUoiJ,GAAWzgB,GAAc,CAACn9N,GAAG49O,GAAUr7I,EAAIwjB,MAAM4mG,WAAW4vB,YAAah6I,EAAIwjB,MAAMg3H,UAAUG,MAAM7X,MAAMuY,GAAUr7I,EAAIwjB,MAAMg3H,UAAUI,YAAY9X,MAAMuY,GAAUr7I,EAAIwjB,MAAM4mG,WAAWjlB,uBAAuB29B,MAAMuY,OAAaroV,GAAIrC,KAAU8sG,GAAG,GAAhc,GAEH,CCpBD,SAAS9sG,GAAT,GAAsF,IAAtEkpV,EAAcyB,EAAWC,EAAgBC,EAAY5iE,GAAiB,EACpF,MAAO,CACL0iE,YACAC,iBACAC,aACA3B,eACAjhE,iBAEH,CAuBM,SAAS8oD,GAAQ/F,EAAY37H,GAClC,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIwjB,MAAMm1D,QAAU34E,EAAIwjB,MAAMqnG,QArB9D,SAAsB7qH,GACpB,OAAOA,EAAI0gI,WAAW,CAAC1gI,EAAIwjB,MAAMm1D,QAAQkhE,aAAc75I,EAAIwjB,MAAMqnG,QAAQywB,UAAWt7I,EAAIwjB,MAAMqnG,QAAQ2wB,WAAYx7I,EAAIwjB,MAAMqnG,QAAQjyC,iBAAiBjgF,KAAK3lM,IAAI,IAA2D,IAAzD6mV,EAAc4B,EAAWD,EAAY5iE,GAAoB,EACvN,MAAM,MACJtrR,EADI,MAEJosB,GACE+hU,EAAU7lH,kBACd,OAAOjlO,GAAM,CAACkpV,EAAcvsV,EAAOosB,EAAO8hU,EAAW5lH,kBAAmBgjD,GAAxE,IAEH,CAauE8iE,CAAa17I,GAVrF,SAAsBA,GACpB,OAAOA,EAAIwjB,MAAMm1D,QAAQkhE,eAAelhJ,KAAK3lM,IAAI6mV,GAAgBlpV,GAAM,CAACkpV,EAAc75I,EAAIG,SAASo3H,WAAW,YAAav3H,EAAIG,SAASo3H,WAAW,kBAAmBv3H,EAAIG,SAASo3H,WAAW,YAAav3H,EAAIG,SAASo3H,WAAW,WACpO,CAQ2FokB,CAAa37I,GALzG,SAAeA,GACb,OAAOviG,GAAG9sG,GAAM,CAACqvM,EAAIG,SAASo3H,WAAW,eAAgB,GAAIv3H,EAAIG,SAASo3H,WAAW,YAAav3H,EAAIG,SAASo3H,WAAW,kBAAmBv3H,EAAIG,SAASo3H,WAAW,YAAav3H,EAAIG,SAASo3H,WAAW,SAC3M,CAG+GhzL,CAAMy7D,IACrH,CC7BM,SAASvyK,GAAKkuS,EAAY37H,GAC/B,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIr7J,OAAOg0O,QAAQ+oD,UAAU/oI,KAAK3lM,IAAI0uU,IAClE,IAAIka,EAAaC,EAAkBC,EAAcC,EAEjD,MAAMC,GAAgD,QAA9BJ,EAAc57I,EAAIskI,cAAoC,IAAhBsX,GAA4E,QAAzCC,EAAmBD,EAAY5yB,YAAuC,IAArB6yB,OAA3D,EAAkGA,EAAiBI,gBAAkBj8I,EAAIG,SAASo3H,WAAW,MAAO,GACrP2kB,GAAkD,QAA/BJ,EAAe97I,EAAIskI,cAAqC,IAAjBwX,GAAqF,QAAjDC,EAAuBD,EAAajxB,eAA8C,IAAzBkxB,OAAnE,EAA8GA,EAAqBG,iBAAmBl8I,EAAIG,SAASo3H,WAAW,eAAgB,GACxR,OAAO74J,GAAa,CAClBy9K,UAAWn8I,EAAIG,SAASo3H,WAAW,cAAe2kB,EAAetxU,IAAIoxU,IACrEI,UAAWp8I,EAAIwjB,MAAMwlG,KACrBgzB,gBACAE,kBACCxa,EALH,MAOH,CChBD,SAAS2a,GAAkBl6T,GACzB,MAAO,CAACw5S,EAAY37H,IAAQviF,GAAKk+M,GAAY,IAAM37H,EAAIr7J,OAAOg0O,QAAQt3J,WAAWs3E,KAAK3lM,IAAIy6B,GAAQA,EAAKtL,OACxG,CAgCM,SAASk/F,GAASs6M,EAAY37H,GACnC,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIwjB,MAAMwlG,KAd1C,SAAmBhpH,GACjB,OAAOA,EAAIr7J,OAAOg0O,QAAQlrP,OAAOkrK,KAAKM,IAAUxrK,IAC9C,IAAI6uT,EAEJ,OAAO1hB,GAAc,CAACn9N,GAAGhwE,GACoB,QAA5C6uT,EAAqBt8I,EAAIwjB,MAAMqnG,eAA4C,IAAvByxB,GAAiCA,EAAmBC,sBAAwBv8I,EAAI0gI,WAAW,CAAC1gI,EAAIwjB,MAAMwlG,KAAKwzB,YAAax8I,EAAIwjB,MAAMwlG,KAAKv4D,WAAYzwD,EAAIwjB,MAAMwlG,KAAKyzB,YAAa,CAACz8I,EAAIwjB,MAAMqnG,QAAQ0xB,sBAAuB9uT,EAAK6tT,aAAet7I,EAAI0gI,WAAW,CAAC1gI,EAAIwjB,MAAMwlG,KAAKwzB,YAAax8I,EAAIwjB,MAAMwlG,KAAKv4D,WAAYzwD,EAAIwjB,MAAMwlG,KAAKyzB,eADxX,IAEEzpV,IAAI,QAAEy6B,GAAO+uT,EAAa/rF,EAAYgsF,EAAaC,IAA/C,QAAmE,CAACjvT,EAAM,CAAC+uT,EAAa/rF,EAAYgsF,EAAaC,GAAiBA,EAAchnH,OAASgnH,EAAcxoH,SAAWl0B,EAAIG,SAASo3H,WAAW,eAAgB,IAA1N,IACT,CAOgDolB,CAAU38I,GAAKrH,KAAK3lM,IAAI,QAAEy6B,EAAM+rB,GAAR,SA/BzE,SAAsBwmJ,EAAKvyK,EAA3B,GAAiH,IAA/E+uT,EAAa/rF,EAAYmsF,EAAyBC,GAA6B,EAC/G,MAAMC,EAAiBrsF,EAAW7lP,IAAI6iB,EAAKuuT,eAAe/5S,KAAK26S,GACzDG,EAAkBP,EAAYllU,IAAIwlU,GAClCE,EAAcvvT,EAAKosT,aAAaviU,IAAIulU,GAA4Bj5Q,KAAKn2C,EAAKuuT,eAAe/5S,KAAK86S,GACpG,OAAOr+K,GAAa,CAClBs+K,YAAah9I,EAAIG,SAASo3H,WAAW,cAAeylB,GACpDD,gBAAiB/8I,EAAIG,SAASo3H,WAAW,cAAewlB,IACvDtvT,EACJ,CAuB2FwvT,CAAaj9I,EAAKvyK,EAAM+rB,EAA3C,KArBzE,SAAmBwmJ,GACjB,OAAOA,EAAIr7J,OAAOg0O,QAAQlrP,OAAOkrK,KAAK3lM,IAAIy6B,GAAQixI,GAAa,CAC7Ds+K,YAAah9I,EAAIG,SAASo3H,WAAW,eACrCwlB,gBAAiB/8I,EAAIG,SAASo3H,WAAW,gBACxC9pS,KACJ,CAgB8HyvT,CAAUl9I,IACxI,CACM,MAAMm8I,GAAYE,GAAkB,aAC9BW,GAAcX,GAAkB,eAChCU,GAAkBV,GAAkB,mBCrC1C,SAAS7D,GAAW7c,EAAY37H,GACrC,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIwjB,MAAMonG,QAAQ4tB,aAAa7/I,KAAKM,IAAUu/I,GAAc5d,GAAc,CAACn9N,GAAG+6O,GAAax4I,EAAIwjB,MAAMonG,QAAQuyB,oBAAoBra,MAAM0V,EAAWxlV,KAAI,QAAC,IACnL0uM,GADkL,SAE9KA,CAF8K,SAEpK1uM,IAAI,QAAEwlV,EAAY4E,GAAd,SAA6B5E,EAAWxlV,KAAI,CAAC,EAI9D1F,KAJ6D,IAAC,KAC/D2iC,EAD+D,MAE/DnjC,EAF+D,IAG/D40M,GAH8D,QAIlD,CACZ48D,UAAW58D,EACX27I,YAAaD,EAAU9vV,GAAOooO,OAC9BzlM,OACAnjC,QAR8D,GAA5C,MAUrB,CCbM,SAAS2gC,GAAKkuS,EAAY37H,GAC/B,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAI0gI,WAAW,CAAC1gI,EAAIwjB,MAAMonG,QAAQ0yB,KAAMt9I,EAAIwjB,MAAMonG,QAAQ2yB,SAAUv9I,EAAIwjB,MAAMonG,QAAQ4yB,QAASx9I,EAAIwjB,MAAMonG,QAAQn3T,KAAMusM,EAAIwjB,MAAMonG,QAAQ6yB,WAAYz9I,EAAIwjB,MAAMonG,QAAQxiD,MAAMzvE,KAAK3lM,IAAI,QAAEsqV,EAAMC,EAAUC,EAAS/pV,EAAMgqV,EAAYr1E,GAA7C,QAAuD,CACzQk1E,OACAC,SAAUA,EAAS5nH,cAASnrO,GAC5BgzV,QAASA,EAAQ7nH,cAASnrO,GAC1BkzV,YAAaH,EAAS7nH,QAAUjiO,EAAKiiO,SAAWjiO,EAAK6kB,GAAGilU,KAAa,EACrE9pV,KAAMA,EAAKkiO,cAASnrO,GACpBizV,aACAr1E,MAPkN,MASrN,CCVM,SAASu1E,GAAOhiB,EAAY37H,GACjC,OAAOviF,GAAKk+M,GAAYr9D,GAAat+D,EAAIr7J,OAAOimR,QAAQgzB,SAAS,CAACt/E,IAAY3lE,KAAK3lM,IAAI,QAAEwH,GAAF,SAAcA,CAAd,MACxF,CCNM,SAASojV,GAASjiB,EAAY37H,GACnC,OAAOviF,GAAKk+M,GAAYiH,GAAchI,GAAc,CAACn9N,GAAGmlO,GAAa5iI,EAAIwjB,MAAMonG,QAAQizB,QAAQ/a,MAAMF,GAAa5iI,EAAIwjB,MAAMonG,QAAQkzB,QAAQhb,MAAMF,GAAa5iI,EAAIwjB,MAAMonG,QAAQmzB,cAAcjb,MAAMF,GAAa5iI,EAAIwjB,MAAMonG,QAAQozB,iBAAiBlb,MAAMF,GAAa5iI,EAAIwjB,MAAMonG,QAAQqzB,SAASnb,MAAMF,KAAcjqI,KAAK3lM,IAAI,QAAE4vU,EAAYib,EAASC,EAASC,EAAeX,EAAWa,GAA1D,SAAwErb,EAAW5vU,KAAI,CAACsrQ,EAAWhxQ,KAAZ,CACrZgxQ,YACA4/E,gBAAiBH,EAAczwV,GAAOooO,OACtC2nH,YAAaD,EAAU9vV,GAAO2mP,OAC9B4pG,QAASA,EAAQvwV,GACjBwwV,QAASA,EAAQxwV,GACjBunP,KAAMkpG,EAAczwV,GAAOqoO,cAASnrO,GACpCyzV,SAAUA,EAAS3wV,GAAOqoO,cAASnrO,MAP2R,MASjU,CAKM,SAAS81U,GAAQ3E,EAAY37H,GAClC,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIwjB,MAAMonG,QAAQ0V,UAAU3nI,KAAKM,IAAUqnI,GAAWtgI,EAAIr7J,OAAOimR,QAAQgzB,SAAStd,OACjH,CChBD,MAAM6d,GAAa,CACjBC,iBAAiB,EACjBC,YAAY,EACZC,iBAAiB,EACjBC,WAAW,GAcb,SAASC,GAAmBx+I,EAAKy+I,EAAeC,GAC9C,MAAM3qU,EAAUnnB,OAAOq+D,SAZLwlG,IAY4C,OAAlBguL,QAA4C,IAAlBA,OAA2B,EAASA,EAAct+D,YAAc,IAAIrzQ,QAAO,QAAC,IAChJywN,GAD+I,SAE3IA,EAAIrJ,SAAS1pN,GAAGk0U,EAAYpD,UAF+G,IAX1I7qL,EAAKpnJ,QAAO,CAACrW,EAAD,KAGb,IAHmB,IACvBuqO,EADuB,MAEvBzwO,GACI,EACJ,MAAMlC,EAAM2yO,EAAIvnO,WAEhB,OADAhD,EAAIpI,IAAQoI,EAAIpI,IAAQ+iO,IAASjjN,IAAI5d,EAAMonO,UACpClhO,CAAP,GACC,CAAC,KAM4CA,KAAI,QAAE2rV,EAAW7xV,GAAb,QAAyB,CAC3E8xV,cAAe,IAAInoU,GAAGkoU,GAAWx+Q,KAAKu+Q,EAAYpD,WAClDxuV,MAAOkzM,EAAIG,SAASo3H,WAAW,UAAWzqU,GAFQ,IAdtD,IAAoB2jK,EAkBlB,OAAO18I,EAAQhqB,OAASgqB,OAAUvpB,CACnC,CAED,SAASq0V,GAAc7+I,EAAKy+I,EAAeC,GACzC,OAAO1+I,EAAIG,SAASo3H,WAAW,YAA+B,OAAlBknB,QAA4C,IAAlBA,OAA2B,EAASA,EAAct+D,YAAc,IAAI92Q,QAAO,CAACmS,EAAD,KAG3I,IAHmJ,IACvJ+hN,EADuJ,MAEvJzwO,GACI,EACJ,OAAO4xV,EAAYpD,UAAU9iU,IAAI+kN,EAAIrJ,UAAY14M,EAAMymB,KAAKn1C,EAAMonO,UAAY14M,CAA9E,GACC,IAAI/E,GAAG,IACX,CAED,SAASw0T,GAAYjrI,EAAK0+I,EAAa7wU,EAAM21M,GAC3C,OAAO9kD,GAAa,CAAC,EAAG7wJ,EAAM21M,EAAO,CACnCs7H,WAAYD,GAAc7+I,EAAKwjB,EAAMi7H,cAAeC,GACpDv+D,UAAWq+D,GAAmBx+I,EAAKwjB,EAAMi7H,cAAeC,IAE3D,CAMM,SAASnpJ,GAASomI,EAAY37H,GACnC,OAAOviF,GAAKk+M,GAAY,SAACiH,GAAD,IAAahxR,EAAb,uDAAoBusS,GAApB,OAAmCn+I,EAAIr7J,OAAOg0O,QAAQlrP,OAAOkrK,KAAKM,IAAUylJ,GAAe9jB,GAAc,CAAC56H,EAAIr7J,OAAOkmR,QAAQk0B,UAAUnc,GAAa5iI,EAAIr7J,OAAOkmR,QAAQ6V,WAAWkC,EAAYhxR,KAAQ+mJ,KAAK3lM,IAAI,QAAE6a,EAAMmxU,GAAR,SAAqBA,EAAQhsV,KAAI,CAACmjB,EAAG7oB,IAAU29U,GAAYjrI,EAAK0+I,EAAa7wU,EAAKvgB,GAAQ6oB,IAA1F,OAA/M,GACzB,CAKM,MAAMoT,GAAUq4S,IAAU,CAAC5hI,EAAKs+D,EAAW1sN,IAASouJ,EAAIr7J,OAAOkmR,QAAQt1H,SAAS,CAAC+oE,GAAY1sN,KCpD7F,SAASqtS,GAActjB,EAAY37H,GACxC,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIr7J,OAAOg0O,QAAQ+oD,UAAU/oI,KAAKM,IAAU,QAAC,UACzEqiJ,GADwE,SAEpEt7I,EAAIwjB,MAAMqnG,QAAQq0B,iBAAiB5D,EAFiC,MAG3E,CCVgB,IAAI3sP,IAArB,MAiBawwP,GAAkB,CAC7BC,IAAK,KADwB,EAE7Bn0V,QAAS,KAFoB,EAG7B0H,IAAK,KAHwB,EAI7BC,IAAK,CAACwb,EAAGthB,IAAUA,GCnBrB,IAAIuyV,GAEJ,SAASC,GAAUC,EAAU7qV,GAC3B,MAAO,CACL0qV,IAAK98N,GAAW5tH,EAAM0qV,IAAN,UAAaG,GAAb,OAAwBj9N,IACxCr3H,QAASyJ,EAAMzJ,QACf0H,IAAK2vH,IACH,MAAM13H,EAAM,GAAH,OAAM20V,GAAN,OAAiBj9N,GACpB7nH,EAAS/F,EAAM/B,IAAI/H,GAEzB,GAAI6P,EAGF,OAFAA,EAAOzI,EAAIu6B,KAAKD,MAChB53B,EAAM9B,IAAIhI,EAAK6P,GACRA,EAAO0P,CAGhB,EAEFvX,IAAK,CAAC0vH,EAASn4G,KACbzV,EAAM9B,IAAN,UAAa2sV,GAAb,OAAwBj9N,GAAW,CACjCn4G,IACAnY,EAAGu6B,KAAKD,OAFV,EAML,CAED,SAASwrS,GAAWpjU,GAElB,MAAM43B,EAAMC,KAAKD,MACX/Y,EAAM,GACZ7e,EAAMzJ,SAAQ,CAACL,EAAD,KAER,IAFc,EAClBoH,GACI,EACJs6B,EAAMt6B,EAnCY,QAmCSuhB,EAAIjpB,KAAKM,EAApC,IAGF2oB,EAAItoB,SAAQL,GAAO8J,EAAM0qV,IAAIx0V,IAC9B,CCvCM,SAAS40V,GAAYC,EAAWliH,EAAKmiH,GAC1C,MAAMC,EAAW,GAAH,OAAMF,EAAN,YAAmBliH,EAAIvnO,YACrC,MAAO,CAAC2pV,EAAUD,OAAal1V,EAAY60V,GAAY1sV,IAAIgtV,GAC5D,CACM,SAASC,GAAiBH,EAAWI,EAAMH,GAEhD,OADeA,EAAa,GAAKG,EAAK7sV,KAAI/G,GAAKozV,GAAY1sV,IAAZ,UAAmB8sV,EAAnB,YAAgCxzV,EAAE+J,eAAe8W,QAAO3C,KAAOA,GAE/G,CACM,SAAS21U,GAAYH,EAAUD,EAAY5yV,GAEhD,OADC4yV,GAAcL,GAAYzsV,IAAI+sV,EAAU7yV,GAClCA,CACR,CACM,SAASizV,GAAiBN,EAAWC,EAAYp3U,GAEtD,OADCo3U,GAAcp3U,EAAOrd,SAAQkf,GAAKk1U,GAAYzsV,IAAZ,UAAmB6sV,EAAnB,YAAgCt1U,EAAEozN,IAAIvnO,YAAcmU,KAChF7B,CACR,CACM,SAAS03U,GAAiBH,EAAMplV,EAAQ+oN,GAC7C,OAAOq8H,EAAK7sV,KAAI/G,GAAKwO,EAAO0lB,MAAK,QAAC,IAChCo9M,GAD+B,SAE3BtxO,EAAEqsB,GAAGilN,EAFsB,KAEb/Z,EAAMrjM,MAAK,QAAC,IAC9Bo9M,GAD6B,SAEzBtxO,EAAEqsB,GAAGilN,EAFoB,KAGhC,CCRM,SAAS0iH,GAAWlyV,EAAOmyV,GAChC,MAAMC,EAAa5zV,KAAK8a,KAAKtZ,EAAMhE,OAASm2V,GAE5C,GAAmB,IAAfC,EACF,MAAO,CAACpyV,GAGV,MAAMqC,EAASkD,MAAM6sV,GAErB,IAAK,IAAIx0V,EAAI,EAAGA,EAAIw0V,EAAYx0V,IAAK,CACnC,MAAMsF,EAAStF,EAAIu0V,EACnB9vV,EAAOzE,GAAKoC,EAAMJ,MAAMsD,EAAQA,EAASivV,EAC1C,CAED,OAAO9vV,CACR,EFYM,WAA4C,IAApBI,EAAoB,uDAAX,GAAIkE,EAAO,uCACjD2qV,GAAc3qV,EAAQ4qV,GAAU,UAAD,OAAW9uV,EAAX,KAAsBkE,GAASyqV,GAE1DzqV,GACFojU,GAAWpjU,EAEd,CACD0rV,GG7BO,SAASC,GAAWR,EAAMpvL,GAC/B,OAAOovL,EAAK/yU,QAAO7gB,IAAMwkK,EAAKnkC,MAAK,QAAC,IAClCixG,GADiC,SAE7BtxO,EAAEqsB,GAAGilN,EAFwB,KAGpC,CACM,SAAS+iH,GAAkBzrV,GAChC,MAAO,CAAC8mU,EAAY37H,IAEpBviF,GAAKk+M,GAAY,eAAC+jB,EAAD,+DAAwB1/I,EAAIr7J,OAAOkmR,QAAQ01B,aAAab,GAAY/mJ,KAAKM,IAAUhtM,GAAK+zM,EAAIr7J,OAAOkmR,QAAQh2T,GAAI5I,EAAGyzV,KAAlH,GAClB,CACM,SAASc,GAAyB3rV,GACvC,MAAO,CAAC8mU,EAAY37H,IAEpBviF,GAAKk+M,GAAY,SAACr9D,GAAD,IAAYohF,EAAZ,+DAAmC1/I,EAAIr7J,OAAOkmR,QAAQ01B,aAAab,GAAY/mJ,KAAKM,IAAUhtM,GAAK+zM,EAAIr7J,OAAOkmR,QAAQh2T,GAAIypQ,EAAWryQ,EAAGyzV,KAAxI,GAClB,CACM,SAASe,GAAU5rV,GACxB,MAAO,CAAC8mU,EAAY37H,IAEpBviF,GAAKk+M,GAAYp+F,GAAOv9B,EAAIr7J,OAAOkmR,QAAQh2T,GAAI0oO,GAAK,IACrD,CACM,SAASmjH,GAAY7rV,GAC1B,MAAO,CAAC8mU,EAAY37H,IAEpBviF,GAAKk+M,GAAY,CAACkkB,EAAMH,IAAgBG,EAAK91V,OAnC/C,SAAmB81V,EAAMhrV,GACvB,MAAM8rV,EAAUV,GAAWJ,EAHN,IAIrB,IAAIvyV,EAAQ,EACZ,MAAMu6I,EAAU,IAAIyyL,GAAgBqmB,EAAQrzV,IAC5C,OAAOu6I,EAAQ8wD,KAAKM,GAAUpkM,GAAKumU,IAAI,KACrCr6M,IAAS,KACPzzH,IACAA,IAAUqzV,EAAQ52V,OAAS89I,EAAQjC,WAAaiC,EAAQ/4I,KAAK6xV,EAAQrzV,GAArE,GAFF,IAIEmmC,KAAWzgC,GAAIq8U,IACpB,CAyBgEuR,CAAUf,GAAMA,GAAQjlB,GAAcilB,EAAK7sV,KAAI/G,GAAK+zM,EAAIr7J,OAAOkmR,QAAQh2T,GAAI5I,EAAGyzV,QAAvFjiP,GAAG,KAC1D,CCxCD,MAAMgiP,GAAY,cAElB,SAASoB,GAAWtjH,EAAKujH,GACvB,MAAMzkE,EAAa,CAAC,EACdrnB,EAAa,CAAC,EAepB,OAdA8rF,EAAQ71V,SAAQ,IAAqB,IAAnBL,EAAKm2V,GAAc,EACnC,MAAMzH,EAAc1uV,EAAIgQ,KAAK,GAAG5E,WAChCg/P,EAAWskF,GAAeyH,EAC1BA,EAAS3iE,OAAOnzR,SAAQ,CAAC,EAEtBo3S,KAAmB,IAFG,IACvB3gG,GACoB,EACpB,MAAMs/I,EAAct/I,EAAI1rM,WACxBqmR,EAAW2kE,GAAe3kE,EAAW2kE,IAAgB,GACrD3kE,EAAW2kE,GAAa12V,KAAK,CAC3BgvV,cACAj3C,kBAFF,GALF,IAWK,CACL9kE,MACA8+C,aACArnB,aAEH,CAEM,SAASisF,GAAatlB,EAAY37H,GACvC,OAAOviF,GAAKk+M,GAAY,SAACp+F,GAA4B,IAAvBmiH,EAAuB,wDACnD,MAAOC,EAAUllV,GAAU+kV,GAAYC,GAAWliH,EAAKmiH,GACvD,OAAOjlV,EAASgjG,GAAGhjG,GAAUulM,EAAIwjB,MAAMqnG,QAAQq2B,mBAAmBj2R,QAAQsyK,GAAK5kC,KAAK3lM,IAAIknB,GAAK4lU,GAAYH,EAAUD,EAAYmB,GAAWtjH,EAAKrjN,MAChJ,GACF,CACM,MAAMinU,GAAcV,GAAU,gBACxBW,GAAgBV,GAAY,gBAC5BW,GAAef,GAAkB,iBCnCvC,SAASC,GAAa5kB,EAAY37H,GACvC,OAAOviF,GAAKk+M,GAAY+jB,GAAc1/I,EAAI0gI,WAAW,CAAC1gI,EAAIwjB,MAAMqnG,QAAQywB,UAAWt7I,EAAIwjB,MAAMqnG,QAAQy2B,eAAe3oJ,KAAK3lM,IAAI,IAAkC,IAAhCuuV,EAAcD,GAAkB,EAC7J,MAAM9mV,EAAS,GACT05B,EAAMotT,EAAap9U,WACnBo3U,EAAYiG,EAAa3rH,kBAAkBtoO,MACjD,IAAIk0V,EAAUlG,EAEd,KAAOkG,EAAQhpU,IAAIm1M,KAAYnzN,EAAOzQ,OAASmqC,GACzCstT,IAAYlG,IAA4B,IAAfoE,GAC3BllV,EAAOlQ,KAAK01M,EAAIG,SAASo3H,WAAW,WAAYiqB,IAGlDA,EAAUA,EAAQlqU,IAAIs2M,IAIxB,OAAOpzN,EAAO8b,SAAd,MAEH,CChBD,MAAMmpU,GAAY,YAElB,SAASgC,GAAT,GAEG,IAFoB,WACrBhoE,GACC,EACD,MAAO,IAAIA,EAAWxuN,WAAWn+C,QAAO,QAAE,CAAE/b,GAAJ,SAAgBA,EAAOyZ,GAAGmjN,GAA1B,IAAoCtkN,QAAO,CAAC7O,EAAD,KAAmC,IAAzB8+U,EAAavoV,GAAY,EAEpH,OADAyJ,EAAO8+U,EAAYtjV,YAAcjF,EAC1ByJ,CAAP,GACC,CAAC,EACL,CAUM,SAASknV,GAAY/lB,EAAY37H,GACtC,OAAOviF,GAAKk+M,GAAY,CAACkkB,EAAMH,KAC7B,IAAKG,EAAK91V,OACR,OAAO0zG,GAAG,IAGZ,MAAMhjG,EAASmlV,GAAiBH,GAAWI,EAAMH,GAC3CiC,EAAYtB,GAAWR,EAAMplV,GACnC,OAAQknV,EAAU53V,OAAsBi2M,EAAIwjB,MAAMqnG,QAAQq0B,iBAAiBpc,MAAM6e,GAAWhpJ,KAAK3lM,IAAIo4B,GAAK40T,GAAiBH,EAAMplV,EAAQslV,GAAiBN,GAAWC,EAhBzK,SAAmBG,EAAM9uV,GACvB,OAAO8uV,EAAK7sV,KAAI,CAACuqO,EAAKjwO,KAAN,CACdiwO,MACAqkH,UAAW7wV,EAAOzD,GAAOkuB,MACzBw5O,WAAYysF,GAAc1wV,EAAOzD,OAEpC,CAUoLu0V,CAAUF,EAAWv2T,QAA3KqyE,GAAGhjG,EAA9B,GAEH,CACM,MAAMqnV,GAAaxB,GAAkB,eClBrC,SAASyB,GAAUpmB,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAY,CAACp+F,EAAKmiH,KAC5B,MAAOC,EAAUllV,GAAU+kV,GAfb,WAeoCjiH,EAAKmiH,GACvD,OAAOjlV,EAASgjG,GAAGhjG,GAAUulM,EAAIwjB,MAAMqnG,QAAQm3B,mBAAmB/2R,QAAQsyK,GAAK5kC,KAAK3lM,IAAIknB,GAAK4lU,GAAYH,EAAUD,EAdvH,SAAkBniH,EAAKhqN,GACrB,MAAMyhP,EAAa,CAAC,EAIpB,OAHAzhP,EAAItoB,SAAQ,IAAkB,IAAhBL,EAAKq3V,GAAW,EAC5BjtF,EAAWpqQ,EAAIgQ,KAAK,GAAG5E,YAAcisV,CAArC,IAEK,CACL1kH,MACAy3B,aAEH,CAKkIktF,CAAS3kH,EAAKrjN,MAA7I,GAEH,CACM,MAAMioU,GAAW1B,GAAU,aACrB2B,GAAa1B,GAAY,aACzB2B,GAAY/B,GAAkB,cCrBrCb,GAAY,aASX,SAAS6C,GAAa3mB,EAAY37H,GACvC,OAAOviF,GAAKk+M,GAAY,CAACkkB,EAAMH,KAC7B,IAAKG,EAAK91V,OACR,OAAO0zG,GAAG,IAGZ,MAAMhjG,EAASmlV,GAAiBH,GAAWI,EAAMH,GAC3CiC,EAAYtB,GAAWR,EAAMplV,GAEnC,OAAKknV,EAAU53V,OAIRi2M,EAAIwjB,MAAMqnG,QAAQ03B,oBAAoBzf,MAAM6e,GAAWhpJ,KAAK3lM,IAAIknB,GAAK8lU,GAAiBH,EAAMplV,EAAQslV,GAAiBN,GAAWC,EApB3I,SAAoBG,EAAM2C,GACxB,OAAO3C,EAAK7sV,KAAI,CAACuqO,EAAKjwO,KAAN,CACdiwO,MACAklH,UAAWD,EAAWl1V,GAAOsoO,qBAEhC,CAesJ8sH,CAAWf,EAAWznU,QAHhKujF,GAAGhjG,EAGZ,GAEH,CACM,MAAMkoV,GAAcrC,GAAkB,gBCPtC,SAASsC,GAAYjnB,EAAY37H,GACtC,OAAOviF,GAAKk+M,GAAY,CAACp+F,EAAKmiH,KAC5B,MAAOC,EAAUllV,GAAU+kV,GApBb,aAoBoCjiH,EAAKmiH,GACvD,OAAOjlV,EAASgjG,GAAGhjG,GAAUmgU,GAAc,CAAC56H,EAAIwjB,MAAMqnG,QAAQg4B,oBAAoB53R,QAAQsyK,GAAMv9B,EAAIwjB,MAAMqnG,QAAQi4B,oBAAoB73R,QAAQsyK,KAAO5kC,KAAK3lM,IAAI,QAAE4pB,EAAGzS,GAAL,SAAY21U,GAAYH,EAAUD,EAnBpM,SAAoBniH,EAAKwlH,EAAMC,GAC7B,MAAM3mE,EAAa,CAAC,EACdrnB,EAAa,CAAC,EAOpB,OANA+tF,EAAK93V,SAAQ,IAAuB,IAArBL,EAAKq4V,GAAgB,EAClC5mE,EAAWzxR,EAAIgQ,KAAK,GAAG5E,YAAcitV,EAAW/uH,QAAhD,IAEF8uH,EAAK/3V,SAAQ,IAAmB,IAAjBL,EAAKs4V,GAAY,EAC9BluF,EAAWpqQ,EAAIgQ,KAAK,GAAG5E,YAAcktV,EAAOttH,kBAAkB,EAA9D,IAEK,CACL2H,MACA8+C,aACArnB,aAEH,CAK+MmuF,CAAW5lH,EAAK3gN,EAAGzS,GAAjE,IAA9J,GAEH,CACM,MAAMi5U,GAAa3C,GAAU,eACvB4C,GAAe3C,GAAY,eAC3B4C,GAAchD,GAAkB,gBC3BvCiD,GAAgB,CACpBC,gBAAgB,EAChBC,cAAc,EACdlF,WAAW,GAGb,SAASmF,GAAgBC,EAAa3uF,GACpC,OAAOq6E,GAAa,CAACsU,EAAa3uF,EAAWloP,QAAO3C,IAAMw5U,EAAYxjU,MAAKvD,GAAKA,EAAEtE,GAAGnO,QACtF,CAEM,SAASy5U,GAAYjoB,EAAY37H,GACtC,OAAOviF,GAAKk+M,GAAY,eAAC5wO,EAAD,uDAASw4P,GAAT,OAA2BvjJ,EAAIr7J,OAAOkmR,QAAQ71D,aAAar8D,KAAKM,IAAU,QAAC,YACjG0qJ,EADiG,WAEjG3uF,GAFgG,SAG5Fh1D,EAAIr7J,OAAOkmR,QAAQ6V,WAAWgjB,GAAgBC,EAAa3uF,GAAajqK,GAAO4tG,KAAK3lM,IAAIy6B,IAAQ,CACpGA,OACAk2T,cACA3uF,iBANgG,IAA1E,GAQzB,CCVM,MAAMnnP,GAAO+zT,IAAU,CAAC5hI,EAAK6jJ,IAAY7jJ,EAAIr7J,OAAOkmR,QAAQk0B,UAAU,CAAC8E,MACvE,SAAS9E,GAAUpjB,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAYmoB,GAAYA,EAAS/5V,OAASi2M,EAAIwjB,MAAMm1D,QAAQorE,aAAaprJ,KAAKM,IAAU8qJ,IAClG,IAAIC,EAEJ,OAAOppB,GAAc,CAACn9N,GAAGsmP,GAA4D,QAA9CC,EAAsBhkJ,EAAIskI,OAAO3rD,eAA6C,IAAxBqrE,GAAkCA,EAAoBC,eAAiBjkJ,EAAIwjB,MAAMm1D,QAAQurE,SAASphB,MAAMghB,EAAS9wV,KAAImnB,GAAK,CAAC6lL,EAAIskI,OAAO3rD,QAAQsrE,eAAgB9pU,MAAOygT,GAAckpB,EAAS9wV,KAAImnB,GAAK6lL,EAAIwjB,MAAMm1D,QAAQurE,SAAS/pU,OAA7T,IACEnnB,IAAI,QAAE+wV,EAAYG,GAAd,SAA4BJ,EAAS9wV,KAAI,CAAC6wV,EAASv2V,IAf7D,SAAqBu2V,EAASE,EAAYG,GACxC,MAAMC,GAAcJ,EAAW5jU,MAAK,QAAEikU,GAAF,SAAiBA,EAAU9rU,GAAGurU,EAA9B,KAA2C,MAACr5V,EAAW,KAAK,GAC1F65V,EAAiBH,EAASvuH,SAAS,IACzC,MAAO,CACL0uH,eAAgB/wV,MAAM4G,QAAQmqV,GAAkBA,EAAiB,IAAIA,EAAe/7U,UACpF67U,WAAY7wV,MAAM4G,QAAQiqV,GAAcA,EAAa,IAAIA,EAAW77U,UAEvE,CAQsEg8U,CAAYT,EAASE,EAAYG,EAAS52V,KAAvG,KAAoHmwG,GAAG,KAChI,CCZM,SAASm8O,GAASje,EAAY37H,GACnC,OAAOviF,GAAKk+M,GAAY,IAAMf,GAAc,CAAC56H,EAAIr7J,OAAOg0O,QAAQ+oD,UAAW1hI,EAAIr7J,OAAOkmR,QAAQ71D,eAAer8D,KAAK3lM,IAAI,QAAE0uU,GAAS,YAC/HiiB,EAD+H,WAE/H3uF,IAFoH,SAG/Gt2F,GAAa,CAAC,EAAGgjK,EAAS,CAC/BiiB,cACA3uF,cALoH,MAOvH,CCZM,SAASuvF,GAAc5oB,EAAY37H,GAExC,OAAOviF,GAAKk+M,GAAY,CAACr9D,EAAWuhF,EAAM2E,IAAgB3E,EAAK91V,OAAS6wU,GAAc,CAACA,GAAcilB,EAAK7sV,KAAI/G,GAAK+zM,EAAIwjB,MAAMqnG,QAAQq2B,mBAAmBj1V,EAAGqyQ,MAAcs8D,GAAcilB,EAAK7sV,KAAI/G,GAAK+zM,EAAIwjB,MAAMqnG,QAAQ45B,YAAYx4V,EAAGqyQ,QAAe3lE,KAAK3lM,IAAI,QAAE0xV,EAAKC,GAAP,SAAgB9E,EAAK7sV,KAAI,CAACuqO,EAAKjwO,KAAN,CACrRs3V,QAASF,EAAIp3V,GACbiwO,MACAwjH,SAAU4D,EAAIr3V,MAH8O,KAItPmwG,GAAG,KACZ,CACM,MAAMonP,GAAcjjB,IAAU,CAAC5hI,EAAKs+D,EAAW/gC,IAAQv9B,EAAIr7J,OAAOkmR,QAAQ05B,cAAcjmF,EAAW,CAAC/gC,IAAM,KACpGunH,GAAetE,GAAyB,iBCT9C,SAASuE,GAAYppB,EAAY37H,GAEtC,OAAOviF,GAAKk+M,GAAY,CAACr9D,EAAWuhF,EAAM2E,IAAgB3E,EAAK91V,OAAS6wU,GAAc,CAACA,GAAcilB,EAAK7sV,KAAI/G,GAAK+zM,EAAIwjB,MAAMqnG,QAAQi4B,oBAAoB72V,EAAGqyQ,MAAcs8D,GAAcilB,EAAK7sV,KAAI/G,GAAK+zM,EAAIwjB,MAAMqnG,QAAQg4B,oBAAoB52V,EAAGqyQ,QAAe3lE,KAAK3lM,IAAI,QAAEgwV,EAAMD,GAAR,SAAkBlD,EAAK7sV,KAAI,CAACuqO,EAAKjwO,KAAN,CAChSiwO,MACA/hN,MAAOwnU,EAAK11V,GAAOooO,OAASstH,EAAK11V,GAAO4mO,SAAS,GAAK6uH,EAAKz1V,GAAOsoO,qBAFmM,KAG/Pn4H,GAAG,KACZ,CACM,MAAM+hL,GAAWoiD,IAAU,CAAC5hI,EAAKs+D,EAAW/gC,IAAQv9B,EAAIr7J,OAAOkmR,QAAQk6B,YAAYzmF,EAAW,CAAC/gC,IAAM,KAC/FynH,GAAaxE,GAAyB,eC+BnD,SAASyE,GAASjlJ,EAAKs7I,EAAWwI,EAAU/4P,GAC1C,OAhBF,SAAsBi1G,EAAK8jJ,EAAUxI,EAArC,GAOG,IAP6C,eAC9CkI,EAD8C,gBAE9CpF,EAF8C,aAG9CqF,EAH8C,WAI9CpF,EAJ8C,gBAK9CC,EAL8C,UAM9CC,GACC,EACD,MAAM2G,EAAYllJ,EAAIG,SAASo3H,WAAW,uBACpC4tB,EAAYnlJ,EAAIG,SAASo3H,WAAW,qBACpC6tB,EAAYplJ,EAAIG,SAASo3H,WAAW,YACpC8tB,EAAarlJ,EAAIG,SAASo3H,WAAW,kBAC3C,OAAOqD,GAAc,CAAC4oB,GAAkBnF,EAAazjB,GAAckpB,EAAS9wV,KAAImnB,GAAK6lL,EAAIwjB,MAAMqnG,QAAQy6B,OAAOnrU,MAAOsjF,GAAGqmP,EAAS9wV,KAAI,IAAM,QAAQsrV,EAAkB1jB,GAAckpB,EAAS9wV,KAAImnB,GAAK6lL,EAAIwjB,MAAMqnG,QAAQxuC,WAAWliQ,MAAOsjF,GAAGqmP,EAAS9wV,KAAI,IAAMkyV,KAAa9G,EAAkBxjB,GAAckpB,EAAS9wV,KAAImnB,GAAK6lL,EAAIwjB,MAAMqnG,QAAQ06B,MAAMprU,MAAOsjF,GAAGqmP,EAAS9wV,KAAI,IAAMmyV,KAAa5G,EAAY3jB,GAAckpB,EAAS9wV,KAAImnB,GAAK6lL,EAAIwjB,MAAMqnG,QAAQ71D,WAAW76O,MAAOsjF,GAAGqmP,EAAS9wV,KAAI,IAAMqyV,KAAc5B,EAAe7oB,GAAckpB,EAAS9wV,KAAImnB,GAAK6lL,EAAIwjB,MAAMqnG,QAAQ45B,YAAYnJ,EAAWnhU,MAAOsjF,GAAGqmP,EAAS9wV,KAAI,IAAMoyV,MAC1mB,CAGQI,CAAaxlJ,EAAK8jJ,EAAUxI,EAAWvwP,GAAO4tG,KAAKM,IAAU,QAAEwsJ,EAAiBC,EAAeC,EAAmBC,EAAgB7E,GAArE,SA3BtE,SAAoB/gJ,EAAK6lJ,EAAzB,GAEG,IAF8B,WAC/BxH,GAAa,GACZ,EACD,MAAMn0H,EAAM27H,EAAO/4U,QAAO49B,GAAK2zS,KAAgB3zS,GAAKA,EAAEgrL,SAAQ1iO,KAAI03C,GAAKA,EAAEwpL,WACnE4xH,EAAW9lJ,EAAIG,SAASo3H,WAAW,yBACzC,OAAQrtG,EAAIngO,OAAS6wU,GAAc1wG,EAAIl3N,KAAImnB,GAAK6lL,EAAIwjB,MAAMqnG,QAAQk7B,OAAO5rU,MAAOsjF,GAAG,KAAKk7F,KAAK3lM,IAAIgzV,IAC/F,IAAI/0V,GAAU,EACd,OAAO40V,EAAO7yV,KAAI03C,GAAKA,GAAKA,EAAEgrL,QAASswH,IAAa/0V,IAAsB60V,GAA1E,IAEH,CAkBwJG,CAAWjmJ,EAAKylJ,EAAiB16P,GAAO4tG,KAAK3lM,IAAIkzV,GAAqBpC,EAAS9wV,KAAI,CAAC6wV,EAASv2V,IAxCtP,SAAsBu2V,EAAS4B,EAAiBC,EAAeC,EAAmBC,EAAgB7E,EAAUoF,GAC1G,MAAO,CACL7nF,UAAWulF,EACXuC,aAAcX,GAAmBA,EAAgB9vH,SAAS,MAC1DorH,WACA1kE,WAAYqpE,EAAchwH,OAASgwH,EAAcxxH,SAAS6oD,QAAU,GACpE4oE,oBACAlH,cAAe0H,EAAiBvwH,kBAChCiuH,UACA+B,iBAEH,CA6B+PS,CAAaxC,EAAS4B,EAAgBn4V,GAAQo4V,EAAcp4V,GAAQq4V,EAAkBr4V,GAAQs4V,EAAet4V,GAAQyzV,EAASzzV,GAAQ44V,EAAkB54V,QAAlV,IACrE,CAOM,MAAMk2N,GAAQo+G,IAAU,CAAC5hI,EAAKs+D,EAAWvzK,IAAUi1G,EAAIr7J,OAAOkmR,QAAQ6V,WAAW,CAACpiE,GAAYvzK,KAC9F,SAAS21O,GAAW/E,EAAY37H,GACrC,OAAOviF,GAAKk+M,GAAY,CAACiH,EAAY73O,IAAUi1G,EAAIr7J,OAAOg0O,QAAQ+oD,UAAU/oI,KAAKM,IAAU,IAErF,IAFsF,UAC1FqiJ,GACI,EACJ,MAAMwI,EAAWlhB,EAAW5vU,KAAIwpB,GAAKwjL,EAAIG,SAASo3H,WAAW,YAAa/6S,KAC1E,OAAOsnU,EAAS/5V,OAASk7V,GAASjlJ,EAAKs7I,EAAWwI,EAAU/4P,GAAS0S,GAAG,GAAxE,MAEH,CCzDM,SAAS6oP,GAAiB3qB,EAAY37H,GAC3C,OAAOviF,GAAKk+M,GAAY,SAACiH,EAAYid,GAA6B,IAAvBH,EAAuB,wDAChE,MAAM6G,EAAY3jB,EAAW5vU,KAAIwpB,GAAKwjL,EAAIG,SAASo3H,WAAW,YAAa/6S,GAAGxmB,aAC9E,OAAOgqM,EAAIr7J,OAAOkmR,QAAQu2B,cAAcvB,EAAMH,GAAY/mJ,KAAK3lM,IAAIkpR,GAAaqqE,EAAUvzV,KAAIwzV,GAAYtqE,EAAUlpR,KAAI,IAIlH,IAJmH,IACvHuqO,EACA8+C,WAAYoqE,EACZzxF,WAAY0xF,GACR,EACJ,MAAMC,IAAgBD,EAAcF,GAC9BxxF,EAAa,CAAC,EACd4xF,EAAaH,EAAcD,IAAa,GAY9C,OAVIG,EACF3xF,EAAWwxF,GAAYE,EAAcF,GAC5BI,GACTA,EAAW37V,SAAQ,IAEb,IAFc,YAClBquV,GACI,EACJtkF,EAAWskF,GAAeoN,EAAcpN,EAAxC,IAIG,CACL/7G,MACA90K,SAAU77D,OAAOihB,KAAKmnP,GAAYjrQ,OAClC48V,cACAC,aACA5xF,aALF,QAQH,GACF,CACM,SAAS6xF,GAAgBlrB,EAAY37H,GAC1C,OAAOviF,GAAKk+M,GAAY,SAACiH,GAAD,IAAa8c,EAAb,+DAAoC1/I,EAAIr7J,OAAOkmR,QAAQ01B,aAAab,GAAY/mJ,KAAKM,IAAU4mJ,GAAQ7/I,EAAIr7J,OAAOkmR,QAAQy7B,iBAAiB1jB,EAAYid,EAAMH,KAA7J,GACzB,CACM,MAAMoH,GAAiBllB,IAAU,CAAC5hI,EAAKs+D,EAAWohF,IAAe1/I,EAAIr7J,OAAOkmR,QAAQg8B,gBAAgB,CAACvoF,GAAYohF,KClCjH,SAASqH,GAAcprB,EAAY37H,GACxC,OAAOviF,GAAKk+M,GAAY,CAACr9D,EAAWuhF,EAAMH,KACxC,MAAM8G,EAAWxmJ,EAAIG,SAASo3H,WAAW,YAAaj5D,GAAWtoQ,WACjE,OAAOgqM,EAAIr7J,OAAOkmR,QAAQ62B,YAAY7B,EAAMH,GAAY/mJ,KAAK3lM,IAAIjC,GAAUA,EAAOiC,KAAI,QAAC,IACrFuqO,EADqF,UAErFqkH,EAFqF,WAGrF5sF,GAHoF,QAI/E,CACLz3B,MACAqkH,YACA7wV,OAAQikQ,EAAWwxF,IAAaxmJ,EAAIG,SAASo3H,WAAW,eAP4B,MAAtF,GAUH,CACM,MAAMyvB,GAAexG,GAAyB,iBCd9C,SAASyG,GAAatrB,EAAY37H,GAEvC,OAAOviF,GAAKk+M,GAAY,CAACr9D,EAAWuhF,EAAM2E,IAAgBxkJ,EAAIwjB,MAAMqnG,QAAQm3B,mBAAmBlf,MAAM+c,EAAK7sV,KAAI/G,GAAK,CAACA,EAAGqyQ,MAAa3lE,KAAK3lM,IAAIugB,GAAOA,EAAIvgB,KAAI,CAAC4yV,EAAgBt4V,KAAjB,CAC1JiwO,IAAKsiH,EAAKvyV,GACVs4V,yBAEH,CACM,MAAMsB,GAAc1G,GAAyB,gBCNpD,SAAS2G,GAAannJ,EAAK6jJ,EAA3B,EAA0E3nE,GAAW,IAAhD4lE,EAAYO,EAAWM,GAAyB,EACnF,OAAOzmE,EAAUlpR,KAAI,IAMf,IANgB,IACpBuqO,EADoB,QAEpB90K,EAFoB,YAGpBk+R,EAHoB,WAIpBC,EACA5xF,WAAYoyF,GACR,EACJ,MAAM,UACJxF,EACA5sF,WAAYqyF,GACVvF,EAAW3hU,MAAKiL,GAAKA,EAAEmyM,IAAIjlN,GAAGilN,MAAS,CACzCqkH,UAAWj0H,GACXqnC,WAAY,CAAC,IAET,UACJytF,GACEE,EAAYxiU,MAAKjG,GAAKA,EAAEqjN,IAAIjlN,GAAGilN,MAAS,CAC1CklH,UAAWziJ,EAAIG,SAASo3H,WAAW,aAGnCviE,WAAYsyF,GACVjF,EAAUliU,MAAKiL,GAAKA,EAAEmyM,IAAIjlN,GAAGilN,MAAS,CACxCy3B,WAAY,CAAC,GAETA,EAAa,CAAC,EACdwxF,EAAW3C,EAAQ7tV,WAgCzB,OA/BApJ,OAAOq+D,QAAQm8R,GAAen8V,SAAQ,IAA6B,IAA3BquV,EAAayH,GAAc,EACjE,IAAIwG,EAAuBC,EAE3B,MAAMC,EAAYJ,EAAa/N,IAAgB3rH,GACzC+5H,GAAkE,QAAtDH,EAAwBD,EAAYhO,UAAoD,IAA1BiO,OAAmC,EAASA,EAAsBzmE,WAAW5sD,WAAavG,GACpKg6H,GAAmD,QAAtCH,EAAkBzG,EAASvlU,aAAuC,IAApBgsU,OAA6B,EAASA,EAAgBtzH,WAAavG,GACpI,IACI7gO,EADA86V,EAAQj6H,GAGZ,KAAMg6H,EAAS/9U,UAAY69U,EAAU79U,UAAYg4U,EAAUh4U,UAAW,CACpEg+U,EAAQnF,EAAU73U,IAAI68U,GAAWlwU,IAAIqqU,GACrC,MAAMiG,EAASH,EAAQ98U,IAAIg9U,GAAOrwU,IAAIy2M,IACtC,IAAI85H,EAEJ,GAAIxO,IAAgBkN,EAClBsB,EAAS/G,EAAS5iE,IAAIjqD,aACjB,CACL,MAAM6zH,EAAYhH,EAAS3iE,OAAOj+P,MAAK,QAAC,IACtCuhL,GADqC,SAEjCA,EAAIppL,GAAGkuU,EAF0B,IAGvCsB,EAASC,EAAYA,EAAUj7V,MAAMonO,SAAWvG,EACjD,CAED7gO,EAAQ86V,EAAMtwU,IAAIuwU,GAAQjkR,KAAKkkR,GAAQvwU,IAAIowU,GAAU1lT,KAAKq3S,IAAgBkN,EAAWqB,EAASl6H,GAC/F,CAEDqnC,EAAWskF,GAAe,CACxB99T,MAAOwkL,EAAIG,SAASo3H,WAAW,UAAWqwB,GAC1C96V,MAAOkzM,EAAIG,SAASo3H,WAAW,UAAWzqU,GAF5C,IAKK,CACLywO,MACAklH,YACAh6R,UACAk+R,cACAC,aACA5xF,aANF,GASH,CAED,SAASgzF,GAAkB/pE,GACzB,OAAOA,EAAQ50Q,QAAO,CAAC,EAAiB40Q,KAAY,IAA5B1qQ,EAAK00U,GAAuB,EAClD,MAAMC,EAAO,GAab,OAZAD,EAAS39V,KAAK49V,GACdjqE,EAAQhzR,SAAQ,QAAC,WACf+pQ,GADc,SAEVpoQ,OAAOihB,KAAKmnP,GAAY/pQ,SAAQquV,IAC/B4O,EAAKtjQ,SAAS00P,KACjB4O,EAAK59V,KAAKgvV,GAEL/lU,EAAIqxE,SAAS00P,IAChB/lU,EAAIjpB,KAAKgvV,GAEZ,GATa,IAWT,CAAC/lU,EAAK00U,EAAb,GACC,CAAC,GAAI,IACT,CAoBD,SAASE,GAActI,EAAMuI,EAA7B,GAGG,IAHmC,QACpCnqE,EADoC,cAEpCwgE,GACC,EACD,MAAM3xU,EAAS+yU,EAAK/yU,QAAO7gB,IAAMwyV,EAAcn+D,eAAeh0J,MAAKnyG,GAAKA,EAAE7B,GAAGrsB,OACvE+oQ,EAAaozF,EAAQp1V,KAAI,QAAEmX,GAAF,SAASA,CAAT,IACzBk+U,EAAkBD,EAAQp1V,KAAI,QAAE,CAAEmjB,GAAJ,SAAWA,CAAX,IACpC,OAAO8nQ,EAAQnxQ,QAAO,QAAC,QACrB27C,GADoB,SAEfA,CAFe,IAEN37C,QAAOqwQ,KAChBrwQ,EAAOw/G,MAAKrgI,GAAKkxR,EAAO5/C,IAAIjlN,GAAGrsB,OA5BxC,SAAuB+oQ,EAAYqzF,EAAiBlrE,GAClD,MAAMmrE,EAAK,GACX17V,OAAOihB,KAAKsvQ,EAAOnoB,YAAY/pQ,SAAQquV,IACrC,MAAMhsV,EAAQ0nQ,EAAW5nQ,QAAQksV,GAEjC,IAAe,IAAXhsV,EAAc,CAChB,MAAMi7V,EAAYF,EAAgB/6V,GAAOmxV,cAEvB,OAAd8J,QAAoC,IAAdA,GAAwBA,EAAUjoE,eAAeh0J,MAAKrgI,GAAKkxR,EAAO5/C,IAAIjlN,GAAGrsB,MACjGq8V,EAAGh+V,KAAKgvV,EAEX,KAEHgP,EAAGr9V,SAAQquV,WACFn8D,EAAOnoB,WAAWskF,EAAzB,GAEH,CAgBGkP,CAAcxzF,EAAYqzF,EAAiBlrE,IACpC,KACNrwQ,QAAO,QAAC,WACTkoP,GADQ,SAE+B,IAAnCpoQ,OAAOihB,KAAKmnP,GAAYjrQ,MAFpB,IAEkCiJ,KAAImqR,GAAUz+G,GAAa,CAAC,EAAGy+G,EAAQ,CACjFd,WAAYc,EAAOypE,WAAW95U,QAAO8P,GAAKugQ,EAAOnoB,WAAWp4O,EAAE08T,kBAEjE,CAEM,SAASmP,GAAmB9sB,EAAY37H,GAC7C,OAAOviF,GAAKk+M,GAAY,SAACkkB,GAAD,IAAOH,EAAP,+DAA8B9kB,GAAc,CAAC56H,EAAIr7J,OAAOkmR,QAAQ62B,YAAY7B,EAAMH,GAAa1/I,EAAIr7J,OAAOkmR,QAAQu3B,WAAWvC,EAAMH,GAAa1/I,EAAIr7J,OAAOkmR,QAAQy3B,aAAazC,EAAMH,IAAtL,GACzB,CACM,SAASgJ,GAAe/sB,EAAY37H,GACzC,OAAOviF,GAAKk+M,GAAY,SAACiH,EAAYid,GAAb,IAAmBH,EAAnB,+DAA0C9kB,GAAc,CAAC56H,EAAIr7J,OAAOkmR,QAAQ6V,WAAWkC,EAAY,CACzHyb,YAAY,IACVr+I,EAAIr7J,OAAOkmR,QAAQy7B,iBAAiB1jB,EAAYid,EAAMH,GAAa1/I,EAAIr7J,OAAOkmR,QAAQ49B,mBAAmB5I,EAAMH,KAAc/mJ,KAAKM,IAAU,IAAsC,IAApC+lJ,EAAS9iE,EAAWysE,GAAgB,EACpL,MAAMC,EAAa5J,EAAQhsV,KAAI,CAAC,EAG7B1F,KAH4B,IAAC,cAC9BmxV,EAD8B,QAE9BoF,GAF6B,SAGjBA,GAAYpF,EAAqB0I,GAAannJ,EAAK6jJ,EAAS8E,EAAYzsE,EAAU5uR,IAAtD,EAHX,IAK/B,GAAIoyV,EACF,OAAOjiP,GAAGmrP,GAGZ,MAAOlC,EAAemC,GAAmBb,GAAkBY,GAC3D,OAAO5oJ,EAAIr7J,OAAOkmR,QAAQ6V,WAAWgmB,EAAe,CAClDrI,YAAY,IACX1lJ,KAAK3lM,IAAI81V,GAAe9J,EAAQhsV,KAAI,CAAC,EAErC1F,KAFoC,IAAC,cACtCmxV,GADqC,SAE1B0J,GAActI,EAAMgJ,EAAgBv7V,GAAO0F,KAAIsmV,GAAe,CAACA,EAAawP,EAAY3oU,MAAKhK,GAAKA,EAAEmoP,UAAUhmP,GAAGghU,QAAiB,CAC7Ir7D,QAAS2qE,EAAWt7V,GACpBmxV,iBAJqC,MAFvC,IAbsB,GAsBzB,CACM,MAAMsK,GAAgBnnB,IAAU,CAAC5hI,EAAKs+D,EAAWohF,IAAe1/I,EAAIr7J,OAAOkmR,QAAQ01B,aAAab,GAAY/mJ,KAAKM,IAAU4mJ,GAAQ7/I,EAAIr7J,OAAOkmR,QAAQ69B,eAAe,CAACpqF,GAAYuhF,EAAMH,QACxL,SAASsJ,GAAuBrtB,EAAY37H,GACjD,OAAOviF,GAAKk+M,GAAY,CAACiH,EAAYid,IAASjd,EAAW74U,QAAU81V,EAAK91V,OAASi2M,EAAIr7J,OAAOkmR,QAAQ69B,eAAe9lB,EAAYid,GAAM,GAASpiP,GAAG,KAClJ,CACM,SAASwrP,GAAmBttB,EAAY37H,GAC7C,OAAOviF,GAAKk+M,GAAY,SAACiH,GAAD,IAAa8c,EAAb,+DAAoC1/I,EAAIr7J,OAAOkmR,QAAQ01B,aAAab,GAAY/mJ,KAAKM,IAAU4mJ,GAAQ7/I,EAAIr7J,OAAOkmR,QAAQm+B,uBAAuBpmB,EAAYid,KAA7J,GACzB,CCnKM,SAASqJ,GAAevtB,EAAY37H,GACzC,OAAOviF,GAAKk+M,GAAY,CAACr9D,EAAWuhF,EAAMH,KACxC,MAAM8G,EAAWxmJ,EAAIG,SAASo3H,WAAW,YAAaj5D,GAAWtoQ,WACjE,OAAOgqM,EAAIr7J,OAAOkmR,QAAQw4B,aAAaxD,EAAMH,GAAY/mJ,KAAK3lM,IAAIm2V,GAAWA,EAAQn2V,KAAI,QAAC,IACxFuqO,EADwF,WAExF8+C,EAFwF,WAGxFrnB,GAHuF,QAIlF,CACLz3B,MACA/hN,MAAO6gQ,EAAWmqE,IAAaxxF,EAAWwxF,IAAaxmJ,EAAIG,SAASo3H,WAAW,WANQ,MAAzF,GASH,CACM,MAAM6xB,GAAgB5I,GAAyB,kBCU/C,SAAS6I,GAAQ1tB,EAAY37H,GAClC,OAAOviF,GAAKk+M,GAAY,IAxB1B,SAAuB37H,GACrB,IAAIthM,EAAU6tB,KAAKD,MACnB,OAAO0zK,EAAIwjB,MAAMjB,OAAOp1M,SAASwrL,KAAK3lM,IAAIma,IACxCzO,EAAUyO,EAAOL,QAAO,IAGlB,IAHmB,MACvBs3C,EADuB,MAEvBy8K,GACI,EACJ,IACE,OAAOA,EAAMssG,kBAAsC,YAAlB/oR,EAAM89I,SAA0C,WAAjB99I,EAAMj1C,MAGvE,CAFC,MACA,OAAO,CACR,KACEod,KAAKD,MAAQ5tB,EACXA,KACLolU,GAAUplU,GAAU6gU,GAAI,CAC1BE,aAAa,IAEhB,CAO+B6pB,CAActpJ,GAAKrH,KAAKM,IAAU,IAAM+G,EAAIwjB,MAAMqnG,QAAQ71D,WAAWnnP,SAAS7a,IAAI6a,GAAQA,EAAK7a,KAAI,QAC/H4H,MAAOuP,IADwH,SAE3HA,CAF2H,IAExH2C,QAAO0P,GAAKA,QACtB,CC5BM,SAASmnU,GAAYhoB,EAAY37H,GACtC,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIwjB,MAAMqnG,QAAQ45B,YAAczkJ,EAAIr7J,OAAOg0O,QAAQ+oD,UAAU/oI,KAE3FM,IAAU,QAAC,WACTuiJ,GADQ,SAEJx7I,EAAIwjB,MAAMqnG,QAAQ45B,YAAY52U,KAAK2tU,EAF/B,IAE6CxoV,IAAI6a,GAAQA,EAAK7a,KAAI,QAC1E4H,MAAO,CAAE0jQ,IADiE,SAEtEA,CAFsE,OAEvDt+D,EAAIwjB,MAAMqnG,QAAQ0+B,kBACxC,CAKM,SAASv0F,GAAW2mE,EAAY37H,GACrC,OAAOviF,GAAKk+M,GAAY,IAExBf,GAAc,CAAC56H,EAAIwjB,MAAMm1D,QAAU34E,EAAIwjB,MAAMm1D,QAAQ3jB,aAAev3J,GAAG,IAAKuiG,EAAIwjB,MAAMqnG,QAAU7qH,EAAIr7J,OAAOkmR,QAAQ84B,cAAgBlmP,GAAG,MAAMk7F,KAAK3lM,IAAI,QAAEgiQ,EAAY2uF,GAAd,QAAgC,CACnLA,YAAaA,EAAY55V,OAAS45V,EAAc3uF,EAChDA,aAFmJ,MAItJ,CCpBD,MAAMuuF,GAAgB,CACpBC,gBAAgB,EAChBjF,WAAW,GAEN,SAASiL,GAAY7tB,EAAY37H,GACtC,OAAOviF,GAAKk+M,GAAY,eAAC5wO,EAAD,uDAASw4P,GAAT,OAA2B3oB,GAAc,CAAC56H,EAAIr7J,OAAOkmR,QAAQ71D,aAAch1D,EAAIr7J,OAAOkmR,QAAQw+B,YAAY1wJ,KAAKM,IAAU,IAEjI,KAFmI,YACjJ0qJ,GACC0F,GAAa,EACd,MAAMI,EAAU9F,EAAY3wV,KAAIwpB,GAAKA,EAAExmB,aACjC0zV,EAAUL,EAAQv8U,QAAO3C,IAAMs/U,EAAQ7kQ,SAASz6E,EAAEnU,cACxD,OAAOgqM,EAAIr7J,OAAOkmR,QAAQ6V,WAAWgpB,EAAS3+P,GAAO4tG,KAAK3lM,IAAIy6B,IAAQ,CACpEA,OACAi8T,cAFF,IALsB,GAUzB,CChBM,MAAMppB,GAAU6E,GAAkB,sBAC5BH,GAAeI,GAAuB,sBACtCL,GAAWM,GAAmB,sBAC9BH,GAAgBI,GAAwB,sBACxCL,GAAiBM,GAAyB,sBAC1CX,GAAYY,GAAoB,sBAChC3vS,GAAQ4vS,GAAgB,sBC0D9B,SAASb,GAAUjJ,EAAY37H,GACpC,OAAOviF,GAAKk+M,GAAY,IAAM37H,EAAIwjB,MAAMsnG,SAAW8P,GAAc,CAAC56H,EAAIwjB,MAAMsnG,SAASoa,gBAAiBllI,EAAIwjB,MAAMsnG,SAASl9D,cAAcj1D,KAAKM,IAAU,QAAEisI,EAAeykB,GAAjB,SAzBxJ,SAA2B3pJ,EAAKklI,EAAeykB,GAC7C,MAAMC,EAAc,GACdp6V,EAAQ01U,EAAchhU,WAE5B,IAAK,IAAI5W,EAAQ,EAAGA,EAAQkC,EAAOlC,IAC5Bq8V,EAAYr9N,MAAKh/G,GAAMA,EAAG48D,IAAI58E,MACjCs8V,EAAYt/V,KAAK01M,EAAIG,SAASo3H,WAAW,gBAAiBjqU,IAI9D,MAAMu8V,EAAS,IAAID,KAAgBD,GACnC,OAAO/uB,GAAc,CAAC56H,EAAIwjB,MAAMsnG,SAAS8Z,UAAU9B,MAAM+mB,GAAS7pJ,EAAIr7J,OAAO47R,QAAUvgI,EAAIr7J,OAAO47R,QAAQqE,YAAcnnO,GAAG,MAAMk7F,KAAK3lM,IAAI,QAAEw3U,EAAcsf,GAAhB,SAjD5I,SAAqB9pJ,EAArB,GAMG,IANuB,OACxB6pJ,EADwB,aAExBrf,EAFwB,YAGxBmf,EAHwB,iBAIxBG,EAJwB,cAKxB5kB,GACC,EACD,MAAMt3E,EAAY,GACZg3E,EAAY,GACZmlB,EAAkBD,EAAiBh9U,QAAO,QAAC,SAC/Ci4T,GAD8C,SAE1CA,IAAa/kI,EAAI1vL,GAAGw6S,SAASk/B,gBAAgBhhQ,GAAG+7O,IAAa/kI,EAAI1vL,GAAGw6S,SAASm/B,eAAejhQ,GAAG+7O,GAFrD,IAsBhD,OAnBA8kB,EAAO5+V,SAAQ,CAACqiB,EAAIhgB,KAClB,GAAIk9U,EAAal9U,GAAOooO,OAAQ,CAC9B,MAAM6qG,EAAUwpB,EAAgBj9U,QAAO,QAAC,SACtCi4T,GADqC,SAEjCA,GAAYz3T,EAAGgL,GAAGysT,EAASnqU,KAAK,GAFC,IAEI2jB,MAAK,CAAC/B,EAAGC,IAAMD,EAAEuoT,UAAYtoT,EAAEsoT,SAAWvoT,EAAEuoT,SAAS51T,OAAOq9B,cAAc/vB,EAAEsoT,SAAS51T,QAAUqN,EAAEuoT,UAAY,EAAI,IACtJmlB,EAAaP,EAAYr9N,MAAK69N,GAAcA,EAAW7xU,GAAGhL,KAC1DkpU,EAAU,CACdjW,UACAjzT,KACAy3T,SAAUyF,EAAal9U,GAAO4mO,UAG5Bg2H,EACFt8F,EAAUtjQ,KAAKksV,GAEf5R,EAAUt6U,KAAKksV,EAElB,KAEI,CACL5oF,YACAs3E,gBACAN,YAEH,CAaiLqG,CAAYjrI,EAAK,CAC/L6pJ,SACArf,eACAmf,cACAG,mBACA5kB,iBALwI,IAO3I,CAOyLklB,CAAkBpqJ,EAAKklI,EAAeykB,EAAxE,KAAyFlsP,GAAG,CAChPmwJ,UAAW,GACXs3E,cAAellI,EAAIG,SAASo3H,WAAW,iBACvCqN,UAAW,MAEd,CCrEM,SAASz3T,GAAOwuT,EAAY37H,GACjC,OAAOviF,GAAKk+M,GAAYruH,GAAastH,GAAc,CAAC56H,EAAI31B,IAAI9B,MAAMn3J,SAASk8L,GAAYtN,EAAI+rI,QAAQz+H,GAAW3U,KAAKM,IAAU8yI,GAAWA,EAAQxpH,OAAOp1M,cAAawrL,KAAK3lM,IAAI,QAAEie,EAAO9D,GAAT,QAAsB,CACjM8D,QACA9D,SAF2K,MAI9K,CCNM,MAEMk9U,GAAkB,IAAI5zU,GAAG,KACzB6zU,GAAmB,IAAI7zU,GAAG,GAC1B8zU,GAAgB,IAAI9zU,GAAG,KCApC,SAAS+zU,GAAYxqJ,EAAK5yL,GACxB,OAAO4yL,EAAIr7J,OAAOukR,SAAS3/R,QAAQnc,GAASurL,KAAK3lM,IAAI,QAAC,aACpD+0U,GADmD,SAE/CA,CAF+C,IAGtD,CAED,SAAS0iB,GAAUzqJ,EAAK5yL,GACtB,IAAIs9U,EAEJ,OAA8C,QAAtCA,EAAkB1qJ,EAAI31B,IAAIk4C,cAAwC,IAApBmoI,GAA8BA,EAAgBhpE,iBAAmB1hF,EAAI31B,IAAIk4C,OAAOm/D,iBAAiBt0Q,GAAWo9U,GAAYxqJ,EAAK5yL,EACpL,CAED,SAASu9U,GAAc3qJ,GACrB,OAAO46H,GAAc,CAAC56H,EAAI31B,IAAI9B,MAAMw5I,YAAYppH,KAAKM,IAAUplJ,GAE/DA,EAAO06J,WAAW9lJ,QAAUg1C,GAAG5pD,GAE7BmsJ,EAAI31B,IAAI9B,MAAMw5I,UAAUluQ,EAAO06J,eAAevO,EAAI31B,IAAI9B,MAAMorF,mBAAmBh7D,KAAKM,IAAUxoM,GAAQuvM,EAAI31B,IAAI9B,MAAMw5I,UAAUtxT,QAAUkoM,KAAK3lM,IAAI,QAAE0L,EAASm/E,GAAX,SACnJ8tP,GAAkBjtU,GAAS4Y,IAAIq0T,GAAkB9tP,IAAYrzE,GAAG8/U,IAAoB5rV,EAAUm/E,CADqD,IAEpJ,CAEM,SAAS+sQ,GAAYC,EAAa7qJ,GAEvC,MAAO,CAAC5yL,EAASziB,EAAO4yO,IAAQq9F,GAAc,CAC9Cn1G,GAAY96N,GAAS6/V,GAAYxqJ,EAAK5yL,IAAsB,IAAXziB,EAAe8/V,GAAUzqJ,EAAK5yL,GAAWqwF,GAAGuiG,EAAIG,SAASo3H,WAAW,QAAS5sU,IAC9H86N,GAAY8X,IAAQ3X,GAAS2X,IAAQA,EAAM,EAAIotH,GAAc3qJ,GAAOviG,GAAG,QAAQk7F,KAAK3lM,IAAI,IAAqB,IAAnBrI,EAAOkpD,GAAY,EAC3G,IAAIi3S,EAAoBC,EAAuBlP,EAAkBmP,EAEjE,MAAO,CACLn3S,SACAo3S,aAAc1+V,KAAKg7D,KAAkD,QAA5CujS,EAAqB9qJ,EAAIskI,OAAO/hH,cAA2C,IAAvBuoI,GAAyG,QAA/DC,EAAwBD,EAAmBI,sBAAsD,IAA1BH,OAAjF,EAA6HA,EAAsB7mV,aDlC/N,ICkCuQqmV,GAAchzU,KAA8C,QAAxCskU,EAAmB77I,EAAIskI,OAAOtb,YAAuC,IAArB6yB,OAA8B,EAASA,EAAiBsP,qBAA0E,QAAlDH,EAAwBhrJ,EAAIskI,OAAO93S,iBAAiD,IAA1Bw+T,OAAmC,EAASA,EAAsBI,cAAc9jR,KAAK,KAAO+iR,IAAiBpoT,KAAKqoT,IAAkBpmV,YAC1nBvZ,QAHF,IAMH,CCnBM,MAAMg6C,GAAS,CACpB4wJ,SADoB,EAEpB81J,SAFoB,EAGpBxlB,SAHoB,EAIpB3c,SAJoB,EAKpBwhB,SALoB,EAMpBniK,MANoB,EAOpB8gJ,UAPoB,EAQpBkX,QARoB,EASpByO,UAToB,EAUpBgC,UAVoB,EAWpB3Q,UAXoB,EAYpBsZ,SAZoB,EAapB2R,WAboB,EAcpBlhC,WAdoB,EAepBzxC,QAfoB,EAgBpBiyC,QAhBoB,EAiBpBC,QAjBoB,EAkBpB2V,mBAlBoB,EAmBpB1V,SAnBoB,EAoBpBx6S,GAAEA,GCvCG,SAASi7U,GAAkB/wV,EAAQ0nM,EAASigH,EAAS1tH,GAC1DwoC,GAAWziO,EAAQ0nM,GAAS,IAAMg7B,GAAY,CAAC,EAAGilF,EAAQjgH,IAAU/yL,GAAUslL,EAAQyN,EAAS/yL,MAChG,CCGD,MAAMq8U,GAAS,CACbC,eAAgB,CACd3+D,UAAW,CAAC,kBACZ5vM,QAAS,IAEX2oP,SAAU,CACR/4C,UAAW,CAAC,YAAa,YACzB5vM,QAAS,GACTwuQ,YAAY,GAEdriC,UAAW,CACTv8B,UAAW,CAAC,aACZ5vM,QAAS,IAEXqjP,QAAS,CACPzzC,UAAW,CAAC,WACZ5vM,QAAS,GACTwuQ,YAAY,GAEd1c,UAAW,CACTliD,UAAW,CAAC,aACZ5vM,QAAS,IAEX8zP,UAAW,CACTlkD,UAAW,CAAC,aACZ5vM,QAAS,IAEXmjP,UAAW,CACTvzC,UAAW,CAAC,mBAAoB,oBAAqB,YAAa,WAClE5vM,QAAS,GACTwuQ,YAAY,GAEd/R,SAAU,CACR7sD,UAAW,CAAC,YACZ5vM,QAAS,IAEXouQ,WAAY,CACVx+D,UAAW,CAAC,cACZ5vM,QAAS,IAEXktO,WAAY,CACVt9B,UAAW,CAAC,aAAc,aAC1B5vM,QAAS,IAEXy7L,QAAS,CACPmU,UAAW,CAAC,WACZ5vM,QAAS,IAEX0tO,QAAS,CACP99B,UAAW,CAAC,WACZ5vM,QAAS,IAEX2tO,QAAS,CACP/9B,UAAW,CAAC,WACZ5vM,QAAS,CAAC,qBAEZsjP,mBAAoB,CAClB1zC,UAAW,CAAC,sBACZ5vM,QAAS,GACTwuQ,YAAY,GAEd5gC,SAAU,CACRh+B,UAAW,CAAC,YACZ5vM,QAAS,KAeb,SAASyuQ,GAAgBhwB,EAAY37H,EAAK4rJ,GACxC,MAAMpxV,EAAS,CAAC,EACVk1C,EAAQ9iD,OAAOihB,KAAK+9U,GACpB/9U,EAAOjhB,OAAOihB,KAAKmyL,EAAIwjB,OACvB36C,EAAWm3B,EAAIsjB,eAAez6C,SAE9BgjL,EAAa11U,GAAKtI,EAAK+2E,SAASzuE,GAEhC21U,EAAkB31U,GAnB1B,SAA4B6pL,EAAKn3B,EAAU2vJ,GACzC,OAAOx4H,EAAIG,SAASo4H,mBAAmB1vJ,EAAU2vJ,IAAe,EACjE,CAiB8BD,CAAmBv4H,EAAKn3B,EAAU1yJ,GAAGm2G,KAAKu/N,GAIjE1pC,EAAUhoS,GAAKvtB,OAAOihB,KAAK+9U,EAAQzxU,IAEnCs6K,EAAU,CAACt6K,EAAGkD,IAAMuuU,EAAQzxU,GAAGkD,GAAGs+S,EAAY37H,GAE9CkhI,EAAav/T,IAAK,OAAC6pV,GAAO7pV,IAAM6pV,GAAO7pV,GAAGmrR,UAAUxgK,KAAKu/N,MAAiBL,GAAO7pV,GAAGu7E,QAAQnzF,QAAUyhW,GAAO7pV,GAAGu7E,QAAQ39D,OANxGhM,EAM4Hi4U,GAAO7pV,GAAGmrR,UAN/HzvQ,GAAK9J,EAAI+4G,MAAKn2G,GAAKtI,EAAK+2E,SAASzuE,IAAM6pL,EAAIwjB,MAAMrtM,GAAGkH,SAM2FmuU,GAAO7pV,GAAG+pV,YAAcF,GAAO7pV,GAAGmrR,UAAUxgK,KAAKw/N,GANvMv4U,KAMtB,EAEA,IAAK,IAAI5nB,EAAI,EAAGA,EAAI+jD,EAAM3lD,OAAQ4B,IAAK,CACrC,MAAMgJ,EAAO+6C,EAAM/jD,GACnBu1U,EAAWvsU,IAAS42V,GAAkB/wV,EAAQ7F,EAAMwtT,EAAS1tH,EAC9D,CAED,OAAOj6L,CACR,CC1GD,MAAMghN,GAAU,CAAC,EACjB5uN,OAAOihB,KAAKk+U,GAAM9gW,SAAQkvB,GAAKvtB,OAAOq+D,QAAQ8gS,EAAK5xU,GAAGkwJ,KAAO,CAAC,GAAGp/K,SAAQ,IAAmB,IAAjBkkB,EAAQs7G,GAAS,EAE1F,MAAMy3E,EAAUz3E,EAAI8tL,cAAgBp+R,EAE/BqhM,GAAQtZ,KACXsZ,GAAQtZ,GAAW,CAAC,GAGtBsZ,GAAQtZ,GAAS/yL,GAAUuvJ,GAAa,CAAC,EAAGj0C,EAAK,CAC/Cia,iBAAkBja,EAAIopI,OACtBr4C,QAAS,GAAF,OAAKtZ,EAAL,YAAgB/yL,GACvBA,SACA+yL,WAJF,MAOF,YCZMzxK,GAAI7xB,GAAO,YACXotV,GAAa,CACjB97O,cAAU1lH,EACV6Y,SAAU,CACRs5N,YAAY,GAEdnuO,KAAM,CACJgqP,MAAO,CACL8B,OAAQ,CACNrG,QAAQ,IAGZl7D,OAAO,IAMX,SAASkzK,GAAgB98U,EAAzB,EAIGjK,GAAO,IAJuB,WAC/B68Q,EAD+B,OAE/BviR,EAF+B,KAG/BhR,GACQ,EACR,GAAIuzR,EACF,OAGF,MAAM/+Q,EAASxD,EAAOxM,KAAI,QAAC,WACzB2pO,EADyB,KAEzBhoO,EAFyB,KAGzBnG,GAHwB,kBAIjBmG,GAJiB,OAIVgoO,EAAa,IAAM,GAJT,aAIgBnuO,EAJhB,IAIwB+B,KAAK,MACvDkgC,GAAEvrB,MAAF,UAAWiK,EAAX,YAAqBnM,EAArB,cAAiCxU,EAAjC,cAA2C0W,EAAMK,SAClD,CAED,SAAS2mV,GAAathW,GAGpB,MAAO,CAAC,gBAAgBg6F,SAASh6F,EAAIguB,QACtC,gFA0BM,MAAMuzU,GAcXhsV,YAAYw7T,EAAYx7H,EAAU3tL,GAAwB,IAAd45U,EAAc,uDAAJ,CAAC,EAErD,GAFwD,0LAT1C,IAAIz9P,MASsC,kBARhD,IAAIA,KAQ4C,mBAP/C,KASJn8E,IAAa4wG,GAAW5wG,EAASm3L,MACpC,MAAM,IAAIrgM,MAAM,mCAGlB,GAAA5f,KAAA,GAAmBiyU,GACnB,GAAAjyU,KAAA,GAAwBy2M,GACxBz2M,KAAK8oB,SAAWA,EAChB,MAAM65U,EAAez/V,OAAOihB,KAAKy+U,IAEjC5iW,KAAK6iW,SAASjiW,QAAQ+hW,GAEtB3iW,KAAK8iW,kBAAkBJ,EACxB,CAMG7hI,kBACF,OAAO7gO,KAAK8oB,SAAS+3M,WACtB,CAMDh6K,UACE,OAAO7mD,KAAK8oB,SAAS+9B,SACtB,CAMDi3G,aACE,OAAO99J,KAAK8oB,SAASg1I,YACtB,CAMDilM,gBAAgBC,GACd,GAAAhjW,KAAA,GAAyByP,GAAQuzV,EAAc,CAC7CjxB,cAAe,IAAM,GAAA/xU,KAAN,MAElB,CAMDijW,oBAAoBC,GAClB,GAAAljW,KAAA,GAAqByP,GAAQyzV,EAAkB,CAC7CnxB,cAAe,IAAM,GAAA/xU,KAAN,MAElB,CAED8iW,kBAAkBJ,GAEhB1iW,KAAK6iW,SAASjiW,QAAQsC,OAAOihB,KAAKu+U,GAASt/U,QAAO/a,IAAMrI,KAAK6iW,SAAS3nQ,SAAS7yF,MAE/E,IAAK,IAAIooB,EAAI,EAAGA,EAAIzwB,KAAK6iW,SAASxiW,OAAQowB,IAAK,CAC7C,MAAM+nL,EAAUx4M,KAAK6iW,SAASpyU,GACxB4xU,EAAOrtL,GAAa,CAAC,EAAG4tL,GAAepqJ,GAAUkqJ,EAAQlqJ,IACzDhlH,EAAUtwF,OAAOihB,KAAKk+U,GAE5B,IAAK,IAAI1uU,EAAI,EAAGA,EAAI6/D,EAAQnzF,OAAQszB,IAAK,CACvC,MAAMlO,EAAS+tE,EAAQ7/D,GACjBotG,EAAMshO,EAAK58U,GACXqsM,EAAU/wF,EAAI++F,UAAJ,UAAmBtnB,EAAnB,YAA8B/yL,GAE9C,IAAKzlB,KAAKokU,QAAQjuS,IAAI27L,GAAU,CAC9B,MAAM92E,IAAmBja,EAAIopI,OAExBnqQ,KAAKw4M,KACRx4M,KAAKw4M,GAAW,CAAC,GAGnBx4M,KAAKokU,QAAQl7T,IAAI4oN,EAAS98C,GAAa,CAAC,EAAGj0C,EAAK,CAC9Cia,iBACA82E,UACArsM,SACA+yL,aAEF+6B,GAAWvzO,KAAKw4M,GAAU/yL,GAAQ,IAAMu1H,EAAiBh7I,KAAKmjW,uBAAuB3qJ,EAAS/yL,EAAQs7G,GAAO/gI,KAAKojW,kBAAkB5qJ,EAAS/yL,EAAQs7G,IACtJ,CACF,CACF,CACF,CAEDsiO,UAAUt4J,EAAShqE,GACjB,MAAMuiO,EAAW,CACfvxB,cAAe,IAAM,GAAA/xU,KAAN,KAEX0vL,EAAWjgL,GAAQs7L,GAAQ,GAAOu4J,GAGxC,OAFA5zK,EAASr+K,IAAM5B,GAAQs7L,GAAQ,GAAQu4J,GACvC5zK,EAASzwF,KAAO8hC,EACT2uD,CACR,CAED6zK,cAAcC,EAAS/sJ,EAAUmN,EAAWn+L,EAAQs7G,EAAKjrH,EAAQhF,GAC/D,OAAO0yV,EAAUxjW,KAAKyjW,cAAchtJ,EAAUmN,EAAWn+L,EAAQs7G,EAAKjrH,EAAQhF,GAAUA,CACzF,CAEDsyV,kBAAkB5qJ,EAAS/yL,EAAQs7G,GACjC,MAAM2iO,EAAU3iO,EAAI++F,UAAJ,UAAmBtnB,EAAnB,YAA8B/yL,GACxCk+U,EAAY5iO,EAAIjrH,OAAO2rT,WAAU,QAAC,WACtClzD,GADqC,SAEjCA,CAFiC,IAGvC,IAAI7+E,EAAW,KAEf,MAAMk0K,EAAmBv+J,MAAOm+J,EAAS5kV,KACvC,IAAIilV,EAEJ,MAAMC,GAAyB,IAAfH,EAAmB,KAAO/kV,EAAO+kV,GAC3C//I,EAAYkgJ,GAA0C,gBAA/B/iO,EAAIjrH,OAAO6tV,GAAW7+V,WAA8E,QAA7C++V,EAAqB,GAAA7jW,KAAH,WAA0D,IAAvB6jW,OAAgC,EAASA,EAAmBh6V,KAAK7J,KAAM8jW,IAAYA,GACtN,SACJrtJ,GACE+sJ,GAAW5/I,GAAX,GAAwB5jN,KAAxB,UAAuD,GAAAA,KAAN,SAAMA,KAAuBikL,GAAS2/B,IAAc,CACvGnN,SAAU,GAAAz2M,KAAF,KAGJ8V,EAAS9V,KAAK+jW,cAActtJ,EAAU,KAAM11E,EAAKniH,GAGjD9N,QAAe9Q,KAAK8oB,SAASm3L,KAAKyjJ,EAAS5tV,EAAOxM,KAAIo4B,GAAKA,EAAEzS,aAAa20L,GAChF,OAAO5jN,KAAKujW,cAAcC,EAAS/sJ,EAAUmN,EAAWn+L,EAAQs7G,EAAKjrH,EAAQhF,EAA7E,EAgCF,OADA4+K,EAAW1vL,KAAKqjW,WA5BAG,GAAW,WAAe,2BAAX5kV,EAAW,yBAAXA,EAAW,gBACxC,MAAMolV,EAAYR,IAA0B,IAAfG,KAAsB/kV,EAAO+kV,GAC1D,OAAO,IAAInmN,IAAWy4L,IACpB2tB,EAAiBJ,EAAS5kV,GAAQmL,MAAK3mB,IACrC6yU,EAAS7wU,KAAKhC,GACd6yU,EAAS/5L,UAAT,IACCt0H,OAAMpM,IACP+mV,GAAgB98U,EAAQs7G,EAAKvlH,GAC7By6T,EAASz6T,MAAMA,GACfy6T,EAAS/5L,UAAT,IAEK,KAGH,IAAI+nN,EAIAC,EALFV,EAGyB,QAA1BS,EAAYv0K,SAAoC,IAAdu0K,GAAgCA,EAAU/xB,aAAatzT,GAI9D,QAA3BslV,EAAax0K,SAAqC,IAAfw0K,GAAiCA,EAAW7yV,IAAI6gU,aAAatzT,EAClG,KAEFqwL,KAAKukI,GAAc,GACtBwwB,EAAYvuB,KACVhD,KACH,GAEkC1xM,GAC5B2uD,CACR,CAGDy0K,kBAAkB,EAKfC,GAAc,IALC,WAChBC,EADgB,QAEhBC,EAFgB,QAGhB5zH,EAHgB,OAIhBrnM,GACe,EACf,OAAO,IAAIzf,SAAQ,CAACE,EAASkW,KAC3BhgC,KAAK8oB,SAASw0H,UAAUozF,EAAS4zH,EAASD,EAAYh7T,GAAQtf,KAAKD,GAASlC,OAAMpM,IAChF4oV,EAAa5oV,GACbwkB,EAAOxkB,EAAP,GAFF,GAKH,CAED2nV,uBAAuB3qJ,EAAS/yL,EAAQs7G,GAAK,WAC3C,MAAOwjO,EAAYC,EAAWC,GAAe1jO,EAAIopI,OAC3Cm6F,EAAU,GAAH,OAAM9rJ,EAAN,YAAiBgsJ,GACxBE,EAAY,GAAH,OAAMlsJ,EAAN,YAAiBisJ,GAC1B/zH,EAAU,GAAH,OAAMl4B,EAAN,YAAiB+rJ,GAC9B,IAAI70K,EAAW,KA6Df,OADAA,EAAW1vL,KAAKqjW,WA1DAG,GAAW,WAAe,2BAAX5kV,EAAW,yBAAXA,EAAW,gBACxC,OAAO,IAAI4+H,IAAWy4L,IAEpB,IAAI0uB,EAAsB/6U,QAAQE,QAAQ,MAC1C,MAAM2sL,EAAW,KAAH,IAER2tJ,EAAe5oV,IACnB+mV,GAAgB98U,EAAQs7G,EAAKvlH,GAC7By6T,EAASz6T,MAAMA,EAAf,EAGF,IACE,MAAM1F,EAAS,EAAKiuV,cAActtJ,EAAU,KAAM11E,EAAKniH,GAEjDylV,EAAavuV,EAAOxM,KAAIo4B,GAAKA,EAAEzS,WAE/Boa,EAAS,CAAC7tB,EAAO1K,KACrB,GAAI0K,EACF+mV,GAAgB98U,EAAQs7G,EAAKvlH,QAI/B,IACEy6T,EAAS7wU,KAAK,EAAKm+V,cAAcC,EAAS/sJ,EAAU,KAAMhxL,EAAQs7G,EAAKjrH,EAAQhF,GAGhF,CAFC,MAAO0K,GACPy6T,EAASz6T,MAAMA,EAChB,GAGHmpV,EAAsB,EAAKR,kBAAkB,CAC3CE,aACAC,UACA5zH,UACArnM,UACC+6T,EAGJ,CAFC,MAAO5oV,GACP4oV,EAAa5oV,EACd,CAGD,MAAO,KAGH,IAAIopV,EAIAC,EALFrB,EAG0B,QAA3BoB,EAAal1K,SAAqC,IAAfk1K,GAAiCA,EAAW1yB,aAAatzT,GAIjE,QAA3BimV,EAAan1K,SAAqC,IAAfm1K,GAAiCA,EAAWxzV,IAAI6gU,aAAatzT,GAInG+lV,EAAoB56U,MAAK+6U,GAAkB9oI,GAAO8oI,GAAkBl7U,QAAQE,SAAQ,GAAS,EAAKhB,SAASmyH,YAAYy1F,EAASg0H,EAAWI,KAAiBl9U,OAAMpM,GAAS+mV,GAAgB98U,EAAQs7G,EAAKvlH,IAAxM,CAbF,IAeCyzL,KAAK4mI,KACT,GAEkC90M,GAC5B2uD,CACR,CAEDq0K,cAActtJ,EAAUmN,EAAW7iF,EAAKznH,GACtC,MAAMyrV,EAAchkO,EAAIjrH,OAAOsN,QAAO,QAAC,WACrC6vN,GADoC,SAE/BA,CAF+B,IAEnB5yO,OACb2kW,EAAUD,IAAgBhkO,EAAIjrH,OAAOzV,OAAS,GAApC,YAA8C0gI,EAAIjrH,OAAOzV,OAAS0kW,EAAlE,cAEhB,GAAIzrV,EAAOjZ,OAAS0kW,GAAezrV,EAAOjZ,OAAS0gI,EAAIjrH,OAAOzV,OAC5D,MAAM,IAAIuf,MAAJ,mBAAsBmhH,EAAIjrH,OAAOzV,OAAjC,sBAAqD2kW,EAArD,aAAiE1rV,EAAOjZ,OAAxE,mBAGR,OAAOiZ,EAAOhQ,KAAI,CAACiQ,EAAO3V,IAAU6yM,EAAS28B,iBAAiBryG,EAAIjrH,OAAOlS,GAAOkB,KAAM,CAACyU,GAAQ,CAC7FqqM,eAEH,CAED6/I,cAAchtJ,EAAUmN,EAAWn+L,EAAQk7J,EAAK7qK,EAAQhF,GACtD,GAAiB,gBAAb6vK,EAAI77K,KAAwB,CAC9B,MAAM5D,EAAM4U,EAAO,GACnB,OAAO9V,KAAKilW,mBAAmBxuJ,EAAUmN,EAAW1iN,EAAK4P,EAC1D,CAAM,GAAiB,qBAAb6vK,EAAI77K,KAA6B,CAC1C,MAAMqf,EAAOrO,EAAO,GACpB,OAAOqO,EAAOnkB,KAAKklW,kBAAkBzuJ,EAAU3lM,EAAOyW,MAAOpD,EAAMrT,EAAOgsT,SAAWrmH,EAASo3H,WAAW,mBAAoB/8T,EAC9H,CAAM,GAAiB,0BAAb6vK,EAAI77K,KAAkC,CAC/C,MAAM4oV,EAAS58U,EAAOxH,KAAI,QAAC,MACzBie,EADyB,QAEzBu1S,GAFwB,QAGpB,CAACrmH,EAASo3H,WAAW,OAAQtmT,GAAQvnB,KAAKklW,kBAAkBzuJ,EAAUlvL,EAAOzR,EAAO,GAAIgnT,GAHpE,IAK1B,MAAkB,mBAAXr3S,EAA8BioU,EAAO,GAAG,GAAKA,CACrD,CAED,OAAOj3I,EAAS28B,iBAAiBzyD,EAAI77K,KAAM,CAACgM,GAAS,CACnD8yM,aAEH,CAEDqhJ,mBAAmBxuJ,EAAUmN,EAAW1iN,EAAKkC,GAC3C,MAAM27D,EAAUi9J,GAAO54N,GAGjBmW,EAAQwlD,EAAU,KAAOyjS,GAAathW,GAAOkC,EAAQ6gL,GAAS7gL,GACpE,OAAOpD,KAAKmlW,SAAS1uJ,EAAUmN,EAAW1iN,EAAKqY,EAAOwlD,EACvD,CAEDmmS,kBAAkBzuJ,EAAUmN,EAAWz/L,EAAM24S,GAE3C,MAAMsoC,EAA4B,IAAhBjhV,EAAK9jB,OAKvB,OAAO8jB,EAAKxE,QAAO,CAAC0K,EAASnpB,EAAK0C,KAChCymB,EAAQzpB,KAAKZ,KAAKqlW,uBAAuB5uJ,EAAUmN,EAAW1iN,EAAK47T,EAASsoC,EAAWxhW,IAChFymB,IACN,GACJ,CAEDg7U,uBAAuB5uJ,EAAUmN,EAAW1iN,EAAK47T,EAASsoC,EAAWE,GACnE,MAAMC,EAASrkW,EAAIguB,QACb2J,EAAQikS,EAAQrmS,MAAK,QAAEv1B,GAAF,SAAWA,IAAQqkW,CAAnB,IACrBC,EAAazpI,GAAYljM,GAK/B,GAAI2sU,GAAcJ,EAAW,CAC3B,MAAMr0V,EAAS,GAAA/Q,KAAA,IAAmBiJ,IAAIs8V,GAEtC,GAAIx0V,EACF,OAAOA,CAEV,CAED,MAAM3N,EAAQoiW,EAAa,KAAO3sU,EAAM,GAClCkmC,EAAUi9J,GAAO54N,GACjBmW,EAAQwlD,GAAWyjS,GAAathW,GAAOkC,EAAQ6gL,GAAS7gL,GAExDo7T,EAAQx+T,KAAKmlW,SAAS1uJ,EAAUmN,EAAW1iN,EAAKqY,EAAOwlD,EAASumS,GAMtE,OADA,GAAAtlW,KAAA,IAAmBkJ,IAAIq8V,EAAQ/mC,GACxBA,CACR,CAED2mC,SAAS1uJ,EAAUmN,EAAW1iN,EAAKqY,EAAOwlD,GAA0B,IAAjBumS,EAAiB,wDAAH,EAG/D,MAAMxgW,EAAO5D,EAAIiyF,YAAc,MACzB8L,EAAO/9F,EAAI+9F,MAAQqjQ,GACnBmD,GAA2B,IAAhBH,EAAoB,GAApB,iBAAmCA,EAAnC,KAEjB,IACE,OAAO7uJ,EAAS28B,iBAAiBtuO,EAAM,CAACi6D,EAAUkgC,EAAKunB,SACrD1hH,EAAKo2F,SAAS,YAAcugG,GAAUrd,GAASn/E,EAAKunB,SAASt3F,SAAU,IAAI/S,WAAW,IAAMiiK,GAASn/E,EAAKunB,SAASt3F,cAAWpuB,EAAYm+F,EAAKtlF,SAASs5N,WAAax8B,EAAS28B,iBAAiBtuO,EAAM,CAACyU,GAAQ,CAC9MqqM,YACAsvB,YAAY,IACT35N,GAAQ,CACXqqM,YACAqvB,WAAYh0I,EAAKtlF,SAASs5N,WAC1BC,YAAaj0I,EAAKtlF,SAASs5N,YAI9B,CAFC,MAAOz3N,GACP,MAAM,IAAIoE,MAAJ,mCAAsC1e,EAAIs3M,SAAW,UAArD,YAAkEt3M,EAAIukB,QAAU,UAAhF,YAA6FggV,EAA7F,aAA0GjqV,EAAMK,SACvH,CACF,ECjbI,MAAMm+N,GAAMhrN,GAAO,GAMbirN,GAAMjrN,GAAO,GCEpB02U,IDIc12U,GAAO,KAMPA,GAAO,KAYHA,GAAOwvC,OAAOimK,kBCtBxBz1M,GAAO,yBACf22U,GAAQ32U,GAAO,wBACf42U,GAAQ52U,GAAO,uBACf62U,GAAQ72U,GAAO,uBACf82U,GAAQ92U,GAAO,uBAEf+nN,GAAM/nN,GAAO,sBAEbmrN,GAAMnrN,GAAO,GAEbkyN,GAAOlyN,GAAO,IAEd+2U,GAAO/2U,GAAO,IAEdg3U,GAAOh3U,GAAO,IAEdi3U,GAAOj3U,GAAO,IAEdoyN,GAAOpyN,GAAO,IAEdk3U,GAAOl3U,GAAO,IAEdm3U,GAAOn3U,GAAO,IAEdo3U,GAAOp3U,GAAO,IAEd2uK,GAAO3uK,GAAO,IAEdq3U,GAAOr3U,GAAO,IAEds3U,GAAOt3U,GAAO,IAEdorN,GAAQprN,GAAO,KAErB,SAASu3U,GAAKzzU,EAAGC,GACf,MAAM9a,EAAI6a,EAAIikN,GACd,OAAQ9+N,GAAK8a,EAAI9a,GAAKquV,GAAOvzU,GAAKgkN,EACnC,CAED,SAASyvH,GAAQziL,EAAKriJ,EAAG57B,GACvB,MAAM2gW,EAAU,IAAI78V,MAAM9D,GAC1B,IAAIyB,EAAS,EAEb,IAAK,IAAItF,EAAI,EAAGA,EAAI6D,EAAO7D,IAAKsF,GAAU,EACxCk/V,EAAQxkW,GAAK+sB,GAAO+0J,EAAIriJ,EAAIn6B,GAAUw8K,EAAIriJ,EAAI,EAAIn6B,IAAW,GAG/D,IAAIuJ,EAASkpO,GAEb,IAAK,IAAI/3O,EAAI6D,EAAQ,EAAG7D,GAAK,EAAGA,IAC9B6O,GAAUA,GAAUk1V,IAAQS,EAAQxkW,GAGtC,OAAO6O,CACR,CA2DM,SAAS41V,GAASntV,EAAOotV,GAC9B,MAAM,KACJrpU,EADI,IAEJymJ,EAFI,QAGJ6iL,EAHI,GAIJvzT,EAJI,GAKJC,EALI,GAMJuzT,EANI,GAOJC,GAzCJ,SAAc/uV,EAAOwB,GACnB,GAAIA,EAAMlZ,OAAS,GAGjB,OAFA0X,EAAMgsK,IAAI76K,IAAIqQ,GACdxB,EAAM6uV,QAAUrtV,EAAMlZ,OACf0X,EAGT,MAAMq/G,EAAQ79G,EAAMlZ,OAAS,GAC7B,IAAIqhC,EAAI,EAER,GAAI01F,GAAS,EAAG,CACd,MAAM2vO,EAAUtmV,GAAKilV,GAAQa,GAAK9lV,EAAIklV,GAAQa,GAAQjtV,EAAOmoB,EAAG,GAAI0kU,IAEpE,GACEruV,EAAMs7B,GAAK0zT,EAAQhvV,EAAMs7B,IACzB3R,GAAK,EACL3pB,EAAMu7B,GAAKyzT,EAAQhvV,EAAMu7B,IACzB5R,GAAK,EACL3pB,EAAM8uV,GAAKE,EAAQhvV,EAAM8uV,IACzBnlU,GAAK,EACL3pB,EAAM+uV,GAAKC,EAAQhvV,EAAM+uV,IACzBplU,GAAK,QACEA,GAAK01F,EACf,CAOD,OALI11F,EAAInoB,EAAMlZ,SACZ0X,EAAMgsK,IAAI76K,IAAIqQ,EAAM2oK,SAASxgJ,EAAGnoB,EAAMlZ,SACtC0X,EAAM6uV,QAAUrtV,EAAMlZ,OAASqhC,GAG1B3pB,CACR,CAWK8hL,CAvDN,SAAe8sK,GACb,MAAMrpU,EAAOtO,GAAO23U,GACpB,MAAO,CACLrpU,OACAymJ,IAAK,IAAI5nK,WAAW,IACpByqV,QAAS,EACTvzT,GAAI/V,EAAOooU,GAAQC,GACnBryT,GAAIhW,EAAOqoU,GACXkB,GAAIvpU,EACJwpU,GAAIxpU,EAAOooU,GAEd,CA4CU3tV,CAAM4uV,GAAWptV,GAC1B,IAAImoB,EAAI,EACJslU,EAAMjwH,GAAM/nN,GAAOzV,EAAMlZ,SAAWkZ,EAAMlZ,QAAU,OAASkmW,GAAKlzT,EAAI4mM,IAAOssH,GAAKjzT,EAAI6mM,IAAOosH,GAAKM,EAAId,IAAQQ,GAAKO,EAAIb,IAAQP,GAAQa,GAAKlzT,EAAKsyT,GAAOS,KAASV,GAAQG,GAAQH,GAAQa,GAAKjzT,EAAKqyT,GAAOS,KAASV,GAAQG,GAAQH,GAAQa,GAAKM,EAAKlB,GAAOS,KAASV,GAAQG,GAAQH,GAAQa,GAAKO,EAAKnB,GAAOS,KAASV,GAAQG,GAAQvoU,EAAOwoU,IAElV,KAAOpkU,GAAKklU,EAAU,GACpBI,EAAMjwH,GAAM8uH,GAAQH,GAAQa,GAAKS,EAAMtB,GAAQa,GAAKZ,GAAQa,GAAQziL,EAAKriJ,EAAG,GAAI0kU,IAAOF,IACvFxkU,GAAK,EAQP,IALIA,EAAI,GAAKklU,IACXI,EAAMjwH,GAAM6uH,GAAQD,GAAQY,GAAKS,EAAMtB,GAAQc,GAAQziL,EAAKriJ,EAAG,GAAI0/M,IACnE1/M,GAAK,GAGAA,EAAIklU,GACTI,EAAMjwH,GAAM2uH,GAAQa,GAAKS,EAAMlB,GAAQ92U,GAAO+0J,EAAIriJ,MAAOw/M,IAK3D,OAFA8lH,EAAMjwH,GAAM4uH,IAASqB,EAAMA,GAAOX,IAClCW,EAAMjwH,GAAM6uH,IAASoB,EAAMA,GAAOb,IArFpC,SAAea,GACb,MAAMl2V,EAAS,IAAIqL,WAAW,GAE9B,IAAK,IAAIla,EAAI,EAAGA,GAAK,EAAGA,IACtB6O,EAAO7O,GAAKu8D,OAAOwoS,EAAM5sH,IACzB4sH,GAAY5sH,GAGd,OAAOtpO,CACR,CA6EQsjN,CAAM2iB,IAAOiwH,EAAMA,GAAOrpK,IAClC,CC1IM,SAASspK,GAAY7qV,GAA8B,IAAxBquB,EAAwB,uDAAZ,GAAIi/J,EAAQ,uCACxD,MAAM/6H,EAAS9rE,KAAK8a,KAAK8sB,EAAY,IAC/Bs5I,EAAME,GAAS7nK,GAErB,IAAKqnK,KAAcimB,GAAUP,KAC3B,OAAOP,GAAK7kB,EAAKp1G,GAGnB,MAAM79D,EAAS,IAAIqL,WAAoB,EAATwyD,GAE9B,IAAK,IAAIrxC,EAAO,EAAGA,EAAOqxC,EAAQrxC,IAChCxsB,EAAO5H,IAAIw9V,GAAS3iL,EAAKzmJ,GAAM1Q,UAAkB,EAAP0Q,GAG5C,OAAOxsB,CACR,CAM0B04L,GAAYy9J,IAAhC,MCrCDC,GAAa9qV,GAAQ6qV,GAAY7qV,EAAM,KAEvC+qV,GAAU,CACd/4G,WAAYhyO,GACZutL,GAAYvtL,EAAM,KAClBiyO,iBAAkBjyO,GAClBq/K,GAAUkO,GAAYvtL,EAAM,KAAM6nK,GAAS7nK,IAC3CkyO,WAAYlyO,GACZutL,GAAYvtL,EAAM,KAClBmyO,SAAUnyO,GAAQ6nK,GAAS7nK,GAC3BoyO,QAASpyO,GAAQ6qV,GAAY7qV,EAAM,KACnCqyO,QAASryO,GAAQ6qV,GAAY7qV,EAAM,KACnCsyO,aAActyO,GAAQq/K,GAAUwrK,GAAY7qV,EAAM,IAAK6nK,GAAS7nK,KCV3D,MAAMgrV,GAAc,CACzBl2V,KAAM,GACN+9O,QAAS,GACT9qO,KAAM,IAIR,SAASkjV,GAAT,KAMG,IANiB,OAClB5hV,EADkB,QAElB+yL,GAIC,GAHA,KACDtnM,EADC,KAEDiT,GACC,EACD,IAAKva,MAAM4G,QAAQU,GACjB,MAAM,IAAI0O,MAAJ,kBAAqBimN,GAAgBrtB,GAAW,WAAhD,YAA8DqtB,GAAgBpgN,GAAU,WAAxF,kBAA4GtB,EAAK9jB,OAAjH,eACD,GAAI6Q,EAAKkS,OAAOkkV,IAAejnW,SAAW8jB,EAAK9jB,OACpD,MAAM,IAAIuf,MAAJ,kBAAqBimN,GAAgBrtB,GAAW,WAAhD,YAA8DqtB,GAAgBpgN,GAAU,WAAxF,kBAA4GtB,EAAK9jB,OAAjH,8BAA6I6Q,EAAKrK,KAAK,MAAvJ,KAET,CAIM,SAAS0gW,GAAkB9wJ,EAAU+wJ,EAArC,GAIJ,IAJiD,KAClDt2V,EADkD,QAElD+9O,EAFkD,KAGlD9qO,GACC,EACD,MAAM+jL,EAAQ,IAAIt+L,MAAMua,EAAK9jB,QAE7B,IAAK,IAAI4B,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,IAC/BimM,EAAMjmM,IDjBgBmtP,ECiBDH,EAAQhtP,GDhBxBklW,GAAQ/3G,EAAOtqP,OAASoiW,ICgBIzwJ,EAAS28B,iBAAiB38B,EAASi/B,iBAAiBvxN,EAAKliB,IAAK,CAACiP,EAAKjP,KAAKmyN,SDjBvG,IAAmBg7B,ECoBxB,MAAO,CAAC,CAAC63G,GAAYO,EAAO1gW,OAAQ,KAAMmgW,GAAYO,EAAO/hV,OAAQ,MAAOyiL,EAC7E,CAGM,SAASu/J,GAAiBhxJ,EAAU+wJ,EAAQt2V,GACjDm2V,GAAWG,EAAQt2V,GACnB,MAAM,KACJ+tF,GACEuoQ,GACG1gW,EAAQohM,GAASq/J,GAAkB9wJ,EAAU+wJ,EAAQt2V,GAC5D,IAAIyQ,EAAQ,GAEZ,GAAIs9E,EAAKn6F,KAAKuqL,MAAO,CACnB,MAAM,QACJ4/D,EADI,IAEJ/tP,GACE+9F,EAAKn6F,KAAKgqP,MACdntO,EAA2B,IAAnBstO,EAAQ5uP,OAAe,CAAC,GAAD,OAAI4uP,EAAQ,GAAGnqP,KAAf,YAAuBopP,GAAUz3C,EAASpjL,OAAQnyB,GAAlD,MAA6Du1M,EAASpjL,OAAO67N,UAAUhuP,GAAK6/H,IAAIouH,QAAQ7lP,KAAI,CAACjB,EAAGpG,IAAJ,UAAagtP,EAAQhtP,GAAG6C,KAAxB,YAAgCopP,GAAUz3C,EAASpjL,OAAQhrB,GAA3D,MAC5I,CAED,MAAM29C,EAAQ,CAAC,SAAU,UAAUr7C,UAAUuG,EAAKA,KAAK5H,KAAI,CAACob,EAAGziB,IAAM0f,EAAM1f,MAC3E,MAAO,CACL8kF,MAAOjgF,EAAO6D,UAAUu9L,GAAO5+L,KAAI,CAACmX,EAAGxe,KAAJ,CACjCgJ,KAAM+6C,EAAM/jD,GACZ+kF,MAAO,CAACvmE,OAGb,CAGM,SAASinV,GAAajxJ,EAAU+wJ,EAAQt2V,GAC7C,MAAOpK,EAAQohM,GAASq/J,GAAkB9wJ,EAAU+wJ,EAAQt2V,GAC5D,OAAOuqL,MAAa30L,KAAWohM,EAChC,CAGD,SAASo/J,GAAcx0U,GACrB,OAAQipM,GAAYjpM,EACrB,CAID,SAAS60U,GAAUlxJ,EAAU+wJ,EAAQt2V,GAGnC,OAFAm2V,GAAWG,EAAQt2V,GAEZq8N,GAAiBm6H,GAAajxJ,EAAU+wJ,EAAQt2V,GACxD,CA2ED,SAAS02V,GAAenxJ,EAAU+wJ,EAAQ1nW,GACxC,MAAM,KACJm/F,EADI,OAEJx5E,EAFI,OAGJ3e,EAHI,QAIJ0xM,GACEgvJ,EACEK,EA7CR,SAAyBpxJ,EAAU+wJ,EAAQ1nW,GACzC,MACEm/F,MAAM,KACJn6F,IAEA0iW,EACJ,IAAIvR,EAAW,KAKf,OAAO,WACL,GAAInxV,EAAK8pP,QAKP,OAJKqnG,IACHA,EAAWn2V,EAAQgoW,YAAcv6H,GAAiBtpD,GAASnkL,EAAQoB,MAAQymW,GAAUlxJ,EAAU+wJ,EAAQJ,KAGlGnR,EAGT,MAAM,QACJhnG,EADI,IAEJ/tP,GACE4D,EAAKgqP,MAZS,2BAAT59O,EAAS,yBAATA,EAAS,gBAalB,OAA0B,IAAnB+9O,EAAQ5uP,OAAesnW,GAAUlxJ,EAAU+wJ,EAAQ,CACxDt2V,OACA+9O,UACA9qO,KAAM,CAACjjB,KACJymW,GAAUlxJ,EAAU+wJ,EAAQ,CAC/Bt2V,OACA+9O,UACA9qO,KAAMsyL,EAASpjL,OAAO67N,UAAUhuP,GAAK6/H,IAAIouH,SAE5C,CACF,CAWmB44G,CAAgBtxJ,EAAU+wJ,EAAQ1nW,GAgBpD,OAfA+nW,EAAUnzT,QA/EZ,SAA8B+hK,EAAU+wJ,EAAQ1nW,GAC9C,MACEm/F,MAAM,KACJn6F,IAEA0iW,EACJ,OAAO,WACL,GAAI1iW,EAAK8pP,QACP,OAAO9uP,EAAQgoW,YAAc,CAC3B/gR,MAAO,GACP97E,KAAM,YACN+7E,MAAO,CAACi9F,GAASnkL,EAAQoB,OACvBumW,GAAiBhxJ,EAAU+wJ,EAAQJ,IAGzC,MAAM,QACJn4G,EADI,IAEJ/tP,GACE4D,EAAKgqP,MAZS,2BAAT59O,EAAS,yBAATA,EAAS,gBAalB,OAA0B,IAAnB+9O,EAAQ5uP,OAAeonW,GAAiBhxJ,EAAU+wJ,EAAQ,CAC/Dt2V,OACA+9O,UACA9qO,KAAM,CAACjjB,KACJumW,GAAiBhxJ,EAAU+wJ,EAAQ,CACtCt2V,OACA+9O,UACA9qO,KAAMsyL,EAASpjL,OAAO67N,UAAUhuP,GAAK6/H,IAAIouH,SAE5C,CACF,CAkDqB64G,CAAqBvxJ,EAAU+wJ,EAAQ1nW,GAC3D+nW,EAAU5oQ,KAAOA,EACjB4oQ,EAAUpiV,OAASogN,GAAgBpgN,GACnCoiV,EAAU/gW,OAASA,EACnB+gW,EAAUrvJ,QAAUA,EAGpBqvJ,EAAU54U,OAAS,IAAM+lJ,GAAa,CACpCx/J,QAAS,CACPiQ,SACA3e,SACA0xM,YAEDv5G,EAAKhwE,UAED44U,CACR,CAwEM,SAASI,GAAexxJ,EAAU+wJ,EAAQ1nW,GAC/C,MACEm/F,MAAM,KACJn6F,IAEA0iW,EACEK,EAAYD,GAAenxJ,EAAU+wJ,EAAQ1nW,GAQnD,OANIgF,EAAKuqL,OA3CX,SAA2BonB,EAAU+wJ,EAAQK,GAC3C,MACE5oQ,MAAM,KACJn6F,GAFE,OAIJ2gB,EAJI,QAKJ+yL,GACEgvJ,EACJK,EAAUK,QAzCZ,SAAwBzxJ,EAAxB,IASG0xJ,GAAQ,IARTlpQ,MAAM,KACJk5G,EADI,KAEJltM,EAFI,KAGJnG,GAJ8B,QAMhC0zM,GAGS,GAFR,OACD/yL,GACS,EAGT,MAAMw5E,EAAOw3G,EAAS28B,iBAAiB,6BAA8B,CAAC,CACpEj7B,OACA3xF,SAAUiwF,EAAS28B,iBAAiB,QAAS,IAC7Cz5N,SAAU88L,EAAS28B,iBAAiB,6BAA8B,CAAC,IAEnEnoO,OACAnG,KAAM2xM,EAAS28B,iBAAiB,yBAA0B,CAACtuO,EAAKgqP,MAAM5tP,IAAK,OAE7EinW,EAAOlpQ,KAAOA,EAEd,MAAM9zF,EAAK,kBAAasrM,EAAS28B,iBAAiB,aAAc,CAAC+0H,KAAU,WAAO,CAChF1iV,SACA+yL,YAFS,EAMX,OADArtM,EAAG8zF,KAAOA,EACH9zF,CACR,CAYqBi9V,CAAe3xJ,EAAU+wJ,EAAQK,GAAW,WAAa,2BAAT32V,EAAS,yBAATA,EAAS,gBAC3E,GAAIA,EAAK7Q,SAAWyE,EAAK8pP,SAAW19O,EAAK7Q,QAAUyE,EAAKgqP,MAAMG,QAAQ5uP,QACpE,MAAM,IAAIuf,MAAJ,uBAA0BimN,GAAgBrtB,GAAW,WAArD,YAAmEqtB,GAAgBpgN,GAAU,WAA7F,oFAAmLvU,EAAKrK,KAAK,MAA7L,MAGR,GAAIqK,EAAK7Q,QACHyE,EAAKuqL,MAAO,CACd,MAAM,QACJ4/D,EADI,IAEJ/tP,GACE4D,EAAKgqP,MACHu5G,EAA6B,IAAnBp5G,EAAQ5uP,OAAe,CAACa,GAAOu1M,EAASpjL,OAAO67N,UAAUhuP,GAAK6/H,IAAIouH,QAClF,OAAO,IAAI5rB,GAAI9sB,EAAUixJ,GAAajxJ,EAAU+wJ,EAAQ,CACtDt2V,OACA+9O,QAASA,EAAQhrP,MAAM,EAAGiN,EAAK7Q,QAC/B8jB,KAAMkkV,EAAQpkW,MAAM,EAAGiN,EAAK7Q,UAE/B,CAGH,OAAO,IAAIkjO,GAAI9sB,EAAUixJ,GAAajxJ,EAAU+wJ,EAAQJ,IACzD,GAEF,CAaGkB,CAAkB7xJ,EAAU+wJ,EAAQK,GAGtCA,EAAUU,UAAY,kBAAaV,EAAUK,SAAWL,EAAUK,WAAW,YAAS95H,GAAmBy5H,KAAa,EAAhG,EAEfA,CACR,CC7QD,SAASW,GAAgB/xJ,EAAUgyJ,GACjC,MAAMC,EAAOD,EAAM94V,cAEnB,OAAO8mM,EAASpjL,OAAO1R,MAAM8U,MAAKkC,GAAKA,EAAE7zB,KAAKi8H,IAAIunM,aAAe3vS,EAAE7zB,KAAKi8H,IAAIwnM,YAAYj8T,WAAWqD,gBAAkB+4V,GAAQ/vU,EAAE7zB,KAAKi8H,IAAI4nO,sBAAwBhwU,EAAE7zB,KAAKi8H,IAAIwrM,qBAAqBjgU,WAAWqD,gBAAkB+4V,GAC9N,CAED,SAASE,GAAWnyJ,EAAUwrH,GAC5B,IAAIiF,EAAWshC,GAAgB/xJ,EAAUwrH,GAEzC,IAAKiF,GAAqB,UAATjF,EAAkB,CACjC,MAAM3/H,EAAKkmK,GAAgB/xJ,EAAU,MAEjCnU,IACF4kI,EAAWzwH,EAASpjL,OAAO1R,MAAM8U,MAAKkC,GAAKA,EAAE7zB,KAAKi8H,IAAI8nO,YAAclwU,EAAE7zB,KAAKi8H,IAAIyrM,WAAW1nU,KAAK8pB,GAAG0zK,EAAG1+K,KAAO+U,EAAE7zB,KAAKi8H,IAAI4nO,sBAAwBhwU,EAAE7zB,KAAKi8H,IAAIwrM,qBAAqB39S,GAAGqzS,KAErL,CAMD,OAJKiF,GACH7sT,QAAQT,KAAR,wBAA8BqoT,EAA9B,uBAGKiF,CACR,CAKM,SAAS4hC,GAAT,EAIJ5nW,EAJI,GAOJ,IAPmC,OACpCukB,EADoC,OAEpC3e,EAFoC,QAGpC0xM,GAIC,GAHK,KACNL,EADM,KAENrzM,GACC,EACD,OAAO2xM,IACL,IAAIsyJ,EAEJ,OAAOd,GAAexxJ,EAAU,CAC9Bx3G,KAAMw3G,EAAS28B,iBAAiB,6BAA8B,CAAC,CAC7Dj7B,KAAM1B,EAAS28B,iBAAiB,YAAa,CAAC,CAACj7B,KAC/Cx+L,SAAU88L,EAAS28B,iBAAiB,6BAA8B,CAAC,aACnEnoO,KAAMwrM,EAAS28B,iBAAiB,OAAQ,CAAC3tN,IACzCwJ,OAAQ,IAAM/tB,EACd4D,KAAM2xM,EAAS28B,iBAAiB,yBAA0B,CAAC,CACzD7C,OAAuD,QAA9Cw4H,EAAcH,GAAWnyJ,EAAU3xM,UAAmC,IAAhBikW,OAAyB,EAASA,EAAYnlV,KAAO,QAGxH6B,SACA3e,SACA0xM,WACC,CACDt3M,MACA4mW,aAAa,GAff,CAkBH,CCtDD,SAASkB,GAAkBvjV,EAAQvkB,EAAK+9F,GACtC,OAAO6pQ,GAAsB,CAC3BrjV,SACA3e,OANW,YAOX0xM,QANY,aAOXt3M,EAAK+9F,EACT,CAEM,MAAM04G,GAAY,CACvBsxJ,kBAAmBD,GAAkB,oBAAqB,gBAAiB,CACzE7wJ,KAAM,uDACNrzM,KAAM,QAERokW,sBAAuBF,GAAkB,wBAAyB,kBAAmB,CACnF7wJ,KAAM,gCACNrzM,KAAM,QAER2a,KAAMupV,GAAkB,OAAQ,QAAS,CACvC7wJ,KAAM,4BACNrzM,KAAM,UAERqkW,eAAgBH,GAAkB,iBAAkB,mBAAoB,CACtE7wJ,KAAM,0DACNrzM,KAAM,QAERskW,UAAWJ,GAAkB,YAAa,aAAc,CACtD7wJ,KAAM,4EACNrzM,KAAM,SC1BV,MAEMukW,GAAe,CACnBlxJ,KAAM,kDACNrzM,KAAM,OAKD,SAASwkW,GAAgB7yJ,EAAzB,EAEJ+sH,GAAc,IAFyB,QACxCtwE,GACe,EACf,MAAMpiP,ECdD,SAAoB2lM,GACzB,MAAMjhM,EAAU,CAAC,EACX+rD,EAAUr+D,OAAOq+D,QAAQo2I,IAE/B,IAAK,IAAIp1M,EAAI,EAAGA,EAAIg/D,EAAQlhE,OAAQkC,IAClCiT,EAAQ+rD,EAAQh/D,GAAG,IAAMg/D,EAAQh/D,GAAG,GAAGk0M,GAGzC,MAAO,CACLkB,UAAWniM,EAEd,CDGgBg5P,CAAW/3D,GAE1B,IAAK,IAAIx0M,EAAI,EAAGA,EAAIixP,EAAQ7yP,OAAQ4B,IAAK,CACvC,MAAM,KACJgJ,EADI,QAEJuK,GACE09O,EAAQjxP,GAEZ,GAAIuT,EAAQw2N,OAAQ,CAClB,MAAMxzB,EAAUqtB,GAAgB56N,IAC1B,MACJ4kB,EACA/oB,OAAQyiW,GACN/zV,EAAQg1N,SAEN1jO,EAASyiW,EAAQj9V,WAEvBinO,GAAWziO,EAAQ0nM,GAAS,IAAMg7B,GAAY,CAC5Cg2H,cAAeV,GAAsB,CACnCrjV,OA/BW,gBAgCX3e,SACA0xM,WACCkvJ,GAAajxJ,EAAU,CACxBhxL,OAlCU,wBAmCV3e,OAAQmE,EAAKqB,YACZ86V,IAAciC,GAPFP,CAOgBryJ,IAC9B5mL,GAAOovE,GAAQgpQ,GAAexxJ,EAAU,CACzCx3G,OACAx5E,OAAQw5E,EAAKh0F,KAAKqB,WAClBxF,SACA0xM,WACC,CAAC,IAAI2kH,KACT,CACF,CAED,OAAOrsT,CACR,CElDD,SAAS60N,GAAUr8N,GACjB,OAAOlG,GAASA,EAAQkG,EAAIlG,EAAMS,WAAW,IAAMT,EAAMa,MAAM,GAAK,EACrE,CAiB+B0hO,GAAUF,IAAnC,MAgBMgkI,GAAmB9jI,GAAUH,ICoBpC,SAAUpiN,GAAUkoK,EAAiD3sD,GACzE,OAAOi7D,IAAQ,SAAC/nL,EAAQorI,GAEtB,IAAIr5I,EAAQ,EAIZiO,EAAOyrI,UAILy8C,GAAyB98C,GAAY,SAAC75I,GAAU,OAAAkoL,EAAUzhL,KAAK80H,EAASv7H,EAAOQ,MAAYq5I,EAAW73I,KAAKhC,EAAM,IAEpH,GACF,CC3BK,SAAUg6L,GAAQt3L,GACtB,OAAOA,GAAS,EAEZ,WAAM,OAAAi1I,EAAK,EACX6+C,IAAQ,SAAC/nL,EAAQorI,GACf,IAAIysN,EAAO,EACX73V,EAAOyrI,UACLy8C,GAAyB98C,GAAY,SAAC75I,KAI9BsmW,GAAQ5jW,IACZm3I,EAAW73I,KAAKhC,GAIZ0C,GAAS4jW,GACXzsN,EAAWf,WAGhB,IAEJ,GACN,CC/BK,SAAUytN,GAAqB1rV,GACnC,OAAO27K,IAAQ,SAAC/nL,EAAQorI,GACtB,IAAIohB,GAAW,EACfxsJ,EAAOyrI,UACLy8C,GACE98C,GACA,SAAC75I,GACCi7J,GAAW,EACXphB,EAAW73I,KAAKhC,EACjB,IACD,WACOi7J,GACHphB,EAAW73I,KAAK6Y,GAElBg/H,EAAWf,UACZ,IAGN,GACF,CCjBK,SAAU0tN,GAAgBC,GAC9B,YAD8B,IAAAA,IAAAA,EAAAA,IACvBjwK,IAAQ,SAAC/nL,EAAQorI,GACtB,IAAIohB,GAAW,EACfxsJ,EAAOyrI,UACLy8C,GACE98C,GACA,SAAC75I,GACCi7J,GAAW,EACXphB,EAAW73I,KAAKhC,EACjB,IACD,WAAM,OAACi7J,EAAWphB,EAAWf,WAAae,EAAWzhI,MAAMquV,IAAgB,IAGhF,GACF,CAED,SAASC,KACP,OAAO,IAAI15J,EACZ,CCqBK,SAAU4mC,GACd1rD,EACArtK,GAEA,IAAM8rV,EAAkBn4V,UAAUvR,QAAU,EAC5C,OAAO,SAACwR,GACN,OAAAA,EAAOo9L,KACL3jB,EAAYloK,IAAO,SAAC3C,EAAGxe,GAAM,OAAAqpL,EAAU7qK,EAAGxe,EAAG4P,EAAO,IAAIsrI,GACxDigD,GAAK,GACL2sK,EAAkBJ,GAAe1rV,GAAiB2rV,IAAa,WAAM,WAAIx5J,EAAY,IACtF,CACJ,CCxFM,SAAS45J,GAAcnqU,GAC5B,OAAO65F,GAAW75F,EAAQqb,KAC3B,CCFM,MAAMnU,GAAI7xB,GAAO,YCAjB,SAAS+0V,GAAaC,EAAtB,EAKJC,EAAW5hT,GAAQ,IAJpBhhC,OAAO,WACLygO,EADK,OAEL79L,IAEkB,EAEpB,IAAK,MAAOigT,EAAS9hW,KAAM0/O,EAAWzmL,UACpC,GAAIj5D,EAAEvB,KAAK6nB,GAAGs7U,GACZ,MAAO,CACLzmV,OAAQ0mV,EAAU/mV,QAAO,QAAC,MACxB+zN,GADuB,SAEnBA,EAAMssG,kBAAoBtsG,EAAMusG,iBAAiBljQ,IAAI4pR,EAFlC,IAGzBA,WAON,GAAI7hT,EAAO8hT,UAAW,CACpB,MAAMC,EAAYtiH,EAAW1+O,KAAIhB,GAAKA,EAAEvB,KAAKmoB,UAC7C6X,GAAAA,KAAA,gBAAgBojB,EAAOpjD,KAAKmoB,QAA5B,sCAAiEg7U,EAAOh7U,QAAxE,mBAA0Fo7U,EAAUzjW,KAAK,OAC1G,CAED,MAAO,CAAC,CACT,CC3BD,MAAM0jW,GAAiBrsI,GAAUA,EAEjC,SAASssI,GAAe/mV,EAAQ+0L,EAAShlH,EAASi3Q,GAChD,OAAOhnV,EAAOL,QAAO,QAAC,MACpBs3C,GADmB,SAEf89I,IAAY99I,EAAM89I,SAAWhlH,EAAQ0H,SAASxgC,EAAMj1C,OAFrC,IAE8Cnc,KAAI40N,GAAUusI,EAAQvsI,IAC1F,CAED,SAASwsI,GAAT,GAIG,IAHDhwS,OACEt+C,MAAOq8L,KAER,EACD,OAAOA,CACR,CAED,SAASkyJ,GAAT,GAKG,IAJDjwS,OAAO,KACLt+C,EADK,OAELqJ,IAED,EACD,MAAkB,qBAAXA,EAAgCrJ,EAAK,GAAKA,EAAK,EACvD,CAUM,MAAMwuV,GACXn0V,YAAY,GAQT,IARS,cACVgiM,EADU,aAEVqe,EAFU,OAGVrzM,EAHU,cAIVonV,EAJU,OAKVtiT,EALU,OAMV2hT,EANU,QAOVE,GACC,EACDpqW,KAAKy4M,cAAgBA,GAlBzB,WACE,OAAO+xJ,GAD0B,uDAAJ,GACC,SAAU,CAAC,mBAAoBE,IAAkB,EAChF,CAgByCI,CAAarnV,GACnDzjB,KAAK82N,aAAeA,GAfxB,WACE,OAAO0zI,GADyB,uDAAJ,GACE,SAAU,CAAC,kBAAmB,oBAAqBG,IAAiB,EACnG,CAauCI,CAAYtnV,GAChDzjB,KAAKyjB,OAASA,GAAU,GACxBzjB,KAAK6qW,cAAgBA,EACrB7qW,KAAKuoD,OAASA,EACdvoD,KAAKkqW,OAASA,EACdlqW,KAAKoqW,QAAUA,CAChB,CAEGY,kBACF,OAAOhrW,KAAKirW,SAAWjrW,KAAKuoD,OAAO8hT,WAAarqW,KAAKuoD,OAAO2iT,WAC7D,CAEGD,cACF,OAAOjrW,KAAKuoD,OAAO4iT,WAAanrW,KAAKuoD,OAAO6iT,mBAAqBprW,KAAKuoD,OAAO8iT,WAAarrW,KAAKuoD,OAAO+iT,SACvG,CAEGJ,kBACF,OAAOlrW,KAAKuoD,OAAO2iT,WACpB,CAEGb,gBACF,OAAOrqW,KAAKuoD,OAAO8hT,SACpB,CAEGkB,gBACF,OAAOvrW,KAAKuoD,OAAOijT,WACpB,CAMDC,cAAcjzJ,EAAS/yL,GACrB,OAAO+kV,GAAexqW,KAAKyjB,OAAQ+0L,EAAS5uM,MAAM4G,QAAQiV,GAAUA,EAAS,CAACA,GAAS8kV,GACxF,CAMDmB,WAAWlzJ,EAAS/yL,GAClB,OAAOzlB,KAAKyrW,cAAcjzJ,EAAS/yL,GAAQ,EAC5C,CAMDkxM,QAAQ2O,GACN,IAAIqmI,EAAqBC,EAAoBC,EAE7C,MAAO,CACLpzJ,cAA8D,QAA9CkzJ,EAAsB3rW,KAAKy4M,qBAAmD,IAAxBkzJ,OAAiC,EAASA,EAAoBh1I,UACpIG,aAA2D,QAA5C80I,EAAqB5rW,KAAK82N,oBAAiD,IAAvB80I,OAAgC,EAASA,EAAmBj1I,UAC/HlzM,OAAQzjB,KAAKyjB,OAAOna,KAAI/G,GAAKA,EAAEo0N,QAAQ2O,KACvCulI,cAA8D,QAA9CgB,EAAsB7rW,KAAK6qW,qBAAmD,IAAxBgB,OAAiC,EAASA,EAAoBhwV,QAAQvP,WAC5Ii8C,OAAQvoD,KAAKuoD,OAAOouK,QAAQ2O,GAE/B,EC/FH,MAAMnoF,GAAW5jI,GAASA,EAE1B,SAASuyV,GAAex1J,EAAKG,EAAUs1J,EAAvC,GAIG,IAJoD,OACrD5hT,EADqD,aAErDo3S,EAFqD,MAGrDtgW,GACC,EACD,IAAKkpD,EAAQ,CACX,GAAI4hT,EAAel4H,MAAQk4H,EAAenoJ,UACxC,MAAM,IAAIhkM,MAAM,sEAUlB,OAPIs8M,GAAS6vI,EAAel4H,cAGnBk4H,EAAel4H,WACfk4H,EAAenoJ,WAGjBooJ,GAAgB11J,EAAKy1J,EAAgB,CAC1C9qW,SAEH,CAED,OAAO+qW,GAAgB11J,EAAKy1J,EAAgB,CAC1CnoJ,UAAWz5J,EAAOpjD,KAClB8sO,IAAKp9B,EAAS28B,iBAAiB,eAAgB,CAAC,CAC9Cp+N,QAASm1C,EAAOtiB,OAChBovM,OAAQ80H,EAAel4H,KAAO0tH,KAEhCtgW,SAEH,CAED,SAASgrW,GAAuBF,EAAgBG,GAC9C,IAAIpsW,EAAU,CAAC,EAQf,OANI45H,GAAWqyO,GACbG,EAAWH,EAEXjsW,EAAUk1K,GAAa,CAAC,EAAG+2L,GAGtB,CAACjsW,EAASosW,EAClB,CAED,SAASF,GAAgB11J,EAAKy1J,EAAgBI,GAC5C,OAAOn3L,GAAa,CAClB4uC,UAAWtN,EAAI34B,YACfA,YAAa24B,EAAI34B,aAChBouL,EAAgBI,EAAQ,CACzBvyI,eAAgBtjB,EAAIsjB,eACpBgf,iBAAkBtiC,EAAIG,SAASmiC,iBAC/B3jO,QAASqhM,EAAI81J,eAEhB,CAQM,SAAS/9B,GAAT,GAKJ,IALyB,IAC1B/3H,EAD0B,QAE1B+1J,EAF0B,UAG1BzoJ,EAH0B,eAI1B0oJ,GACC,EAED,MAAM51H,EAAgBpgC,EAAIG,SAAS43H,YAAY,aAF9C,oHAuLD,OAnLA,cAA0B33F,EAIxBjgO,YAAYggM,EAAUk9B,GACpB31N,MAAMy4L,EAAUk9B,EAAW,CACzB1+N,QAASqhM,EAAI81J,gBAFgB,mEAFdjvN,KAEc,6BAiFlB,CAACt9G,EAASksU,KACvB,MAAMroV,EAAUsmV,GAAcnqU,GAAWA,EAAQnc,QAAUmc,EAAQvzB,WAC7DxM,EAtGZ,WAA6C,IAArBisW,EAAqB,uDAAJ,CAAC,EACxC,OAAO/wI,GAAK+wI,IAAmB7vI,GAAS6vI,GAAkB,CACxD9qW,MAAO8qW,GACLA,CACL,CAkGqBQ,CAAeR,GAC/B,OAAOz1J,EAAIr7J,OAAOr0B,GAAGs6U,YAAYx9U,EAAS5jB,EAAQmB,MAAOnB,EAAQ+zO,KAAK5kC,KAAK+nC,KAASwiG,IAASn0I,UAC3F,MAAMmnK,EAAaV,GAAex1J,EAAKt2M,KAAKy2M,SAAU32M,EAASohW,GAC/D,IAAIuL,GAAY,EAQhB,OANIzC,GAAcnqU,GAChB7/B,KAAKk7C,KAAKrb,EAAS2sU,GAEnBC,QAAiB,GAAAzsW,KAAN,QAAMA,KAAoB0jB,EAAS8oV,EAAYtL,EAAY/2S,QAGjE,CACLrqD,QAAS0sW,EACTC,WAFF,IAVF,IApF+B,6BAoGhB,CAACvC,EAAQ3hT,KACxB,IAAKA,EAAO2iT,cAAgB3iT,EAAO8hT,UACjC,OAAOt2P,GAAG,GAAA/zG,KAAD,QAACA,KAAsB,IAAI4qW,GAAkB,CACpDriT,SACA2hT,aAIJ,MAAMtmJ,EAAYr7J,EAAO8hT,UAAY9hT,EAAOmkT,UAAYnkT,EAAOokT,YAC/D,OAAOr2J,EAAIr7J,OAAOr0B,GAAGnD,OAAOmgM,GAAW3U,KAAK3lM,IAAI,QAAC,MAC/Cie,EAD+C,OAE/C9D,GAF8C,YAG1CzjB,KAH0C,QAG1CA,KAAsB,IAAI4qW,GAAkB,IAAKX,GAAaC,EAAQ3iV,EAAO9D,EAAQ8kC,GACzFA,SACA2hT,WAL8C,IAM1Cl6J,IAAW66J,GAAiB92P,GAAG,GAAA/zG,KAAD,QAACA,KAAsB,IAAI4qW,GAAkB,CAC/EC,gBACAtiT,SACA2hT,eATF,IA7G+B,6BAyHlBnmU,GACNuyK,EAAI31B,IAAIilC,OAAO+xG,gBAAgB33T,MAAMivM,KAAKyiI,IAAI3qU,IACnD,GAAA/G,KAAA,QAAAA,KAAmB+G,EAAMg9B,EAAzB,OA3H6B,6BA8HbA,IAClB,MAAMmmU,EAASlqW,KAAK+G,KACpB,OAAOuvM,EAAI31B,IAAIilC,OAAO8xG,wBAAwB13T,MAAMivM,KAAKM,IAAUhnJ,GAAU,GAAAvoD,KAAJ,QAAIA,KAAoBkqW,EAAQ3hT,KAAUmpR,IAAInpR,IACrH,GAAAvoD,KAAA,QAAAA,KAAmBuoD,EAAQxkB,EAA3B,IADF,IAhI+B,6BAoIhBshK,MAAO3hL,EAAS5jB,EAASqqD,KACxC,MAAMkuK,EAASv4N,EAAQu4N,QAAU/hB,EAAI+hB,OAErC,IAAKA,EACH,MAAM,IAAIz4M,MAAM,0KAGlB,MAAMmpB,EAAU/oC,KAAKy2M,SAAS28B,iBAAiB,gBAAiB,CAACp+D,GAAa,CAAC,EAAGl1K,EAAS,CACzF4jB,UACAo7J,YAAa30H,EAASA,EAAOtiB,OAAS,EACtCpiB,OAAQzlB,KAAKylB,WAEf,IAAI3U,EAEJ,GAAI4oH,GAAW2+F,EAAOu0I,aACpB97V,QAAeunN,EAAOu0I,YAAY7jU,EAAQiwM,iBACrC,KAAIt/G,GAAW2+F,EAAOw0I,SAG3B,MAAM,IAAIjtV,MAAM,yFAFhB9O,QAAeunN,EAAOw0I,QAAQ9jU,EAAQkwM,QAGvC,CAMD,OADAj7N,MAAMm4N,aAAazyN,EAAS5S,EAAO+R,UAAWkmB,EAAQiwM,aAC/CloO,EAAO8S,EAAd,IA9J+B,6BAgKjB,CAAC2kC,EAAQxkB,KACvB,GAAIA,IAA2B,IAAnBA,EAAK0oU,SAAiB,CAChC,MAAM,QACJ3sW,EADI,SAEJ2sW,GACE1oU,EACEs0L,EAASv4N,EAAQu4N,QAAU/hB,EAAI+hB,OAEjCA,GAAU3+F,GAAW2+F,EAAOhvL,SAC9BgvL,EAAOhvL,OAAOojU,EAAUlkT,EAE3B,KAvKD,GAAAvoD,KAAA,EAAmC,SAAZqsW,EACxB,CAGDl0E,OAAOt4P,EAASitU,GACd,IAAKx2J,EAAI31B,IAAIk4C,SAAWviB,EAAI31B,IAAIk4C,OAAOs/D,OACrC,MAAM,IAAIv4Q,MAAM,mEAGlB,OAAIgkM,GAAapzB,GAASs8K,IAAkBhpL,GAAMgpL,GAEzCR,GAAe,IAAMh2J,EAAI31B,IAAIk4C,OAAOs/D,OAAOn4R,KAAKkvB,QAAS00L,GAAakpJ,KAIxER,GAAe,IAAM,GAAAtsW,KAAA,QAAAA,KAAkB6/B,EAASitU,GAAe79J,KAAKM,IAAU,IAAM+G,EAAI31B,IAAIk4C,OAAOs/D,OAAOn4R,KAAKkvB,aAA/Go9U,EACR,CAGDS,YAAYltU,EAASitU,GACnB,IAAKx2J,EAAIzsM,KAAKmjW,wBAA0B12J,EAAIzsM,KAAKmjW,sBAAsBzzC,UACrE,MAAM,IAAI35S,MAAM,yFAGlB,GAAIgkM,GAAapzB,GAASs8K,IAAkBhpL,GAAMgpL,GAEhD,OAAOR,GAAe,IAAMh2J,EAAI22J,OAAOrpJ,GAAakpJ,GAAe79J,KAAKM,IAAU09J,IAChF,MAAMlpL,EAAM/jL,KAAKo0N,QACjB,OAAO64I,EAAOD,sBAAsBzzC,UAAUx1I,EAAKA,EAAI1jL,OAAvD,OAIJ,MAAO6sW,GAAcjB,GAAuBa,GACtCppV,EAAUsmV,GAAcnqU,GAAWA,EAAQnc,QAAUmc,EAAQvzB,WAEnE,OAAOggW,GAAe,IAAMh2J,EAAIr7J,OAAOr0B,GAAGs6U,YAAYx9U,EAASwpV,EAAWjsW,MAAOisW,EAAWr5H,KAAK5kC,KAAK+nC,KAASznC,IAAU2xJ,IAEvH,MAAMsL,EAAaV,GAAex1J,EAAKt2M,KAAKy2M,SAAUy2J,EAAYhM,GAC5DiM,EAAcnB,GAAgB11J,EAAKk2J,EAAY,CAAC,GAChDzoL,EAAM/jL,KAAKirO,SAAW30B,EAAI1vL,GAAG5mB,MAAMo2O,SAAS1yN,EAASypV,GAAa/4I,QAAUp0N,KAAKo2O,SAAS1yN,EAASypV,GAAa/4I,QACtH,OAAO9d,EAAIzsM,KAAKmjW,sBAAsBzzC,UAAUx1I,EAAKA,EAAI1jL,OAAzD,MALKisW,EAOR,CAIDrsJ,KAAKisJ,GACH,MAAMlxN,EAAiBs7D,EAAIsqB,mBAAqB,GAAA5gO,KAAA,MAA0BksW,GAE1E,OAAOI,EAAgC,GAAAtsW,KAAjBg7I,EAAc,KAA7BsxN,CAA4EJ,EACpF,CAMDkB,UAAUvtU,EAASksU,GAEjB,OAAOO,GAAe,IAAM,GAAAtsW,KAAA,QAAAA,KAAkB6/B,EAASksU,GAAgB98J,KCtGvE,SAAmB7rM,GACvB,OAAOkG,IAAI,WAAM,OAAAlG,CAAK,GACvB,CDoGiFiqW,CAAMrtW,QAA3EssW,EACR,CAID9zI,YAAY34L,EAASksU,EAAgBuB,GACnC,MAAOxtW,EAASosW,GAAYD,GAAuBF,EAAgBuB,GAC7DtyN,EAAiBs7D,EAAIsqB,mBAAqB,GAAA5gO,KAAA,MAA0BksW,GAE1E,OAAOI,GAAe,IAAM,GAAAtsW,KAAA,QAAAA,KAAkB6/B,EAAS//B,GAASmvM,KAAKM,IAAUxrK,GAAQi3G,EAAiB,GAAAh7I,KAAH,QAAGA,KAAuB+jC,GAA1B,GAAkC/jC,KAAlC,QAAkCA,KAAkB+jC,OAAlJuoU,CACLJ,EACH,CAGDqB,oBAAoBxqS,GAElB,OADA,GAAA/iE,KAAA,EAAwB+iE,GACjB/iE,IACR,EAiGJ,CElQM,SAASwtW,GAAkBnB,EAAS/1J,EAAKg2J,EAAgB71J,EAAUmN,GACxE,MAAM6pJ,EAAcp/B,GAAY,CAC9B/3H,MACA+1J,UACAzoJ,YACA0oJ,mBAEF,OAAO34H,GAAa,IAAI85H,EAAYh3J,GAAYH,EAAIG,SAAUk9B,EAC/D,CCJM,SAAS+5H,GAAYtqW,GAC1B,MAAM+gB,EAAOjhB,OAAOihB,KAAK/gB,GAEzB,IAAK,IAAInB,EAAI,EAAGA,EAAIkiB,EAAK9jB,OAAQ4B,WACxBmB,EAAM+gB,EAAKliB,IAGpB,OAAOmB,CACR,CCZD,MAAM2jC,GAAI7xB,GAAO,eAEjB,SAASy4V,GAAU7oW,EAAM8Z,GAAkB,IAAVuP,EAAU,uDAAJ,GACrC,OAAOvP,EAAOve,OAAP,WAAoBue,EAAOve,OAA3B,YAAqCyE,GAArC,OAA4CqpB,EAAI9tB,OAAS,OAAS,IAAO,EACjF,CAED,SAASutW,GAAU9oW,EAAM8Z,GACvB,OAAOA,EAAOve,OAAP,cAAuByE,EAAKq9K,SAAS,GAArC,aAA4CvjK,EAAOiW,OAAOhuB,KAAK,OAAU,EACjF,CAGD,SAAS+S,GAAK9S,EAAQhC,EAAtB,GAA8C,IAAjBihV,EAAOxgI,GAAU,GACxCwgI,EAAM1lV,QAAUklN,EAAQllN,SAC1B0mC,GAAEntB,KAAF,cAAc9S,EAAd,kBAA8B6mW,GAAU,QAAS5nB,EAAOxgI,IAAxD,OAAmEooJ,GAAU,UAAWpoJ,GAAxF,YAAoGzgN,EAApG,YAA4G8oW,GAAU,QAAS7nB,IAA/H,OAAwI6nB,GAAU,UAAWroJ,IAEhK,CAED,SAASsoJ,GAAoB/6U,EAAGC,GAC9B,OAAOD,EAAE1P,QAAOqN,IAAMsC,EAAEmoE,SAASzqE,IAClC,CAMD,SAASq9U,GAAgB76R,EAAKivP,GAC5B,MAAM6rC,EAAc7qW,OAAOihB,KAAK8uD,GAC1B+6R,EAAc9qW,OAAOihB,KAAK+9S,GAChC,MAAO,CAAC2rC,GAAoBE,EAAaC,GAAcH,GAAoBG,EAAaD,GACzF,CAED,SAASE,GAAmBh7R,EAAKivP,GAC/B,MAAM6rC,EAAc7qW,OAAOihB,KAAK8uD,GAC1B+6R,GAZqBl7U,EAYa5vB,OAAOihB,KAAK+9S,GAZtBnvS,EAY4Bg7U,EAXnDj7U,EAAE1P,QAAOqN,GAAKsC,EAAEmoE,SAASzqE,MADlC,IAA6BqC,EAAGC,EAa9B,MAAMm7U,EAAW,GAEjB,IAAK,IAAIz9U,EAAI,EAAGA,EAAIu9U,EAAY3tW,OAAQowB,IAAK,CAC3C,MAAM+nL,EAAUw1J,EAAYv9U,GACtB09U,EAAajrW,OAAOihB,KAAK8uD,EAAIulI,IAC7B41J,EAAalrW,OAAOihB,KAAK+9S,EAAI1pH,IAEnC,IAAK,IAAIxhK,EAAI,EAAGA,EAAIo3T,EAAW/tW,OAAQ22C,IAAK,CAC1C,MAAMvxB,EAAS2oV,EAAWp3T,GAErBm3T,EAAWjzQ,SAASz1E,IACvByoV,EAASttW,KAAT,UAAiB43M,EAAjB,YAA4B/yL,GAE/B,CACF,CAED,OAAOyoV,CACR,CAED,SAASG,GAAep7R,EAAKivP,GAC3B,MAAO,CAAC+rC,GAAmB/rC,EAAKjvP,GAAMg7R,GAAmBh7R,EAAKivP,GAC/D,CAQM,SAASosC,GAAcxnW,EAAQmsE,EAAKivP,GAAwB,IAAnBqsC,EAAmB,wDACjEA,GAAab,GAAYxrC,GAIrBp7T,GAAU5D,OAAOihB,KAAK+9S,GAAK7hU,SAC7BuZ,GAAK9S,EAAQ,UAAWgnW,GAAgB76R,EAAKivP,IAC7CtoT,GAAK9S,EAAQ,QAASunW,GAAep7R,EAAKivP,KAG5C,MAAM2gC,EAAW3/V,OAAOihB,KAAK8uD,GAE7B,IAAK,IAAIhxE,EAAI,EAAGA,EAAI4gW,EAASxiW,OAAQ4B,IAAK,CACxC,MAAMu2M,EAAUqqJ,EAAS5gW,GACnBuxF,EAAUvgB,EAAIulI,GAGf0pH,EAAI1pH,KACP0pH,EAAI1pH,GAAW,CAAC,GAGlBg7B,GAAY0uF,EAAI1pH,GAAUt1M,OAAOihB,KAAKqvE,IAAU7/D,GAAK6/D,EAAQ7/D,IAC9D,CAED,OAAOuuS,CACR,CCpFM,SAASssC,GAAuBlC,EAAgBpK,GACrD,MAAMzpC,EAAUhoS,GAAKvtB,OAAOihB,KAAK+9U,EAAQzxU,IAEnCs6K,EAAU,CAACt6K,EAAGkD,IAAM24U,EAAepK,EAAQzxU,GAAGkD,IAE9C7iB,EAAS,CAAC,EACVk1C,EAAQ9iD,OAAOihB,KAAK+9U,GAE1B,IAAK,IAAIjgW,EAAI,EAAGA,EAAI+jD,EAAM3lD,OAAQ4B,IAChC4/V,GAAkB/wV,EAAQk1C,EAAM/jD,GAAIw2T,EAAS1tH,GAG/C,OAAOj6L,CACR,CChBD,SAASkK,GAAT,IAKG9J,GAAM,IALI,OACXmiB,GAIO,GAHN,OACD5N,EADC,QAED+yL,GACO,EACP,MAAO,GAAP,OAAUA,EAAV,YAAqB/yL,EAArB,YAA+BvU,EAAK5H,KAAIwpB,GAAKO,EAAOm9M,WAAW19M,GAAGhuB,OAAM+B,KAAK,MAA7E,IACD,CAIM,SAAS4nW,GAAmBh4J,EAAU1L,EAAS2jK,GACpD,MAAMx9V,EAAOw9V,EAAMtrV,QAAO0P,IAAMipM,GAAYjpM,KAE5C,GAAIi4K,EAAQ9rG,KAAKn6F,KAAK8pP,SACpB,GAAoB,IAAhB19O,EAAK7Q,OACP,MAAM,IAAIuf,MAAJ,UAAa5E,GAAIy7L,EAAU1L,EAAS,IAApC,yCAAwE75L,EAAK7Q,OAA7E,eAEH,CACL,MAAM,QACJ4uP,EADI,IAEJ/tP,GACE6pM,EAAQ9rG,KAAKn6F,KAAKgqP,MAChB3qO,EAA0B,IAAnB8qO,EAAQ5uP,OAAe,CAACa,GAAOu1M,EAASpjL,OAAO67N,UAAUhuP,GAAK6/H,IAAIouH,QAAQ7lP,KAAIqvB,GAAKA,IAEhG,GAAIznB,EAAK7Q,SAAW8jB,EAAK9jB,OACvB,MAAM,IAAIuf,MAAJ,UAAa5E,GAAIy7L,EAAU1L,EAAS5mL,GAApC,gCAAiEA,EAAK9jB,OAAtE,uBAA2F6Q,EAAK7Q,OAAhG,UAET,CAGD,MAAO,CAAC0qM,EAAS75L,EAClB,oBCnBD,MAAM80U,GAAc,IAMdj/S,GAAI7xB,GAAO,YACjB,IAAIy5V,GAAkB,EAEtB,SAASC,GAAat4J,EAAtB,GAGG,IAHwB,OACzB7wL,EADyB,QAEzB+yL,GACC,EACD,OAAOi7B,GAAan9B,EAAIj+J,GAAGyhL,MAAMthB,IAAYlC,EAAIj+J,GAAGyhL,MAAMthB,GAAS/yL,IAAS,IAAM,SAAN,OAAe+yL,EAAf,YAA0B/yL,EAA1B,sDAC7E,gFCrBD,MAEMshB,GAAI7xB,GAAO,YAEjB,SAAS25V,GAAal2U,GACpB,OAAOA,EAAErsB,UACV,CAED,IAAIwiW,GAAuB9xI,GAA2B,UAElD+xI,GAA4B/xI,GAA2B,eAEvDgyI,GAA2BhyI,GAA2B,cAEtDiyI,GAA0BjyI,GAA2B,aAErDkyI,GAAkClyI,GAA2B,qBAE7DmyI,GAAkCnyI,GAA2B,qBAE7DoyI,GAAqCpyI,GAA2B,wBAEhEqyI,GAAgCryI,GAA2B,mBA0X/D33B,eAAeiqK,KACbtvW,KAAK8+N,aAAa15N,MAAK,GAEvBpF,KAAK0lF,KAAK,aAEV,IACE,MAAM6pR,GAAyC,IAA3BvvW,KAAKwvW,SAASC,gBC3Z7BrmK,KAAYr/K,MAAK,KACtB,IAAKo/K,KACH,MAAM,IAAIvpL,MAAM,8CAGlB,OAAO,CAAP,IACCgI,OAAM,KAAM,IDsZP8nV,QAAgB1vW,KAAK2vW,YAE3B3vW,KAAK4vW,mBAEDF,IAAY1vW,KAAK6vW,UAAYN,IAC/BvvW,KAAK6vW,UAAW,EAChB7vW,KAAK0lF,KAAK,QAAS1lF,MAMtB,CAJC,MAAOw8I,GACP,MAAMhhI,EAAQ,IAAIoE,MAAJ,+CAAkD48H,EAAO3gI,UACvEkrB,GAAEvrB,MAAMA,GACRxb,KAAK0lF,KAAK,QAASlqE,EACpB,CACF,CAED,SAASs0V,KACP9vW,KAAK8+N,aAAa15N,MAAK,GAEvBpF,KAAK+vW,qBAEL/vW,KAAK0lF,KAAK,eACX,CAED,SAASsqR,GAAkBx0V,GACzBxb,KAAK0lF,KAAK,QAASlqE,EACpB,CEpbD,SAASy0V,GAAa7sW,GACpB,QAActC,IAAVsC,EACF,MAAM,IAAIwc,MAAM,2EAGlB,OAAOxc,CACR,CCVM,SAAS8sW,GAAWzqV,GACzB,OAAOA,CACR,oBCsGM,MAAM0qV,WCtGN,cHUA,cFoBA,cDDA,cO9BA,MAAa,4CACF,IAAI/qR,IADF,CAGlBM,KAAK5gF,GAAe,2BAANoM,EAAM,iCAANA,EAAM,kBAClB,OAAO,GAAAlR,KAAA,IAAmB0lF,KAAK5gF,KAASoM,EACzC,CAsBDkX,GAAGtjB,EAAMmjI,GAEP,OADA,GAAAjoI,KAAA,IAAmBooB,GAAGtjB,EAAMmjI,GACrBjoI,IACR,CAwBDsoB,IAAIxjB,EAAMmjI,GAER,OADA,GAAAjoI,KAAA,IAAmBqoB,eAAevjB,EAAMmjI,GACjCjoI,IACR,CAsBDyrD,KAAK3mD,EAAMmjI,GAET,OADA,GAAAjoI,KAAA,IAAmByrD,KAAK3mD,EAAMmjI,GACvBjoI,IACR,GPXDyW,YAAY3W,EAASgF,EAAMwnW,GACzB,IAAI8D,EAEJpyV,QAHyC,4GAtC7B,CAAC,IAsC4B,8BArC5B,KAqC4B,8BApC5B,KAoC4B,oBAlC/B,IAAI+O,GAAG,IAkCwB,gBAjCnC,CAAC,GAiCkC,kBAhCjC,CAAC,GAgCgC,kBA/BjC,CAAC,GA+BgC,kBA9BjC,CAAC,GA8BgC,yBA7B1B0pN,GAAiB45H,0BA6BS,oBA5BhC,GA4BgC,iBA3BlC,CAAC,GA2BiC,sBA1B7B,CAAC,GA0B4B,cAzBrC,CACJxmW,KAAM,CAAC,EACP+wU,OAAQ,CAAC,EACT9gH,MAAO,CAAC,EACRlzM,GAAI,CAAC,IAqBoC,6BA+tBvBnB,GACXA,IA5tBP,GAAAzlB,KAAA,eAAwB2uW,KACxB,GAAA3uW,KAAA,IAAyD,QAAtCowW,EAAkBtwW,EAAQ+R,cAAwC,IAApBu+V,OAA6B,EAASA,EAAgB35J,WAAa32M,EAAQ22M,UAAY,IAAIi3H,IAE5J1tU,KAAKswW,IAAIrD,OAAS,CAACrpJ,EAAW2sJ,IAAiBztW,GAAK9C,KAAKwpT,GAAG5lG,EAAW2sJ,IAAethK,KAAK3lM,IAAIwpB,GAAKA,EAAEulB,GAAGxuC,QAEzG7J,KAAKswW,IAAIjuB,QAAU,CAACz+H,EAAW2sJ,IAAiBztW,GAAK9C,KAAKwpT,GAAG5lG,EAAW2sJ,IAAethK,KAAK3lM,IAAIwpB,GAAKA,EAAEulB,GAAGyhL,SAE1G95N,KAAKswW,IAAI75J,SAAT,GAAoBz2M,KAApB,IACA,MAAMwwW,EAAe1wW,EAAQ+R,OAAS/R,EAAQ+R,OAAO4+V,SAAS3nV,SAAS6hB,QAAU7qC,EAAQgpB,UAAY,IAAI+2M,GACzG7/N,KAAK0wW,gBAAkBpE,EACvBtsW,KAAKwvW,SAAW1vW,EAChBE,KAAK27N,MAAQ72N,EAEb9E,KAAKywW,SAAW,IAAIhO,GAAJ,GAAYziW,KAAZ,OAA8BA,KAA9B,IAA8CwwW,EAAcxwW,KAAKwvW,SAAS7uL,KAC1F3gL,KAAK8+N,aAAe,IAAI8xG,GAAgB5wU,KAAKywW,SAAS3nV,SAAS+3M,aAC/D7gO,KAAKswW,IAAI1vI,iBAAmB5gO,KAAKywW,SAAS3nV,SAAS83M,gBACpD,CAKGnqB,eACF,OAAO,GAAAz2M,KAAP,GACD,CAMD6tU,WAAW/oU,GAAiB,2BAARgR,EAAQ,iCAARA,EAAQ,kBAC1B,OAAO,GAAA9V,KAAA,IAAe6tU,WAAW/oU,KAASgR,EAC3C,CAMDg2T,cAAcnqT,GACZA,GAAS,GAAA3hB,KAAA,IAAeyyB,SAAS9Q,EAClC,CAMGi/M,uBACF,OAAO5gO,KAAKywW,SAAS3nV,SAAS83M,gBAC/B,CAMG+vI,mBACF,OAAO3wW,KAAKywW,SAAS3nV,SAAS83M,oBAAsB5gO,KAAKywW,SAAS14V,MAAMijT,cACzE,CAED41C,gBAAgBn6J,EAAUmN,GACxB,MAAO,CACL/5M,KAAM,CAAC,EACP+wU,OAAQ,CAAC,EACTx/T,OAAQ,CAAC,EACTqI,OAAQ,CAAC,EACTq2M,MAAO,CAAC,EACRrjB,WACAp+J,GAAI,CACFxuC,KAAM,CAAC,EACPiwN,MAAO,CAAC,GAEVlzM,GAAI4mV,GAAkBxtW,KAAK27N,MAAO37N,KAAKswW,IAAKtwW,KAAK0wW,gBAAiBj6J,EAAUmN,GAE/E,CAEDitJ,iBAAiBp6J,EAAU83J,EAAWuC,EAAcltJ,GAC7CktJ,IACHA,EAAe9wW,KAAK4wW,gBAAgBn6J,EAASA,SAAUmN,KAGrD2qJ,GAAc93J,EAASs6J,gBACzBt6J,EAASs6J,cQjJR,SAAwBt6J,EAAUh/B,GACvC,KAAMA,aAAoBs8E,IACxB,MAAM,IAAIn0O,MAAM,2DAGlB,MAAMunU,EAAS1vK,EAASstJ,SAClB9vT,EAAUwiK,EAASxiK,QACzB,MAAO,CACL2lU,OAAQtc,GAAkB7nH,EAAU0wI,GACpC/rU,OAAQkiT,GAAe7mH,EAAU0wI,EAAQlyU,GACzCwO,OAAQi6S,GAAejnH,EAAU0wI,EAAQlyU,GACzC6kN,MAAOwvI,GAAgB7yJ,EAAU0wI,GACjC1wI,WACA7vL,GAAIy3S,GAAmB5nH,EAAU0wI,EAAQlyU,GAE5C,CRkI8B+7V,CAAev6J,EAASA,SAAUA,EAASh/B,WAGtE,MAAM90C,EAAU3iI,KAAKixW,eAAex6J,EAAUz2M,KAAK0wW,gBAAiB9sJ,GAE9DstJ,EAAYlxW,KAAKixW,eAAex6J,EAAUz2M,KAAKmxW,kBAAmBvtJ,GAElEpuM,EAAUxV,KAAKoxW,iBAAiB36J,EAASs6J,cAAe/wW,KAAK0wW,gBAAiB9sJ,GAE9EytJ,EAAYrxW,KAAKoxW,iBAAiB36J,EAASs6J,cAAe/wW,KAAKmxW,kBAAmBvtJ,GAgBxF,OAdA0qJ,GAAc,SAAU73J,EAASs6J,cAAcn2B,OAAQk2B,EAAal2B,OAAQ2zB,GAC5ED,GAAc,SAAU73J,EAASs6J,cAAc31V,OAAQ01V,EAAa11V,OAAQmzV,GAC5ED,GAAc,SAAU73J,EAASs6J,cAActtV,OAAQqtV,EAAartV,OAAQ8qV,GAC5ED,GAAc,QAAS94V,EAASs7V,EAAah3I,MAAOy0I,GACpDD,GAAc,QAAS+C,EAAWP,EAAaz4T,GAAGyhL,MAAOy0I,GACzDD,GAAc,OAAQ3rO,EAASmuO,EAAajnW,KAAM0kW,GAClDD,GAAc,OAAQ4C,EAAWJ,EAAaz4T,GAAGxuC,KAAM0kW,GAEvDuC,EAAahvI,SAAWC,GAAaD,GAASrrB,EAASA,SAAUsrB,GAEjE+uI,EAAa7uI,UAAYC,GAAcD,GAAUxrB,EAASA,SAAUyrB,GAEpE4uI,EAAa95B,WAAapzH,EAAY5jN,KAAKsxW,iBAAiBR,EAAc9wW,KAAK0wW,gBAAiB9sJ,GAAa5jN,KAAKuxW,eAAevxW,KAAK0wW,iBACtII,EAAal3I,eAAiBnjB,EAASmjB,eAChC,CACL43I,UAAW5tJ,EACXktJ,eACAC,cAAet6J,EAASs6J,cAE3B,CAEDU,gBAAgBh7J,GAA6B,IAAnB83J,EAAmB,yDAEvCA,GAAc93J,EAASq6J,eACzBr6J,EAASq6J,aAAe9wW,KAAK4wW,gBAAgBn6J,EAASA,WAGxD,MAAM,aACJq6J,EADI,cAEJC,GACE/wW,KAAK6wW,iBAAiBp6J,EAAU83J,EAAW93J,EAASq6J,cAExD9wW,KAAKuuN,MAAQuiJ,EAAajnW,KAC1B7J,KAAK0xW,QAAUZ,EAAal2B,OAC5B56U,KAAK82L,QAAUg6K,EAAa11V,OAC5Bpb,KAAKilF,QAAU6rR,EAAartV,OAC5BzjB,KAAK2xW,OAASb,EAAah3I,MAC3B95N,KAAKswW,IAAIzmW,KAAOinW,EAAaz4T,GAAGxuC,KAChC7J,KAAKswW,IAAIx2I,MAAQg3I,EAAaz4T,GAAGyhL,MAEjC,MAAMlzM,EAAK5mB,KAAK4xW,oBAAoBb,EAAe/wW,KAAK0wW,iBAElDmB,EAAO7xW,KAAK4xW,oBAAoBb,EAAe/wW,KAAKmxW,mBAEtD5C,IAAcvuW,KAAK8xW,aACrB9xW,KAAK8xW,YAAclrV,EACnB5mB,KAAKswW,IAAI1pV,GAAKirV,IAEdvD,GAAc,KAAM1nV,EAAI5mB,KAAK8xW,aAAa,GAC1CxD,GAAc,KAAMuD,EAAM7xW,KAAKswW,IAAI1pV,IAAI,IAGzC0nV,GAAc,KAAMyC,EAAcn2B,OAAQ56U,KAAKswW,IAAI11B,OAAQ2zB,GAC3DvuW,KAAK0lF,KAAK,YACX,CAODqsR,eAAet6L,EAAU82L,EAAW93J,GAClCz2M,KAAKyxW,gBAAgB,CACnBhxU,QAAS,EACTg3I,WACAg/B,SAAUA,GAAY,GAAAz2M,KAAJ,IAClB45N,eAAgB,GAAA55N,KAAA,IAAe6tU,WAAW,0BACzC0gC,EACJ,CAEDyD,sBAAsBz4V,EAAO7S,GAU3B,OATAA,EAAOu4F,KAAO1lF,EAAM0lF,KACpBv4F,EAAO+e,OAASlM,EAAMkM,OACtB/e,EAAO8xM,QAAUj/L,EAAMi/L,QACvB9xM,EAAOuoB,OAAS1V,EAAM0V,OAElB1V,EAAMwoN,YACRr7N,EAAOq7N,UAAYxoN,EAAMwoN,WAGpBr7N,CACR,CAMDurW,WAAWz+Q,EAAS80L,GAEqB,IAAnCplR,OAAOihB,KAAKmkQ,GAAYjoR,SAC1BL,KAAKywW,SAAS3N,kBAAkBx6E,GAGhCtoR,KAAKkyW,aAAalyW,KAAKywW,SAAUzwW,KAAK0wW,gBAAiB1wW,KAAKmyW,MAE5DnyW,KAAKkyW,aAAalyW,KAAKywW,SAAUzwW,KAAKmxW,kBAAmBnxW,KAAKswW,IAAI3vL,MAKpE,MAAMyxL,EAAa,CAAC,EAEpB,IAAK,IAAInwW,EAAI,EAAGA,EAAIuxF,EAAQnzF,OAAQ4B,IAAK,CACvC,MAAOu2M,GAAWhlH,EAAQvxF,GAAGoI,MAAM,KACnC+nW,EAAW55J,IAAW,CACvB,CAGD,MAAMqqJ,EAAW3/V,OAAOihB,KAAKiuV,GAE7B,IAAK,IAAInwW,EAAI,EAAGA,EAAI4gW,EAASxiW,OAAQ4B,IAAK,CACxC,MAAMowW,EAAQ5I,GAAiB5G,EAAS5gW,IAClCqwW,EAAQ,GAAH,OAAMD,EAAN,OACXryW,KAAKuyW,YAAY1oK,GAAYwoK,EAAO,KAAOA,EAC3CryW,KAAKuyW,YAAY1oK,GAAYyoK,EAAO,KAAOA,CAC5C,CAGDtyW,KAAKwyW,kBAAkBh/Q,EACxB,CAEDg/Q,kBAAkBC,GAChB,MAAMC,EAAgC,IAAnBD,EAAQpyW,OACrBu+K,EAAW,IAAI5+K,KAAKywW,SAASrsC,QAAQ7iQ,WACrCgG,EAAU,GAEhB,IAAK,IAAItlE,EAAI,EAAGA,EAAI28K,EAASv+K,OAAQ4B,IAAK,CACxC,MAAO,EAAE,MACP8sO,EADO,SAEPjP,EAFO,OAGPr6M,EAHO,OAIP0kP,EAJO,QAKP3xD,IACG55B,EAAS38K,GACdslE,EAAQ3mE,KAAR,UAAgB43M,EAAhB,YAA2B/yL,IAEvB0kP,IACF5iM,EAAQ3mE,KAAR,UAAgB43M,EAAhB,YAA2B2xD,EAAO,KAClC5iM,EAAQ3mE,KAAR,UAAgB43M,EAAhB,YAA2B2xD,EAAO,MAGhCp7B,GACFxnK,EAAQ3mE,QAAQmuO,GAGdjP,GACFv4J,EAAQ3mE,KAAKk/N,EAEhB,CAED,MAEM4wG,EAAU+hC,EAAQrvV,QAFN/a,IAAMk/D,EAAQ2zB,SAAS7yF,KAIrCqoU,EAAQrwU,SAAWL,KAAKwvW,SAASmD,YACnC5rU,GAAEntB,KAAF,qCAAqC82T,EAAQ7pU,KAAK,QAKpD,IAAK,IAAI5E,EAAI,EAAGA,EAAI28K,EAASv+K,OAAQ4B,IAAK,CACxC,MAAOoG,GAAG,OACRod,EADQ,QAER+yL,IACG55B,EAAS38K,GAEVywW,IAAeD,EAAQv3Q,SAAS7yF,IAAY,gBAANA,GACpCrI,KAAKmyW,KAAK35J,YACLx4M,KAAKmyW,KAAK35J,GAAS/yL,UACnBzlB,KAAKswW,IAAI3vL,IAAI63B,GAAS/yL,GAGlC,CACF,CAEDysV,aAAavxL,EAAK2rL,GAChB,MAAMl4R,EADsC,uDAAJ,CAAC,EAGnCw+R,EAAa,CAACp6J,EAAS/yL,KAC3B,MAAM5T,EAAS8uK,EAAI63B,GAAS/yL,GACtBta,EAAKmhW,EAAez6V,EAAQ,CAChCmiF,WAAYvuE,IAMd,OAJAta,EAAG8zF,KAAOptF,EAAOotF,KACjB9zF,EAAGkG,IAAMi7V,EAAez6V,EAAOR,IAAK,CAClC2iF,WAAYvuE,IAEPta,CAAP,EAGF,IAAK,IAAIslB,EAAI,EAAGA,EAAIkwJ,EAAIkiL,SAASxiW,OAAQowB,IAAK,CAC5C,MAAM+nL,EAAU73B,EAAIkiL,SAASpyU,GAE7B,IAAKvtB,OAAO9B,UAAU0Q,eAAejI,KAAKuqE,EAAKokI,GAAU,CACvD,MAAMhlH,EAAUtwF,OAAOihB,KAAKw8J,EAAI63B,IAE1Bq6J,EAAmBptV,GAAUmtV,EAAWp6J,EAAS/yL,GAEvD,IAAK,IAAIkO,EAAI,EAAGA,EAAI6/D,EAAQnzF,OAAQszB,IAAK,CACvC,MAAMlO,EAAS+tE,EAAQ7/D,IAEnB3zB,KAAK4gO,mBAAsBn7M,EAAO88H,WAAW,eAAgB98H,EAAO88H,WAAW,kBAC5Er/I,OAAO9B,UAAU0Q,eAAejI,KAAKuqE,EAAKokI,KAC7CpkI,EAAIokI,GAAW,CAAC,GAGlB+6B,GAAWn/J,EAAIokI,GAAU/yL,EAAQotV,GAEpC,CACF,CACF,CAED,OAAOz+R,CACR,CAGD0+R,eAAehiW,EAAQw3Q,GACrB,IAAKA,EACH,OAGF,MAAM/mN,EAAUr+D,OAAOq+D,QAAQ+mN,GAE/B,IAAK,IAAIlgR,EAAI,EAAGA,EAAIm5D,EAAQlhE,OAAQ+H,IAAK,CACvC,MAAOlH,EAAKmhW,GAAQ9gS,EAAQn5D,GAE5B,GAAI0I,EAAO5P,GAGT,IAAK,IAAImH,EAAI,EAAGA,EAAIg6V,EAAKhiW,OAAQgI,IAAK,CACpC,MAAM04H,EAAMshO,EAAKh6V,GACXlD,EAAO2L,EAAO5P,GAAKu1B,MAAK,QAAC,QAC7BxhB,GAD4B,SAExB8rH,EAAI9rH,UAAYA,CAFQ,IAI1B9P,EAEF6vK,GAAa7vK,EAAKquF,QAASutC,EAAIvtC,SAG/B1iF,EAAO5P,GAAKN,KAAKmgI,EAEpB,MAGDjwH,EAAO5P,GAAOmhW,CAEjB,CACF,CAGD0Q,gBAAgBt8J,EAAUt3B,GAAsB,IAAZN,EAAY,uDAAJ,GAC1C,MAAM/tK,EAAS,CAAC,EACV81N,EAAY1jO,OAAO0b,OAAOo0V,GAGhC,IAAK,IAAI/wW,EAAI,EAAGA,EAAI2kO,EAAUvmO,OAAQ4B,IACpCjC,KAAK8yW,eAAehiW,EAAQ81N,EAAU3kO,GAAG0gI,SAO3C,OAJA3iI,KAAK8yW,eAAehiW,EzvB3VjB,WAEJouK,EAAWC,GAAU,IAFO,WAC7BG,GACsB,EACtB,OAAOL,GAAUC,EAAWC,GAAU,CAAClnK,EAAGwY,KACxC,IAAIwiV,EAAyBC,EAAyBC,EAAyBC,EAAyBC,EAAyBC,EAEjI,OAAOt+L,GAAa,CAAC,EAA0D,QAAtDi+L,EAA0B3zL,EAAWY,mBAAqD,IAA5B+yL,GAA2G,QAA5DC,EAA0BD,EAAwB9yL,YAA8C,IAA5B+yL,GAAyG,QAA1DC,EAA0BD,EAAwBziV,UAA4C,IAA5B0iV,OAA/L,EAA6OA,EAAwBxwO,QAAgE,QAAtDywO,EAA0B9zL,EAAWY,mBAAqD,IAA5BkzL,GAA4G,QAA7DC,EAA0BD,EAAwBv0L,aAA+C,IAA5Bw0L,GAAyG,QAA1DC,EAA0BD,EAAwBp7V,UAA4C,IAA5Bq7V,OAAhM,EAA8OA,EAAwB3wO,QAApvB,GAEH,CyvBmV+B4wO,CAAe98J,EAAU53B,EAAOM,IAE5Dn/K,KAAK8yW,eAAehiW,EAAQ9Q,KAAKwvW,SAAS7sO,SAEnCz/H,OAAOq+D,QAAQzwD,EACvB,CAGDmgW,eAAe,EAOZ3E,EAAgB1oJ,GAAW,IAPf,SACbnN,EACAmjB,gBAAgB,KACd56C,EADc,SAEdG,EAFc,YAGdJ,IAE0B,EAC5B,MAAMjuK,EAAS,CAAC,EACV0iW,EAAQ,CAAC,EACTt7L,EAAS,CAAC,EAEV2qL,EAAW7iW,KAAK+yW,gBAAgBt8J,EAAUt3B,EAAUn/K,KAAKyzW,eAEzDC,EAAQ,GACRr3C,EAAW,GAAH,OAAMl9I,EAAS7yK,WAAf,YAA6ByyK,EAAYzyK,YACjDqnW,EAAY,GAAA3zW,KAAA,IAAiBq8T,KAAa,EAChD,GAAAr8T,KAAA,IAAiBq8T,IAAY,EAE7B,IAAK,IAAIp6T,EAAI,EAAGA,EAAI4gW,EAASxiW,OAAQ4B,IAAK,CACxC,MAAO2xW,EAAUh1E,GAAQikE,EAAS5gW,GAC5B4xW,EAAchqK,GAAY+pK,EAAU,IACpCE,EAAQ90L,EAAKvoJ,MAAK,QAAE3D,GAAF,SAASA,EAAElE,GAAGilV,EAAd,IAGxB,GAFA37L,EAAO27L,IAAe,EAElBC,EAAO,CACT,MAAMjqV,EAAM+0Q,EAAKt1R,KAAI,QAAC,QACpB2L,GADmB,SAEfA,CAFe,IAEN4f,OACTk/U,EAAMn1E,EAAKnoQ,MAAK,QAAC,QACrBxhB,GADoB,SAEhB6+V,EAAM,GAAGllV,GAAG3Z,EAFI,IAItB,GAAI8+V,EAAK,CACP,MAAMv7J,EAAUqtB,GAAgB+tI,GAC1BpgR,EAAUtwF,OAAOq+D,QAAQwyS,EAAIvgR,SAEnC,GAAIA,EAAQnzF,OAAQ,CACbmzW,EAAMh7J,KACTg7J,EAAMh7J,GAAW,CAAC,GAGpB,IAAK,IAAI7kL,EAAI,EAAGA,EAAI6/D,EAAQnzF,OAAQszB,IAAK,CACvC,MAAOqgV,EAASjzO,GAAOvtC,EAAQ7/D,GACzBlO,EAASogN,GAAgBmuI,GAC/BR,EAAMh7J,GAAS/yL,GAAUuvJ,GAAa,CACpCvvJ,SACAxa,KAAM,GAAF,OAAK2oW,EAAL,YAAiBI,GACrBx7J,UACAq7J,eACC9yO,EACJ,CACF,CACF,MACC2yO,EAAM9yW,KAAN,UAAcgzW,EAAd,YAA0BE,EAAM,GAAGxnW,WAAnC,aAAkDud,EAAIhjB,KAAK,KAA3D,WAEH,CACF,CAGD,MAAMotW,EAAWj1L,EAAK11K,KAAI,QAAEwpB,EAAGrS,GAAL,QAAY,CAACqS,EAAE5D,QAASzO,EAAEnU,WAA1B,IAAuC8W,QAAO,QAAE0P,GAAF,SAAUolJ,EAAOplJ,EAAjB,IAAqBxpB,KAAI,QAAEwpB,EAAGrS,GAAL,kBAAezgB,KAAKuyW,YAAYz/U,IAAMA,EAAtC,YAA2CrS,EAA3C,IAE5FzgB,KAAKwvW,SAASmD,YAAegB,IAC5BD,EAAMrzW,QACR0mC,GAAEntB,KAAF,UAAUyiT,EAAV,oEAA8Eq3C,EAAM7sW,KAAK,QAGvFotW,EAAS5zW,QACX0mC,GAAEntB,KAAF,UAAUyiT,EAAV,kDAA4D43C,EAASptW,KAAK,SAI9E,MAAMqtW,EAAYtwJ,EAAY,CAAC34M,EAAMyR,IAAU1c,KAAKywW,SAAS14V,MAAMlO,KAAKoB,EAAMyR,EAAOknM,GAAa,CAAC34M,EAAMyR,IAAU1c,KAAKywW,SAAS14V,MAAMlO,KAAKoB,EAAMyR,GAE5Iy3V,EAAc37J,GAAWg7B,GAAY,CAAC,EAAGtwO,OAAOihB,KAAKqvV,EAAMh7J,KAAW/yL,GAAUzlB,KAAKo0W,cAAc39J,EAAU+8J,EAAMh7J,GAAS/yL,GAASyuV,EAAW5H,KAEhJl8G,EAAUltP,OAAOihB,KAAKqvV,GAE5B,IAAK,IAAIvxW,EAAI,EAAGA,EAAImuP,EAAQ/vP,OAAQ4B,IAClCsxO,GAAWziO,EAAQs/O,EAAQnuP,GAAIkyW,GAGjC,OAAOrjW,CACR,CAEDsjW,cAAc39J,EAAU11E,EAAKmzO,EAAW5H,GAEtC,MAAM+H,EAAY/H,GAAe,WAAa,2BAATp7V,EAAS,yBAATA,EAAS,gBAC5C,GAAIA,EAAK7Q,SAAW0gI,EAAIjrH,OAAOzV,OAC7B,MAAM,IAAIuf,MAAJ,UAAamhH,EAAI91H,KAAjB,uBAAoC81H,EAAIjrH,OAAOzV,OAA/C,6BAA0E6Q,EAAK7Q,SAGvF,MAAMqc,EAAQ+5L,EAASo3H,WAAW,MAAOlyI,GAAgBzqL,EAAK5H,KAAI,CAACwpB,EAAG7wB,IAAMw0M,EAAS28B,iBAAiBryG,EAAIjrH,OAAO7T,GAAG6C,KAAM,CAACguB,IAAIshM,YAC/H,OAAO8/I,EAAUnzO,EAAI91H,KAAMyR,GAAOuyL,KAAK3lM,IAAIknB,GAAKimL,EAAS28B,iBAAiBryG,EAAIj8H,KAAM,CAAC0rB,MACtF,IAGD,OAFA6jV,EAAUp1Q,KAAO8hC,EAEVszO,CACR,CAGD9C,eAAejF,GAEb,OAAOA,GAAenoV,IAASnkB,KAAK4gO,iBAAmB5gO,KAAKywW,SAAS14V,MAAMmjT,iBAAmBl7T,KAAKywW,SAAS14V,MAAMijT,gBAAgB72S,EAAK7a,KAAI4H,GAAQtH,MAAM4G,QAAQU,GAAQA,EAAK,GAAG65L,QAAQ9rG,KAAKn6F,KAAK8pP,QAAU,CAAC19O,EAAK,GAAG65L,SAA8D,IAAnD75L,EAAK,GAAG65L,QAAQ9rG,KAAKn6F,KAAKgqP,MAAMG,QAAQ5uP,OAAe,CAAC6Q,EAAK,GAAG65L,QAAS75L,EAAKjN,MAAM,IAAM,CAACiN,EAAK,GAAG65L,WAAY75L,EAAKjN,MAAM,IAAM,CAACiN,EAAK65L,aACxW,CAEDumK,iBAAiBgD,EAAOhI,EAAgB1oJ,GAEtC,OAAO0oJ,GAAe/7G,GAASvwP,KAAKywW,SAAS14V,MAAMijT,eAAezqE,EAAMjnP,KAAI4H,IAC1E,GAAItH,MAAM4G,QAAQU,GAAO,CACvB,MAAM,QACJ65L,GACE6jK,GAAa0F,EAAOpjW,EAAK,GAAG65L,SAChC,OAAOA,EAAQ9rG,KAAKn6F,KAAK8pP,QAAU,CAAC7jD,GAAsD,IAA3CA,EAAQ9rG,KAAKn6F,KAAKgqP,MAAMG,QAAQ5uP,OAAe,CAAC0qM,EAAS75L,EAAKjN,MAAM,IAAM,CAAC8mM,KAAY75L,EAAKjN,MAAM,GAClJ,CAED,MAAO,CAAC2qW,GAAa0F,EAAOpjW,EAAK65L,SAASA,QAA1C,IACE6Y,IACL,CAEDguJ,oBAAoB,EAEjBtF,GAAgB,IAFC,GAClB1lV,GACiB,EACjB,MAAM9V,EAAS08V,GAAkBxtW,KAAK27N,MAAO37N,KAAKswW,IAAKhE,GAEjD6H,EAAc37J,GAAWg7B,GAAY,CAAC,EAAGtwO,OAAOihB,KAAKyC,EAAG4xL,KAAW/yL,GAAUA,EAAO88H,WAAW,KAAO37H,EAAG4xL,GAAS/yL,GAAUzlB,KAAKu0W,wBAAwB3tV,EAAG4xL,GAAS/yL,GAAS3U,KAE9K+xV,EAAW3/V,OAAOihB,KAAKyC,GAE7B,IAAK,IAAI3kB,EAAI,EAAGA,EAAI4gW,EAASxiW,OAAQ4B,IACnCsxO,GAAWziO,EAAQ+xV,EAAS5gW,GAAIkyW,GAGlC,OAAOrjW,CACR,CAEDyjW,wBAAwB9uV,EAAQslL,GAC9B,MAAMspK,EAAY,kBAAetpK,EAAQtlL,KAAU,WAAjC,EAMlB,OAHA4uV,EAAU/0Q,GAAK3xE,GAASlI,EAAO65E,GAAG3xE,GAG3B3tB,KAAKgyW,sBAAsBvsV,EAAQ4uV,EAC3C,CAEDjD,iBAAiB,EAGd9E,EAAgB1oJ,GAAW,IAHb,MACfkW,EADe,SAEfrjB,GAC4B,EAC5B,MAAM3lM,EAAS,CAAC,EAEVqjW,EAAc37J,GAAWg7B,GAAY,CAAC,EAAGtwO,OAAOihB,KAAK21M,EAAMthB,KAAW/yL,GAAUm+L,EAAY5jN,KAAKw0W,wBAAwB/9J,EAAUqjB,EAAMthB,GAAS/yL,GAAS6mV,EAAgB1oJ,GAAa5jN,KAAKy0W,sBAAsB36I,EAAMthB,GAAS/yL,GAAS6mV,KAE3OzJ,EAAW3/V,OAAOihB,KAAK21M,GAE7B,IAAK,IAAI73N,EAAI,EAAGA,EAAI4gW,EAASxiW,OAAQ4B,IACnCsxO,GAAWziO,EAAQ+xV,EAAS5gW,GAAIkyW,GAGlC,OAAOrjW,CACR,CAED2jW,sBAAsB1pK,EAASuhK,GAAgB,WAC7C,MAAMoI,EAAU,CAACxjW,EAAMulM,IAAag4J,GAAmBh4J,GAAY,GAAAz2M,KAAJ,IAAoB+qM,EAAS75L,GAEtFyjW,EAAa/wJ,GAAa9gN,GAAK9C,KAAKwpT,GAAG5lG,IAAY3U,KAAK3lM,IAAIgtM,GAAOs4J,GAAat4J,EAAKvL,MAKrFspK,EAAYr0W,KAAK40W,qBAAqB7pK,EAASuhK,GA+BrD,OA7BA+H,EAAUtpK,QAAUA,EACpBspK,EAAU7qD,GAAK8iD,GAAe,SAAC1oJ,GAAD,2BAAe1yM,EAAf,iCAAeA,EAAf,yBAAwByjW,EAAW/wJ,GAAW3U,KAAKM,IAAU9iL,GAAKA,KAAKvb,KAAvE,IAC9BmjW,EAAUttW,KAAOulW,GAAe,sCAAIp7V,EAAJ,yBAAIA,EAAJ,uBAAa,EAAKu/V,SAAS14V,MAAM6gT,eAAe87C,EAAQxjW,GAAxD,IAEhCmjW,EAAU/0Q,GAAKp+F,GAAOA,EAAIs3M,UAAYzN,EAAQyN,SAAWt3M,EAAIukB,SAAWslL,EAAQtlL,OAEhF4uV,EAAUnzW,IAAM,kBAAaooM,GAAS8kC,GAAmBrjC,KAAW,YAAO,GAA3D,EAEhBspK,EAAU9L,UAAY,kBAAaj/J,GAASyB,EAAQw9J,aAAa,WAA3C,EAEtB8L,EAAUlsW,KAAOmkW,GAAe,sCAAIp7V,EAAJ,yBAAIA,EAAJ,uBAAa,EAAKu/V,SAAS14V,MAAM8gT,eAAe67C,EAAQxjW,GAAxD,IAChCmjW,EAAUQ,OAASvI,GAAe,SAAC1oJ,GAAD,2BAAe1yM,EAAf,iCAAeA,EAAf,yBAAwByjW,EAAW/wJ,GAAW3U,KAAKM,IAAU9iL,GAAK,EAAKgkV,SAAS14V,MAAM8gT,eAAe67C,EAAQxjW,EAAMub,EAAEs+K,QAAQ9rG,KAAKw3G,UAAWmN,KAA7I,IAE9B7Y,EAAQm9J,SAAWn9J,EAAQ9rG,KAAKn6F,KAAKuqL,QACvCglL,EAAU9yS,QAAU+qS,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmB,sCAAIkR,EAAJ,yBAAIA,EAAJ,uBAAa,EAAK4jW,oBAAoB/pK,EAAS,KAAM75L,EAArD,KAC1DmjW,EAAUU,UAAYzI,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmB,SAAC4jN,GAAD,2BAAe1yM,EAAf,iCAAeA,EAAf,yBAAwByjW,EAAW/wJ,GAAW3U,KAAKM,IAAU9iL,GAAK,EAAKqoV,oBAAoBroV,EAAEs+K,QAAS6Y,EAAW1yM,KAAjH,KAC5DmjW,EAAUW,aAAe1I,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmBkoD,GAAQloD,KAAKi1W,yBAAyBlqK,OAASjqM,EAAWonD,MACzHmsT,EAAUlwV,KAAOmoV,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmB,sCAAIkR,EAAJ,yBAAIA,EAAJ,uBAAa,EAAKgkW,iBAAiBnqK,EAAS,KAAM75L,EAAlD,KACvDmjW,EAAUc,OAAS7I,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmB,SAAC4jN,GAAD,2BAAe1yM,EAAf,iCAAeA,EAAf,yBAAwByjW,EAAW/wJ,GAAW3U,KAAKM,IAAU9iL,GAAK,EAAKyoV,iBAAiBzoV,EAAEs+K,QAAS6Y,EAAW1yM,KAA9G,KACzDmjW,EAAUe,UAAY9I,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmBkoD,GAAQloD,KAAKq1W,sBAAsBtqK,OAASjqM,EAAWonD,OAGjHloD,KAAK2wW,cAAgB5lK,EAAQ9rG,KAAKn6F,KAAKuqL,QAEzCglL,EAAUj7B,MAAQkzB,GAAep7V,GAAmD,IAA3C65L,EAAQ9rG,KAAKn6F,KAAKgqP,MAAMG,QAAQ5uP,OAAeL,KAAKs1W,eAAepkW,EAAK5H,KAAIwpB,GAAK,CAACi4K,EAAS,CAACj4K,OAAQ9yB,KAAKs1W,eAAepkW,EAAK5H,KAAIwpB,GAAK,CAACi4K,EAASj4K,SAKpL9yB,KAAKgyW,sBAAsBjnK,EAASspK,EAC5C,CAEDG,wBAAwB/9J,EAAU1L,EAASuhK,EAAgB1oJ,GAAW,WACpE,MAAM8wJ,EAAUxjW,GAAQu9V,GAAmBh4J,EAAU1L,EAAS75L,GAKxDmjW,EAAY/H,GAAe,sCAAIp7V,EAAJ,yBAAIA,EAAJ,uBAAa,EAAKu/V,SAAS14V,MAAMy2P,WAAWkmG,EAAQxjW,GAAO0yM,EAA3D,IA0BjC,OAzBAywJ,EAAUtpK,QAAUA,EACpBspK,EAAUttW,KAAOulW,GAAe,sCAAIp7V,EAAJ,yBAAIA,EAAJ,uBAAa,EAAKu/V,SAAS14V,MAAM6gT,eAAe87C,EAAQxjW,GAAO0yM,EAA/D,IAEhCywJ,EAAU/0Q,GAAKp+F,GAAOA,EAAIs3M,UAAYzN,EAAQyN,SAAWt3M,EAAIukB,SAAWslL,EAAQtlL,OAEhF4uV,EAAUnzW,IAAM,sCAAIgQ,EAAJ,yBAAIA,EAAJ,uBAAao4L,GAAS8kC,GAAmBrjC,EAAQA,EAAQ9rG,KAAKn6F,KAAK8pP,aAAU9tP,EAAYoQ,IAAO,GAAhG,EAEhBmjW,EAAU9L,UAAY,kBAAaj/J,GAASyB,EAAQw9J,aAAa,WAA3C,EAEtB8L,EAAUlsW,KAAOmkW,GAAe,sCAAIp7V,EAAJ,yBAAIA,EAAJ,uBAAa,EAAKu/V,SAAS14V,MAAM8gT,eAAe67C,EAAQxjW,GAAO0yM,EAA/D,IAE5B7Y,EAAQm9J,SAAWn9J,EAAQ9rG,KAAKn6F,KAAKuqL,QACvCglL,EAAU9yS,QAAU+qS,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmB,sCAAIkR,EAAJ,yBAAIA,EAAJ,uBAAa,EAAK4jW,oBAAoB/pK,EAAS6Y,EAAW1yM,EAA1D,KAC1DmjW,EAAUW,aAAe1I,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmBkoD,GAAQloD,KAAKi1W,yBAAyBlqK,EAAS6Y,EAAW17J,MACzHmsT,EAAUlwV,KAAOmoV,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmB,sCAAIkR,EAAJ,yBAAIA,EAAJ,uBAAa,EAAKgkW,iBAAiBnqK,EAAS6Y,EAAW1yM,EAAvD,KACvDmjW,EAAUe,UAAY9I,EAAev4O,GAAK,GAAA/zH,KAAD,KAAmBkoD,GAAQloD,KAAKq1W,sBAAsBtqK,EAAS6Y,EAAW17J,OAGjHloD,KAAK2wW,cAAgB5lK,EAAQ9rG,KAAKn6F,KAAKuqL,QAEzCglL,EAAUj7B,MAAQkzB,GAAep7V,GAAmD,IAA3C65L,EAAQ9rG,KAAKn6F,KAAKgqP,MAAMG,QAAQ5uP,OAAeL,KAAKs1W,eAAepkW,EAAK5H,KAAIwpB,GAAK,CAACi4K,EAAS,CAACj4K,MAAM8wL,GAAa5jN,KAAKs1W,eAAepkW,EAAK5H,KAAIwpB,GAAK,CAACi4K,EAASj4K,KAAK8wL,MAKpM5jN,KAAKgyW,sBAAsBjnK,EAASspK,EAC5C,CAEDkB,cAAc1rW,EAAMo2G,GAClB,MAAM65G,EAAQ75G,IAAU,GAAAjgH,KAAL,IAAyBA,KAAKywW,SAAS14V,MAAMmjT,iBAAmBl7T,KAAKywW,SAAS14V,MAAMijT,eACvG,IAEIw6C,EAFAC,EAAWx1P,EAAM5/G,OAAS,EAC1Bq1W,EAAW,EA4Bf,OAtBkB,IAAdD,GAAoBx1P,EAAMw1P,IAxpBd,KAwpB2Bx1P,EAAMw1P,GAAU,GAAGp1W,QAiB5Dm1W,EAAWv1P,EAAMw1P,GAAU,GAC3BC,EAAWz1P,EAAMw1P,GAAU,GAAGp1W,OAC9B4/G,EAAMw1P,GAAU,GAAG70W,KAAKiJ,KAlBxB4rW,IACAD,EAAW1yW,GAGX,IAAI8mB,SAAQE,IACVutG,IAAS,KAIP,MAAMk5H,EAAQtwI,EAAMw1P,GAAU,UACvBx1P,EAAMw1P,GACb3rV,EAAQymO,EAAR,GANF,KAQEthD,KAAKM,IAAUghD,GAASz2B,EAAMy2B,MAClCtwI,EAAMr/G,KAAK,CAAC40W,EAAU,CAAC3rW,MAOlB2rW,EAASvmK,KAChB3lM,IAAIsV,GAAUA,EAAO82V,KACtB,CAIDd,qBAAqB7pK,EAASuhK,GAAgB,WAC5C,OAAOA,GAAe,WAAa,2BAATp7V,EAAS,yBAATA,EAAS,gBACjC,MAAMrH,EAAO4kW,GAAmB,KAAD,IAAiB1jK,EAAS75L,GAEzD,OAAK,EAAK0vN,iBAIH,EAAK20I,cAAc1rW,EAAnB,GAAyB,EAAzB,KAHE,EAAK4mW,SAAS14V,MAAMy2P,WAAW3kQ,EAIzC,GAAE,CACDmqF,WAAY+2G,EAAQtlL,OACpBkwV,cAAe,sCAAIzkW,EAAJ,yBAAIA,EAAJ,uBAAa,EAAKqkW,cAAc9G,GAAmB,KAAD,IAAiB1jK,EAAS75L,GAA/D,GAAsE,EAAtE,IAAb,GAElB,CAGDokW,eAAenxV,EAAMy/L,GACnB,IAAKz/L,EAAK9jB,OACR,OAAO0zG,GAAG,IAGZ,MAAM+lH,EAAQ95N,KAAK4gO,mBAAqBhd,EAAY5jN,KAAKywW,SAAS14V,MAAMmjT,iBAAmBl7T,KAAKywW,SAAS14V,MAAMijT,eAE/G,OAAI72S,EAAK9jB,QA7sBO,IA8sBPujN,EAAYkW,EAAM31M,EAAMy/L,GAAakW,EAAM31M,GAG7C+sT,GAAcqlB,GAAWpyU,EAjtBhB,KAitBmC7a,KAAIjB,GAAKu7M,EAAYkW,EAAMzxN,EAAGu7M,GAAakW,EAAMzxN,MAAK4mM,KAAK3lM,GAAIq8U,IACnH,CAEDuvB,iBAAiB,EAKd1rD,EAAIt4S,GAAM,IALI,QACfg3V,EADe,KAEfjpQ,EAFe,OAGfx5E,EAHe,QAIf+yL,GACW,EACX,IAAK0vJ,IAAYjpQ,EAAKn6F,KAAKuqL,MACzB,MAAM,IAAIzvK,MAAM,sCAGlB,MAAMg2V,EAAU1N,KAAWh3V,GAAMge,QAC3B2mV,EAAe,IAAIjlC,GAAgBglC,GACnC97I,EAAQ0vF,EAAKg9B,GAAYxmV,KAAKywW,SAAS14V,MAAM2gT,aAAak9C,EAAS5vB,GAAaQ,EAAUh9B,GAAMg9B,GAAYxmV,KAAKywW,SAAS14V,MAAM2gT,aAAak9C,EAAS5vB,GAAaQ,GAEnK72F,EAAUzuP,GAAOA,EAAIyuP,QAAQ1wJ,EAAMu5G,EAAS/yL,GAElD,OAAOowV,EAAa5mK,KAAKM,GAAUuqB,GAAQxwN,IAAI6a,GAAQA,EAAK7a,IAAIqmP,KAAW+hF,IAAIvtT,GAAQkzG,IAAS,KAC9FlzG,EAAK9jB,SAAW2lV,GAAc6vB,EAAazwW,KAAK+e,EAAK6hU,KAAiB92T,SAAW2mV,EAAa35N,UAA9F,MACGnyG,KACLzgC,GAAIq8U,IACL,CAED0vB,sBAAsB,EAKnB7rD,EAAIthQ,GAAM,IALS,QACpBggT,EADoB,KAEpBjpQ,EAFoB,OAGpBx5E,EAHoB,QAIpB+yL,GACW,EACX,IAAK0vJ,IAAYjpQ,EAAKn6F,KAAKuqL,MACzB,MAAM,IAAIzvK,MAAM,sCAGlB,MAAM+vO,EAAUzuP,GAAOA,EAAIyuP,QAAQ1wJ,EAAMu5G,EAAS/yL,GAGlD,OADc+jS,EAAKosD,GAAW51W,KAAKywW,SAAS14V,MAAM2gT,aAAak9C,EAAS1tT,EAAK4tT,SAAU5tT,EAAKs+R,UAAYovB,EAASpsD,GAAMosD,GAAW51W,KAAKywW,SAAS14V,MAAM2gT,aAAak9C,EAAS1tT,EAAK4tT,SAAU5tT,EAAKs+R,UAAYovB,IAC/L1N,KAAWhgT,EAAKh3C,MAAMge,SAAS+/K,KAAK3lM,IAAI6a,GAAQA,EAAK7a,IAAIqmP,KACvE,CAEDmlH,oBAAoBruL,EAAO+iI,EAAIt4S,GAC7B,MAAM4oN,EAAQ0vF,EAAKrlS,GAAQnkB,KAAKywW,SAAS14V,MAAMijT,eAAe72S,EAAMqlS,GAAMrlS,GAAQnkB,KAAKywW,SAAS14V,MAAMijT,eAAe72S,GACrH,OAAOnkB,KAAKk1W,iBAAiBzuL,EAAO+iI,EAAIt4S,GAAM+9L,KAAKM,IAAUprL,GAAQA,EAAK9jB,OAAS6wU,GAAcqlB,GAAWpyU,EA5vB5F,KA4vB+G7a,IAAIwwN,IAAQ7qB,KAAK3lM,IAAIysW,GAAWpwB,GAAaowB,GAASzsW,KAAI,CAAClG,EAAOQ,IAAU,CAACugB,EAAKvgB,GAAQR,QAAY2wG,GAAG,MACzO,CAEDkhQ,yBAAyBxuL,EAAO+iI,EAAIthQ,GAClC,MAAM4xK,EAAQ0vF,EAAKrlS,GAAQnkB,KAAKywW,SAAS14V,MAAMijT,eAAe72S,EAAMqlS,GAAMrlS,GAAQnkB,KAAKywW,SAAS14V,MAAMijT,eAAe72S,GACrH,OAAOnkB,KAAKq1W,sBAAsB5uL,EAAO+iI,EAAIthQ,GAAM+mJ,KAAKM,IAAUprL,GAAQA,EAAK9jB,OAASy5N,EAAM31M,GAAM8qL,KAAK3lM,IAAIysW,GAAWA,EAAQzsW,KAAI,CAAClG,EAAOQ,IAAU,CAACugB,EAAKvgB,GAAQR,QAAY2wG,GAAG,MACpL,CAEDiiQ,kBAAkB1J,GAChB,IAAI2J,EAAuBC,EAAuBC,EAAwBC,EAE1E,MAAMj3L,EAA8D,QAAlD82L,EAAwBj2W,KAAKq2W,uBAAuD,IAA1BJ,OAAmC,EAASA,EAAsB92L,SAAS7yK,WAEjJw9U,E7BxqBH,SAA6B7X,EAAY37H,GAAkB,IAAbggK,EAAa,uDAAJ,CAAC,EAC7D,MAAO,IAAKrU,GAAgBhwB,EAAY37H,EAAKr7J,OACxCgnT,GAAgBhwB,EAAY37H,EAAKggK,GAEvC,C6BoqBqBC,CAAoB,GAAAv2W,KAAD,IAAmBA,KAAKswW,IAAKt7L,GAAa,CAAC,EAAGh1K,KAAKwvW,SAAStN,QAAiE,QAAvDgU,EAAwBl2W,KAAKwvW,SAAStvL,mBAAmD,IAA1Bg2L,GAAsG,QAAzDC,EAAyBD,EAAsB/1L,YAA6C,IAA3Bg2L,GAAmH,QAArEC,EAAyBD,EAAuBh3L,GAAY,WAA4C,IAA3Bi3L,OAAtM,EAAmPA,EAAuBlU,UACvd,OAAOsM,GAAuBlC,EAAgBxiB,EAC/C,CAED0sB,gBAAgBlK,GACd,OAAOkC,GAAuBlC,EAAgBtsW,KAAKswW,IAAIr1T,OACxD,GC/vBDxkC,YAAY3W,EAASgF,EAAMwnW,GACzBtuV,MAAMle,EAASgF,EAAMwnW,GAErBppW,OAAOqR,eAAevU,KAAMqvW,GAAkB,CAC5CjsW,MAAO4sW,KAET9sW,OAAOqR,eAAevU,KAAMovW,GAAuB,CACjDhsW,MAAO0sW,KAET5sW,OAAOqR,eAAevU,KAAMmvW,GAAoB,CAC9C/rW,MAAOksW,KAETpsW,OAAOqR,eAAevU,KAAM8uW,GAAS,CACnCpqU,UAAU,EACVthC,MAAO,OAETF,OAAOqR,eAAevU,KAAM+uW,GAAc,CACxCrqU,UAAU,EACVthC,MAAO,OAETF,OAAOqR,eAAevU,KAAMgvW,GAAa,CACvCtqU,UAAU,EACVthC,MAAO,KAETF,OAAOqR,eAAevU,KAAMivW,GAAY,CACtCvqU,UAAU,EACVthC,MAAO,OAETF,OAAOqR,eAAevU,KAAMkvW,GAAoB,CAC9CxqU,UAAU,EACVthC,MAAO,CAAC,IAEVpD,KAAKy2M,SAASm5H,cAAc9vU,GAIvBA,EAAQ+R,OAGX4rN,GAA4Bz9N,KAAMgvW,IAAaA,IAAevxI,GAA4B39N,EAAQ+R,OAAQm9V,IAAaA,IAFvHhvW,KAAK8rU,cAAchsU,EAAQ6hB,OAK7B3hB,KAAKmyW,KAAOnyW,KAAKkyW,aAAalyW,KAAKywW,SAAUzwW,KAAK0wW,iBAClD1wW,KAAKswW,IAAI3vL,IAAM3gL,KAAKkyW,aAAalyW,KAAKywW,SAAUzwW,KAAKmxW,mBAEjDnxW,KAAK2wW,eACP3wW,KAAKy2W,YAAcz2W,KAAKuxW,eAAevxW,KAAK0wW,iBAC5C1wW,KAAKswW,IAAIt5B,WAAah3U,KAAKuxW,eAAevxW,KAAKmxW,oBAGjDnxW,KAAKswW,IAAIj4I,OAASv4N,EAAQu4N,OAE1Br4N,KAAKywW,SAAS1N,iBAAgBn/I,GAAa5jN,KAAK02W,iBAAiB9yJ,KAEjE5jN,KAAKywW,SAASxN,qBAAoBnkL,GAAeuxB,GAAerwM,KAAKywW,SAAS5xL,MAAMu5I,aAAat5I,MAE7F9+K,KAAK4gO,kBACP5gO,KAAKywW,SAAS3nV,SAASV,GAAG,gBAAgB,IAAMq1M,GAA4Bz9N,KAAMovW,IAAuBA,QAEzGpvW,KAAKywW,SAAS3nV,SAASV,GAAG,SAAS7lB,GAAKk7N,GAA4Bz9N,KAAMqvW,IAAkBA,IAAkB9sW,KAE9GvC,KAAKywW,SAAS3nV,SAASV,GAAG,aAAa,IAAMq1M,GAA4Bz9N,KAAMmvW,IAAoBA,SACzFnvW,KAAKwvW,SAASmD,YACxB5rU,GAAEntB,KAAK,6FAML5Z,KAAKywW,SAAS3nV,SAAS+3M,aAEzBpD,GAA4Bz9N,KAAMmvW,IAAoBA,KAEzD,CAMDwH,cAAclgK,EAAU53B,EAAO5pK,EAASwiK,EAAUm/L,GAChDngK,EAAS23H,aACT33H,EAASi5H,mBAAmBknC,GAAc52W,KAAKy2M,SAASk4H,sBACxDl4H,EAASm5H,cAAc5vU,KAAKwvW,UAC5B/4J,EAAShkL,SAAS4sJ,GAAao3B,EAAU53B,EAAO5pK,EAAQkqK,SAAUlqK,EAAQ8pK,cAC1E03B,EAASk5H,U1vBhEN,WAEJzwJ,EAAWC,GAAU,IAFM,WAC5BG,GACsB,EACtB,OAAOL,GAAUC,EAAWC,GAAU,CAAClnK,EAAGwY,KACxC,IAAIomV,EAAyBC,EAAyBC,EAAyBC,EAAyBC,EAAyBC,EAEjI,OAAO53L,EAAW8vE,SAAkE,QAAtDynH,EAA0Bv3L,EAAWY,mBAAqD,IAA5B22L,GAA4G,QAA7DC,EAA0BD,EAAwBh4L,aAA+C,IAA5Bi4L,GAAyG,QAA1DC,EAA0BD,EAAwB7+V,UAA4C,IAA5B8+V,OAAhM,EAA8OA,EAAwB3nH,UAAmE,QAAtD4nH,EAA0B13L,EAAWY,mBAAqD,IAA5B82L,GAA2G,QAA5DC,EAA0BD,EAAwB72L,YAA8C,IAA5B82L,GAAyG,QAA1DC,EAA0BD,EAAwBxmV,UAA4C,IAA5BymV,OAA/L,EAA6OA,EAAwB9nH,SAAW,IAAvwB,GAEH,C0vBwDsB+nH,CAAc1gK,EAAU53B,EAAO5pK,EAAQkqK,WAEtDs3B,EAASn3B,WAAWY,cACtBu2B,EAASn3B,WAAW6/I,W1vB5BnB,WAEJjgJ,EAAWC,GAAU,IAFK,WAC3BG,GACsB,EACtB,OAAOL,GAAUC,EAAWC,GAAU,CAAClnK,EAAGwY,KACxC,IAAI2mV,EAAyBC,EAAyBC,EAAyBC,EAAyBC,EAAyBC,EAEjI,OACEziM,GAAa,CAAC,EAA0D,QAAtDoiM,EAA0B93L,EAAWY,mBAAqD,IAA5Bk3L,GAA2G,QAA5DC,EAA0BD,EAAwBj3L,YAA8C,IAA5Bk3L,GAAyG,QAA1DC,EAA0BD,EAAwB5mV,UAA4C,IAA5B6mV,OAA/L,EAA6OA,EAAwBvoI,MAA8D,QAAtDwoI,EAA0Bj4L,EAAWY,mBAAqD,IAA5Bq3L,GAA4G,QAA7DC,EAA0BD,EAAwB14L,aAA+C,IAA5B24L,GAAyG,QAA1DC,EAA0BD,EAAwBv/V,UAA4C,IAA5Bw/V,OAAhM,EAA8OA,EAAwB1oI,MAAOzvD,EAAW6/I,WAD/vB,GAIH,C0vBkBsCu4C,CAAajhK,EAAU53B,EAAO5pK,EAAQkqK,WAGzEs3B,EAASq5H,YAAYr4J,OAAU32K,EAAWk0K,GAAa,CAAC,E1vBnGrD,WAEJkK,EAAWC,GAAU,IAFU,WAChCG,GACsB,EACtB,OAAOL,GAAUC,EAAWC,GAAU,CAAClnK,EAAGwY,KACxC,IAAIknV,EAAuBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAE3H,OAAOhjM,GAAa,CAAC,EAAwD,QAApD2iM,EAAwBr4L,EAAWY,mBAAmD,IAA1By3L,GAAsG,QAAzDC,EAAyBD,EAAsBx3L,YAA6C,IAA3By3L,GAAsG,QAAxDC,EAAyBD,EAAuBnnV,UAA2C,IAA3BonV,OAAzL,EAAsOA,EAAuBj/H,iBAAwE,QAArDk/H,EAAyBx4L,EAAWY,mBAAoD,IAA3B43L,GAAyG,QAA3DC,EAAyBD,EAAuBj5L,aAA8C,IAA3Bk5L,GAAsG,QAAxDC,EAAyBD,EAAuB9/V,UAA2C,IAA3B+/V,OAA3L,EAAwOA,EAAuBp/H,iBAAxuB,GAEH,C0vB2F8Dq/H,CAAkBxhK,EAAU53B,EAAO5pK,EAAQkqK,UAAWn/K,KAAKwvW,SAAS52H,kBAChI,CAMDs/H,sBACE,OAAOzkI,GAAahW,GAA4Bz9N,KAAMgvW,IAAaA,IAAav4U,MAAK,QAAC,UACpFy2T,GADmF,SAE/EA,CAF+E,IAEnE,yDACnB,CAMO,SAACtpI,EAAW2sJ,GAClB,MAAM4H,EAAUl0L,GAAS2/B,GACnBw0J,EAAS9uK,GAAS6uK,GAClB1hK,QAAiBz2M,KAAK02W,iBAAiByB,EAAS5H,GAQtD,OANK9yI,GAA4Bz9N,KAAM8uW,IAASA,KAAYrxI,GAA4Bz9N,KAAM8uW,IAASA,IAAS,KAAOsJ,IAGrH36I,GAA4Bz9N,KAAM8uW,IAASA,IAAW,CAACsJ,EAAQp4W,KAAK6wW,iBAAiBp6J,GAAU,EAAM,KAAM0hK,GAASrH,eAG/GrzI,GAA4Bz9N,KAAM8uW,IAASA,IAAS,EAC5D,CAEyB,2BAAClrJ,EAAWz5J,EAAQl1C,GAC5C,MAAMwhM,EAAW,IAAIi3H,GAAa9pH,GAC5BnsC,EAAW,IAAIs8E,GAASt9C,QAAgBpG,GAAerwM,KAAKywW,SAAS14V,MAAM4iT,YAAYtpT,IAAI84C,EAAO06J,cAExG7kN,KAAK22W,cAAclgK,EAAUz2M,KAAKyzW,cAAex+V,EAASwiK,GAG1D,MAAM3mK,EAAS,CACb2vB,QAAS,EACT43U,cAAez0J,EACfnsC,WACAg/B,WACAmjB,eAAgB3kN,GAKlB,OAFAwoN,GAA4Bz9N,KAAMgvW,IAAaA,IAAapuW,KAAKkQ,GAE1DA,CACR,CAEDwnW,4BAA4Bp3W,EAAK6pM,GAE/B,IAAIi1J,EAAUviI,GAA4Bz9N,KAAMkvW,IAAoBA,IAAoBhuW,GAexF,OAbI66N,GAAYikI,KAEdA,EAAUviI,GAA4Bz9N,KAAMkvW,IAAoBA,IAAoBhuW,GAAO,IAAI0oB,SAAQ,CAACE,EAASkW,KAC/G+qK,IAAUhhL,MAAK0sL,WACNgnB,GAA4Bz9N,KAAMkvW,IAAoBA,IAAoBhuW,GACjF4oB,EAAQ2sL,EAAR,IACC7uL,OAAMpM,WACAiiN,GAA4Bz9N,KAAMkvW,IAAoBA,IAAoBhuW,GACjF8+B,EAAOxkB,EAAP,GALF,KAUGwkV,CACR,CAEDuY,4BAA4B30J,EAAW3uM,GACrC,GAAIA,EAAS,CAGX,MAAMujW,EAAqB/6I,GAA4Bz9N,KAAMgvW,IAAaA,IAAav4U,MAAK,QAC1FmjM,gBAAgB,SACdz6C,EADc,YAEdJ,IAHwF,SAKtFI,EAASvwJ,GAAG3Z,EAAQkqK,WAAaJ,EAAYnwJ,GAAG3Z,EAAQ8pK,YAL8B,IAO5F,GAAIy5L,EAGF,OAFAA,EAAmB/3U,UACnB+3U,EAAmBH,cAAgBz0J,EAC5B40J,CAEV,CAED,OAAO,IACR,CAE6B,+BAAC50J,GAE7B,IAAK5jN,KAAKy4W,eAAiBz4W,KAAKq2W,gBAC9B,MAAM,IAAIz2V,MAAM,kDAKlB,MAAMuqC,EAASnqD,KAAKy2M,SAASo3H,WAAW,gBAAiB7tU,KAAKy4W,aAAa7pV,GAAGg1L,GAAa,CACzF/7K,OAAQo8L,GACRpf,WAAY7kN,KAAKy4W,oBACTpoK,GAAerwM,KAAKywW,SAAS5xL,MAAMw5I,UAAUhnT,IAAIuyM,KAE3D,GAAIz5J,EAAO06J,WAAW9lJ,QACpB,MAAM,IAAIn/C,MAAM,2DAIlB,MAAO84V,EAAcC,G1vB9HlB,SAA2Bh7L,EAAamB,GAC7C,MAAM8+C,EAAQj/C,GAAAA,MAAc/rI,GAAK+qI,EAAY/uJ,GAAGgkB,EAAE+qI,eAClD,OAAOigD,EAAQ,CAACA,EAAM1rI,SAASvyE,QAAO,CAACoX,EAAM9hB,IACpC6pK,EAAYh+J,GAAG7L,EAAQ6pK,aAAe7pK,EAAU8hB,QACtDj2B,GAAY88N,EAAM1rI,SAASz7D,MAAKxhB,GAAW6pK,EAAYjwJ,IAAI5Z,EAAQ6pK,gBAAiB,MAACh+K,OAAWA,EACpG,C0vByHuC83W,CAAkB54W,KAAKy4W,aAActuT,EAAOtiB,QAC1E5yB,EAAUjV,KAAKy2M,SAASo3H,WAAW,8BAI/Bx9H,GAAerwM,KAAKywW,SAAS14V,MAAM+iT,kBAAkBzpT,IAAI84C,EAAO06J,cAC1E,OACE7kN,KAAKu4W,4BAA4B30J,EAAW3uM,UACtCjV,KAAKs4W,4BAA4BrjW,EAAQia,SAAS,IAAMlvB,KAAK64W,qBAAqBj1J,EAAWz5J,EAAQl1C,IAE9G,CAMqB,uBAAC2uM,EAAW2sJ,GAChC,OACE9yI,GAA4Bz9N,KAAMgvW,IAAaA,IAAav4U,MAAK,QAAC,cAChE4hV,GAD+D,SAE3DA,GAAiBl9K,GAAMk9K,EAAez0J,EAFqB,KAGjE5jN,KAAKu4W,4BAA4B30J,EAAW2sJ,UACtCvwW,KAAKs4W,4BAA4BhvK,GAASsa,IAAY,IAAM5jN,KAAK84W,yBAAyBl1J,IAEnG,CAEc,kBACb,IAAIm1J,EAGJ,QAAI/4W,KAAK6vW,WAIT7vW,KAAKg5W,uBAIJh5W,KAAKy4W,aAAcz4W,KAAKi5W,kBAAuE,QAAlDF,EAAwB/4W,KAAKwvW,SAAS39V,cAA8C,IAA1BknW,GAAoCA,EAAsBlJ,eAAiB7vW,KAAKk5W,gBAAgBl5W,KAAKwvW,SAAS39V,cAAgB7R,KAAKm5W,eAAen5W,KAAKwvW,SAAS/3L,UACjQz3K,KAAKo5W,cAAcp5W,KAAKi5W,kBAChC,CAGoB,sBAACpnW,GACpB7R,KAAKq5W,eAAiBxnW,EAAOynW,iBAC7Bt5W,KAAKyzW,cAAgB5hW,EAAO2kM,aAC5Bx2M,KAAKq2W,gBAAkBxkW,EAAO+nN,eAG9B,MAAMipI,EAAW3/V,OAAOihB,KAAKtS,EAAO8uK,KAC9B44L,EAAO,GAEb,IAAK,IAAI9oV,EAAI,EAAGA,EAAIoyU,EAASxiW,OAAQowB,IAAK,CACxC,MAAM+nL,EAAUqqJ,EAASpyU,GACnB+iE,EAAUtwF,OAAOihB,KAAKtS,EAAO8uK,IAAI63B,IAEvC,IAAK,IAAI7kL,EAAI,EAAGA,EAAI6/D,EAAQnzF,OAAQszB,IAClC4lV,EAAK34W,KAAL,UAAa43M,EAAb,YAAwBhlH,EAAQ7/D,IAEnC,CAID,OAFA3zB,KAAKiyW,WAAWsH,EAAMn5L,GAAWpgL,KAAKy2M,SAAU5kM,EAAO2kM,aAAc3kM,EAAO+nN,eAAez6C,WAEpF,CAACttK,EAAO8rK,YAAa9rK,EAAO6nN,gBACpC,CAGD8/I,qBACM/7I,GAA4Bz9N,KAAMivW,IAAYA,KAAgBjvW,KAAK4gO,mBAIvEnD,GAA4Bz9N,KAAMivW,IAAYA,IAAcjvW,KAAKywW,SAAS14V,MAAMkjT,0BAA0BhsH,KAAKM,IAAUt6L,IACvH,IAAIghW,EAEJ,OACqD,QAAlDA,EAAwBj2W,KAAKq2W,uBAAuD,IAA1BJ,GAAoCA,EAAsBl3L,YAAYnwJ,GAAG3Z,EAAQ8pK,aAAehrE,IAAG,GAAS/zG,KAAKywW,SAAS14V,MAAM4iT,cAAc1rH,KAAK3lM,IAAImuK,IAChN1wI,GAAEzsB,IAAF,0CAAyCrF,EAAQ8pK,YAAYzyK,WAA7D,gBAA+E2I,EAAQu/N,mBAAmBloO,aAC1GtM,KAAKi5W,iBAAmBxhM,EACxBz3K,KAAKq2W,gBAAkBphW,EACvBjV,KAAKswW,IAAI12I,eAAiB3kN,EAE1B,MAAMwkW,EAAez5W,KAAKk4W,sBAU1B,OAPAuB,EAAahiM,SAAWA,EACxBgiM,EAAa7/I,eAAiB3kN,EAE9BjV,KAAK22W,cAAc32W,KAAKy2M,SAAUz2M,KAAKyzW,cAAex+V,EAASwiK,GAE/Dz3K,KAAKyxW,gBAAgBgI,GAAc,IAE5B,CAAP,IAjBJ,KAoBEn8N,YACL,CAEmB,qBAACo8N,GACnB,MAAO/7L,EAAai8C,EAAgB/6C,EAAO+3L,EAAY+C,EAAYC,SAAuBhwV,QAAQC,IAAI,CAACwmL,GAAerwM,KAAKywW,SAAS5xL,MAAMu5I,aAAa,IAAK/nH,GAAerwM,KAAKywW,SAAS14V,MAAM+iT,qBAAsBzqH,GAAerwM,KAAKywW,SAAS53I,OAAOh6C,SAAUwxB,GAAerwM,KAAKywW,SAAS53I,OAAOpxL,cAAe4oK,GAAerwM,KAAKywW,SAAS9vL,IAAIntF,WAAYkmR,EAAc9vV,QAAQE,QAAQ,MAAQumL,GAAerwM,KAAKywW,SAAS14V,MAAM4iT,iBAE5a36T,KAAKyzW,cAAgB50L,EACrB7+K,KAAKq2W,gBAAkBz8I,EACvB55N,KAAKswW,IAAI12I,eAAiBA,EAE1B,MAAMigJ,EAAc,GAAH,OAAMl8L,EAAYzuJ,SAAW,KAA7B,YAAqC0qM,EAAe76C,YAAYzyK,YAC3EmrK,EAAWmiM,IAAkBF,GAAeA,EAAYG,GAAe,IAAI9lH,GAAS/zP,KAAKy2M,SAAUijK,EAAYG,UAAsBxpK,GAAerwM,KAAKywW,SAAS14V,MAAM4iT,gBAqB9K,OAnBA36T,KAAK22W,cAAc32W,KAAKy2M,SAAU53B,EAAO+6C,EAAgBniD,EAAUm/L,GAEnE52W,KAAKiyW,WAAW0H,EAAWnmR,QAAQlqF,IAAIulW,IAAezuL,GAAWpgL,KAAKy2M,SAAU53B,EAAO+6C,EAAez6C,WAEtGn/K,KAAKw5W,oBAGA/7I,GAA4Bz9N,KAAMgvW,IAAaA,IAAa3uW,QAC/Do9N,GAA4Bz9N,KAAMgvW,IAAaA,IAAapuW,KAAK,CAC/D6/B,QAAS,EACTysT,WAAW,EACXz1K,WACAg/B,SAAUz2M,KAAKy2M,SACfmjB,mBAKJniD,EAAS6sJ,aAAatkU,KAAKwvW,SAASsK,iBAAkB,GAC/C,CAACn8L,EAAalG,EACtB,CAED2hM,cAAc3hM,GAYZ,OAXAz3K,KAAKq5W,eAAiB5hM,EAASstJ,SAASpxF,UAAU1+N,QAAQuF,WAC1Dxa,KAAKswW,IAAIlE,cAAgBpsW,KAAKq5W,eAC9Br5W,KAAKswW,IAAI3yL,YAAc39K,KAAKy4W,aAC5Bz4W,KAAKswW,IAAI12I,eAAiB55N,KAAKq2W,gBAG/Br2W,KAAKyxW,gBAAgBzxW,KAAKk4W,uBAAuB,GAGjDl4W,KAAKswW,IAAIr1T,OAASj7C,KAAKg2W,kBAAkBh2W,KAAKmxW,mBAC9CnxW,KAAKw8B,QAAUx8B,KAAKw2W,gBAAgBx2W,KAAK0wW,kBAClC,CACR,CAEDd,mBAEEnyI,GAA4Bz9N,KAAM+uW,IAAcA,IAAgB/uW,KAAK4gO,iBAAmBjqE,aAAY,KAClG05C,GAAerwM,KAAKywW,SAAS53I,OAAOu/D,OAAO/mR,OAAOuW,OAAM,KAAxD,MArXqB,KAsXE,IAC1B,CAEDmoV,qBACMtyI,GAA4Bz9N,KAAM+uW,IAAcA,MAClDn4M,cAAc6mE,GAA4Bz9N,KAAM+uW,IAAcA,KAC9DtxI,GAA4Bz9N,KAAM+uW,IAAcA,IAAgB,KAEnE,CAEDiK,sBACMv7I,GAA4Bz9N,KAAMivW,IAAYA,MAChDxxI,GAA4Bz9N,KAAMivW,IAAYA,IAAYh0N,cAE1DwiF,GAA4Bz9N,KAAMivW,IAAYA,IAAc,KAE/D,CAED8K,eACE/5W,KAAK+vW,qBAEL/vW,KAAKg5W,qBACN,GEpYGnvW,WACF,OAAOomW,GAAajwW,KAAKuuN,MAC1B,CAeGqsH,aACF,OAAOq1B,GAAajwW,KAAK0xW,QAC1B,CAeGz2T,aACF,OAAOg1T,GAAajwW,KAAKw8B,QAC1B,CAMGphB,aACF,OAAO60V,GAAajwW,KAAK82L,QAC1B,CAMGrzK,aACF,OAAOwsV,GAAajwW,KAAKilF,QAC1B,CAMGq0R,uBACF,OAAOt5W,KAAKq5W,cACb,CAMG17L,kBACF,OAAOsyL,GAAajwW,KAAKy4W,aAC1B,CAMG53I,kBACF,OAAO7gO,KAAK8+N,aAAav6J,UAC1B,CAMGy1S,kBACF,MAAO,GAAP,OAAUp4I,GAAV,aAA+BA,GAChC,CAiBG9H,YACF,OAAOm2I,GAAajwW,KAAK2xW,OAC1B,CAyBG36B,iBACF,OAAOi5B,GAAajwW,KAAKy2W,YAC1B,CAiBG91L,UACF,OAAOsvL,GAAajwW,KAAKmyW,KAC1B,CAMG37J,mBACF,OAAOy5J,GAAajwW,KAAKyzW,cAC1B,CAMG/5I,sBACF,OAAOu2I,GAAajwW,KAAKi5W,iBAC1B,CAMGr/I,qBACF,OAAOq2I,GAAajwW,KAAKq2W,gBAC1B,CAMGh+T,SACF,OAAO43T,GAAajwW,KAAKswW,IAC1B,CAMGjvI,YACF,OAAOrhO,KAAKywW,SAAS3nV,SAASu4M,KAC/B,CAMGv8N,WACF,OAAO9E,KAAK27N,KACb,CAiBG/0M,SACF,OAAOqpV,GAAajwW,KAAK8xW,YAC1B,CAMDhwI,SAASC,GACP,OAAOD,GAAS9hO,KAAKy2M,SAAUsrB,EAChC,CAMDE,UAAUC,GACR,OAAOD,GAAUjiO,KAAKy2M,SAAUyrB,EACjC,GGnODzrN,cACEuH,MAD8C,uDAA1B,CAAC,EAAyB,8EAE/C,CAMD6oC,UACE,OAAO7mD,KAAKywW,SAAS5pT,SACtB,CAMDi3G,aAGE,OAFA99J,KAAK+5W,eAEE/5W,KAAKywW,SAAS3yM,YACtB,CAMDs6D,UAAUC,GACRr4N,KAAKswW,IAAIj4I,OAASA,CACnB,CAMS,WAAC30M,EAAStH,GAEZ,IAFkB,OACxBi8M,GACM,uDAAJ,CAAC,EACH,GAAI7nC,GAAS9sK,GAAU,CACrB,MAAMu2V,EAAU5hJ,GAAUr4N,KAAKswW,IAAIj4I,OAEnC,IAAK4hJ,IAAYA,EAAQpN,QACvB,MAAM,IAAIjtV,MAAM,kJAGlB,aAAcq6V,EAAQpN,QAAQ73L,GAAa,CACzClwK,KAAM,SACLsX,EAAM,CACPsH,cACGb,SACN,CAED,OAAOymL,GAAS5lL,EAAQw3B,KAAK+oI,GAAS7nK,EAAKA,OAC5C,GDsDD3F,YAAY3W,GACVke,MAAMle,EAAS,OAAQowW,IADJ,uCAEnB,GAAAlwW,KAAA,GAAkB8C,GAClB,IAAI8mB,SAAQE,IACV9L,MAAMoK,GAAG,SAAS,IAAM0B,EAAQ9pB,OAAhC,KAEH,CAuBY,cAACF,GACZ,OAAO,IAAIqwW,GAAMrwW,GAASqpM,OAC3B,CAMGA,cACF,OAAO,GAAAnpM,KAAP,GACD,CAMD2qC,QACE,OAAO,IAAIwlU,GAAMn7L,GAAa,CAAC,EAAGh1K,KAAKwvW,SAAU,CAC/C39V,OAAQ7R,OAEX,EIlLH,MAWA,GAXoB,CAClB2gL,IAAK,CACHu5L,QAAS,CACP7qS,YAAa,+BACbv5D,OAAQ,CAAC,CAAE7K,KAAM,eAAgBnG,KAAM,UACvCA,KAAM,SAGV6c,MAAO,CAAC,GCkDV,GA1DoB,CAClBA,MAAO,CACLw4V,uBAAwB,CACtBC,oBAAqB,OACrBC,2BAA4B,OAC5BC,cAAe,gBAEjBC,aAAc,CACZC,SAAU,OACVC,gBAAiB,OACjBC,0BAA2B,QAE7BC,iBAAkB,MAClBC,oBAAqB,CACnBC,UAAW,oBAEbC,cAAe,CACbxiM,MAAO,CACLqwG,QAAS,KACToyF,SAAU,KACV5+F,OAAQ,yBAIdx7F,IAAK,CACHq6L,0BAA2B,CACzB3rS,YAAa,gCACbv5D,OAAQ,GACRhR,KAAM,0BAERm2W,oBAAqB,CACnB5rS,YAAa,wCACbv5D,OAAQ,CAAC,CAAE7K,KAAM,gBAAiBnG,KAAM,iBACxCA,KAAM,QAERo2W,OAAQ,CACN7rS,YAAa,yCACbv5D,OAAQ,CAAC,CAAE7K,KAAM,gBAAiBnG,KAAM,iBACxCA,KAAM,QAERq2W,aAAc,CACZ9rS,YAAa,+CACbv5D,OAAQ,CAAC,CAAE7K,KAAM,gBAAiBnG,KAAM,iBACxCA,KAAM,QAERs2W,uBAAwB,CACtB/rS,YAAa,4BACbv5D,OAAQ,GACRhR,KAAM,QAERyjD,OAAQ,CACN8mB,YAAa,mCACbv5D,OAAQ,GACRhR,KAAM,+DCHCu2W,GAAiB,IAAIjmC,GAAenB,IAKpC5uI,GAAQg2K,GC6Ef,SAAUhxT,GACdixT,EACAC,EACA9sK,QAFA,IAAA6sK,IAAAA,EAAAA,QAEA,IAAA7sK,IAAAA,EAAAA,IAIA,IAAI+sK,GAAoB,EAexB,OAb2B,MAAvBD,IAIEp5I,GAAYo5I,GACd9sK,EAAY8sK,EAIZC,EAAmBD,GAIhB,IAAI/9N,IAAW,SAACP,GAIrB,IAAIw+N,ECvJF,SAAsBr4W,GAC1B,OAAOA,aAAiBy/B,OAASs2D,MAAM/1F,EACxC,CDqJas4W,CAAYJ,IAAYA,EAAU7sK,EAAW7rK,MAAQ04U,EAE3DG,EAAM,IAERA,EAAM,GAIR,IAAIvoV,EAAI,EAGR,OAAOu7K,EAAUG,UAAS,WACnB3xD,EAAWjD,SAEdiD,EAAW73I,KAAK8tB,KAEZ,GAAKsoV,EAGPx7W,KAAK4uM,cAAS9tM,EAAW06W,GAGzBv+N,EAAWf,WAGhB,GAAEu/N,EACJ,GACF,CEtKD,MAAME,GAA4B,CAChCz7W,IAAK,SACLkc,KAAM,CAAC,GAEH+hI,GAAU,IAAIyyL,GAAuB+qC,IAQ9BC,GAAkB7jW,GAAiBomI,GAAQ/4I,KAAK2S,GAEvD8jW,ICiBmB5kI,GDjBE,SCiBF,IAAAA,KAAAA,GAAS,QAAG,IAAAxoC,KAAAA,GAAAA,IAC/BwoC,GAAS,IAEXA,GAAS,GAGJ5sL,GAAM4sL,GAAQA,GAAQxoC,KDvBEQ,KAAKmrI,GAAU,ICiB1C,IAAmBnjG,GAAYxoC,GDZrC,MA+BaqtK,GAER/2W,IACH,MAAO8zR,EAAWkjF,IAAgB34P,EAAAA,EAAAA,UAAgBu4P,IAMlD,OAlDAp8N,GAAgBpB,IA+Cbqf,GAAaA,EAASt9J,MAAQ24R,EAAU34R,KAAO67W,EAAav+M,MAGxD,SAAC,WAAD,CAAOhyF,YAAaqtN,KAAe9zR,GAA1C,EAGF,GA3CsB+Q,IACpB,MAAM,aAAEkmW,GAAiBlmW,EA2BzB,OAzBAypI,GAAgBs8N,IAAWx2K,UACzB,IACE,MAAM+yF,QAAe4jF,IAGrB,GAFkB5jF,EAAO8D,UAAU3xC,OAOjC,YAJAqxH,GAAe,CACb17W,IAAK,UACLkc,KAAM,CAAC,IAKXw/V,GAAe,CACb17W,IAAK,SACLkc,KAAM,CAAC,GAOV,CALC,MAAOZ,GACPogW,GAAe,CACb17W,IAAK,QACLkc,KAAM,CAAEZ,MAAOA,IAElB,KAGI,IAAP,EEvCF,GApB2DzW,IACzD,MAAM,SAAEC,EAAF,gBAAYqnM,GAAoBtnM,GAC/B3B,EAAOw2D,IAAYwpD,EAAAA,EAAAA,UAAgB,CACxCljH,IAAK,SACLkc,KAAM,CAAC,IAaT,OAVA0mG,EAAAA,EAAAA,YAAU,KACRupF,IAAkBtiL,MAAMiuM,IAEpBp+J,EADEo+J,EACO,CAAE93N,IAAK,QAASkc,KAAM,CAAE47M,cAG1B,CAAE93N,IAAK,4BAA6Bkc,KAAM,CAAC,GAApD,GALF,GAOC,CAACiwL,KAEG,SAACkE,GAAoB5kM,SAArB,CAA8BvI,MAAOA,EAAO4B,SAAUA,GAA7D,ECOIi3W,GAA+B,KACnC,SAAC,GAAD,CAAQnuN,MAAI,EAAZ,UACE,SAAC,GAAD,WACE,UAAC,GAAD,CAAO/lF,GAAI,CAAErD,IAAK,GAAlB,WACE,SAAC,GAAD,CAAYgoF,MAAM,SAASztF,QAAQ,KAAnC,kDAGA,SAAC,GAAD,CAAO0xF,SAAS,UAAU1xF,QAAQ,WAAlC,wFAQFi9S,GAAqC,KACzC,UAAC,GAAD,CAAQpuN,MAAI,EAAZ,WACE,SAAC,GAAD,KACA,SAAC,GAAD,CAAY7uF,QAAQ,QAApB,sCAIEk9S,GAAsC,KAC1C,SAAC,GAAD,CAAQruN,MAAI,EAAZ,UACE,SAAC,GAAD,CAAY7uF,QAAQ,QAApB,6CAIEm9S,GAA2B,KAC/B,SAAC,GAAD,CAAQtuN,MAAI,EAAZ,UACE,UAAC,GAAD,YACE,SAAC,GAAD,KACA,SAAC,GAAD,CAAY7uF,QAAQ,QAApB,8CAKAo9S,GAAgC,KACpC,SAAC,GAAD,CAAQvuN,MAAI,EAAZ,UACE,UAAC,GAAD,YACE,SAAC,GAAD,KACA,SAAC,GAAD,CAAY7uF,QAAQ,QAApB,qCACA,SAAC,GAAD,CAAYA,QAAQ,QAApB,oGAIA,SAAC,GAAD,CAAYA,QAAQ,QAApB,yGAQAq9S,GAAgC,KACpC,SAAC,GAAD,CAAQxuN,MAAI,EAAZ,UACE,UAAC,GAAD,YACE,SAAC,GAAD,KACA,SAAC,GAAD,CAAY7uF,QAAQ,QAApB,0CACA,SAAC,GAAD,CAAYA,QAAQ,QAApB,kIAQAs9S,GAA6Cx3W,IACjD,MAAM,SAAEC,GAAaD,EAEfuyM,GAAQr0F,EAAAA,EAAAA,UAAQ,KAAM,8BAAGj+G,KAAc,CAACA,IAE9C,OACE,SAAC,GAAD,CAAkBqnM,gBAAiBA,GAAnC,UACE,SAACmE,GAAD,CACE6G,QAAQ,SAAC6kK,GAAD,IACRM,2BAA2B,SAACL,GAAD,IAC3B7kK,MAAOA,KALb,EAWImlK,GAA6C13W,IACjD,MAAM,SAAEC,GAAaD,GACd23W,EAAe5qM,IAAoB1uD,EAAAA,EAAAA,UACxCiwD,GAA0B,kBAGtBspM,GAAyB95P,EAAAA,EAAAA,cAAa+5P,IACrCA,IAELvpM,GAA0B,gBAAiBupM,GAC3C9qM,EAAiB8qM,GAAjB,GACC,IAEG1iJ,GAAUr3G,EAAAA,EAAAA,cAAY,KAC1B,IAAK65P,EAAe,MAAM,IAAI98V,MAAM,6BAEpC,MAAMkJ,GC5HqBuc,ED4HKq3U,GC3H1Bn6N,WAAW,UAAYl9G,EAAIk9G,WAAW,UACrC,IAAIs9E,GAAWx6L,GAEjB,IAAIq8L,GAAar8L,GAJKA,MD6H3B,MAAMixK,ECrHRx2M,KAEA,MAAM6hB,EAAQze,OAAO0b,OAAOgvT,GAAajuT,QACvC,CAACmqB,EAAD,SAAM,MAAEnoB,GAAR,QAAqB,IAAKmoB,KAAQnoB,EAAlC,GACA,CAAC,GAEGg/J,EAAMz9K,OAAOq+D,QAAQqsQ,GAAajuT,QACtC,CAACmqB,EAAD,SAAO7+B,GAAM,IAAE01K,IAAf,QAA2B,IAAK72I,EAAK,CAAC7+B,GAAO01K,EAA7C,GACA,CAAC,GAGH,IACE,OAAOwvL,GAAM/kW,OAAO,IACftL,EACH6hB,QACAg/J,OAcH,CAZC,MAAOnlK,GACP,GAAIA,aAAiBgrM,MAAO,CAC1B,GAAIhrM,EAAM7J,kBAAkBsqN,UAC1B,MAAM,IAAIr8M,MAAJ,+BAAkCpE,EAAM7J,OAAO0zB,MAGvD,MAAM,IAAIzlB,MAAJ,wCAC6BrI,KAAK5Q,UAAU6U,EAAM7J,SAEzD,CAED,MAAM6J,CACP,GDwFaqhW,CAAU,CAAE/zV,WAAUg0V,gBAAgB,IAElD,MAAO,CAAEh0V,WAAUwtL,MAAnB,GACC,CAAComK,IAEEplK,GAAQz0F,EAAAA,EAAAA,cAAY,KAAM,8BAAG79G,KAAc,CAACA,IAElD,OACE,SAAC,GAAD,CAEE8sK,iBAAkB6qM,EAClBziJ,QAASA,EAHX,UAKE,SAACloD,GAAD,CACEqlC,OAAQ+kK,GACRW,aAAcV,GACdW,aAAcV,GACdhlK,MAAOA,EACP97L,MAAOyhW,MATJP,EAFT,EAoBIQ,GAAiDn4W,IACrD,MAAM,SAAEC,GAAaD,GACf,IAAEuxM,GAAQrkC,KACVkrM,GAAuBl6P,EAAAA,EAAAA,UAC3B,IAP4BqzF,SACPx1M,IAAvBw1M,EAAI1vL,GAAG0xM,YAMC8kJ,CAAuB9mK,IAC7B,CAACA,IAGG+mK,GAASx6P,EAAAA,EAAAA,cAAY,KAAM,8BAAG79G,KAAc,CAACA,IAE7Cs4W,GAAsBz6P,EAAAA,EAAAA,cAAY,IrjB7HbyzF,IAC3BjG,GAAeiG,EAAI31B,IAAIk4C,OAAOu/D,UAAUruQ,MAAMquQ,IAAD,CAC3C8D,UAAW,CAAE3xC,OAAQ6tC,EAAO8D,UAAU3xC,YqjB2HMyxH,CAAa1lK,IAAM,CAACA,IAMlE,OAJAinK,GAAa,CACXvB,aAAcsB,IAGTH,GACL,SAACrB,GAAD,CACEzkK,OAAQglK,GACR5rD,QAAS4rD,GACTgB,OAAQA,EACR7hW,MAAOyhW,MAGT,SAAChB,GAAD,GARF,EAYIuB,GAA+Cz4W,IACnD,MAAM,SAAEC,GAAaD,EAIrB,OAFA04W,MAGE,SAAClB,GAAD,WACE,SAACE,GAAD,WACE,SAACS,GAAD,UAAmBl4W,OAHzB,EASIi1N,GAAgC,CACpCriB,SAAU,CAAC,EACXD,UAAW,CAAC,EACZrlC,OAAQ,CAAC,EACTE,OAAQ,CAAC,EACT8lC,eAAgB,GAChBlB,gBAAgB,EAChBS,WAAY,CACVhjC,WAAY,EACZ34B,UAAU,EACVs7E,UAAU,EACV1gF,SAAUxuG,OAAOsvK,SAAW,EAAI,IAI9BrqK,GAAY3uB,IAChB,MAAM,OACJ0zJ,EADI,OAEJE,EACAqlC,YAAY,SAAE/gE,IACZl4H,EACE8+V,EAAoB,CAACt6W,EAA4B/C,IACrD+C,KAAU4gB,EAAAA,GAAAA,aAAY5gB,EAAO/C,GAE/B,GAAiB,IAAby2I,EAAgB,CAClB,GAAI4mO,EAAkBlrM,EAAOD,gBAAiB,IAC5C,MAAO,CACLC,OAAQ,CACND,gBAAiBmB,GAAAA,KAAAA,WAAAA,OAAAA,kBAIvB,GAAIgqM,EAAkBlrM,EAAO3vJ,UAAW,IACtC,MAAO,CACL2vJ,OAAQ,CAAE3vJ,UAAW6wJ,GAAAA,KAAAA,WAAAA,OAAAA,WAG1B,CACD,GAAiB,IAAb58B,EAAgB,CAClB,GAAI4mO,EAAkBprM,EAAOC,gBAAiB,IAC5C,MAAO,CACLD,OAAQ,CACNC,gBAAiBmB,GAAAA,KAAAA,WAAAA,OAAAA,kBAIvB,GAAIgqM,EAAkBprM,EAAOzvJ,UAAW,IACtC,MAAO,CACLyvJ,OAAQ,CAAEzvJ,UAAW6wJ,GAAAA,KAAAA,WAAAA,OAAAA,WAG1B,GAGGif,GAAW0S,MACfzmL,EADe,KAGX,IADJ,cAAE42K,GACC,EACC52K,EAAOi5L,WAAWhjC,YAAc,GAEpC2gB,EAAc,wBAAyB52K,EAAOi5L,WAAWhjC,WAAa,EAAtE,EAaF,GAV2B,KACzB,SAAC2oM,GAAD,WACE,SAAC,GAAD,CACEvjJ,kBAAmBA,GACnBtnC,SAAUA,GACVplJ,SAAUA,OEnMhB,GAnEgC,KAC9B,MAAM,YAAEowU,GAAgB5uN,KAElB6uN,GAAU36P,EAAAA,EAAAA,UACd,IACkB,YAAhB06P,GACE,UAAC,GAAD,CAAOj5S,IAAK,EAAZ,WACE,SAAC,GAAD,CAAYx2D,WAAY,IAAK+wD,QAAQ,KAArC,+CAGA,SAAC,GAAD,CAAYA,QAAQ,QAApB,kDAGA,SAAC,GAAD,CAAYA,QAAQ,QAApB,mHAIA,SAAC,GAAD,CAAYA,QAAQ,QAApB,qIAIA,SAAC,GAAD,CAAYA,QAAQ,QAApB,2KAOF,UAAC,GAAD,CAAOyF,IAAK,EAAZ,WACE,SAAC,GAAD,CAAYx2D,WAAY,IAAK+wD,QAAQ,KAArC,+CAGA,SAAC,GAAD,iEAGA,SAAC,GAAD,CAAYA,QAAQ,QAApB,uEAGA,SAAC,GAAD,CAAYA,QAAQ,QAApB,2KAON,CAAC0+S,IAGH,OACE,SAAC,GAAD,WACE,UAAC,GAAD,CACE51S,GAAI,CACF7Z,OAAQ,QACRshF,eAAgB,SAChB9qE,IAAK,EACLG,SAAU,SALd,UAQG+4S,GACD,SAAC,GAAD,CAAQ57V,UAAWslI,GAAMt9H,GAAG,SAA5B,8BAXN,ECeF,GAvDkB4hI,KCGlB,GAb+B,KAC7B,SAAC,GAAD,CAAQkC,MAAI,EAAZ,UACE,SAAC,GAAD,CACEjpF,SAAS,KACTkD,GAAI,CAAE5Z,QAAS,OAAQs/F,cAAe,SAAU/oF,IAAK,GAFvD,UAIE,SAAC,GAAD,CAAYzF,QAAQ,KAAKoG,UAAU,SAAnC,2CCAAw4S,GAA+B,KACnC,UAAC,GAAD,YACE,SAAC,GAAD,KACA,SAAC,GAAD,CAAY5+S,QAAQ,QAApB,+CAIE6+S,GAAc,KAClB,MAAM,MAAEtiW,GAAUyzI,KAClB,OAAO,SAAC,GAAD,CAAWzzI,MAAOA,GAAzB,EAGIuiW,GAA0C,QAAC,SAAE/4W,GAAH,SAC9C,SAAC8pJ,GAAD,CACEuoD,QAAQ,SAACwmK,GAAD,IACRz3R,SAAS,SAACy3R,GAAD,IACTriW,OAAO,SAACsiW,GAAD,IACPxmK,OAAO,8BAAGtyM,KALkC,EAmBhD,GAVuB,KACrB,SAAC+4W,GAAD,WACE,UAACx3N,GAAD,YACE,SAACX,GAAD,CAAOhiJ,OAAK,EAACgD,SAAS,SAAC,GAAD,OACtB,SAACg/I,GAAD,CAAOtqI,KAAK,QAAQ1U,SAAS,SAAC,GAAD,OAC7B,SAACg/I,GAAD,CAAOtqI,KAAK,IAAI1U,SAAS,SAAC,GAAD,WCpB/B,GAV6B,KAC3B,SAACqgJ,GAAD,WACE,SAAC,GAAD,CAAeiB,YAAa+0N,GAA5B,UACE,SAAC,GAAD,WACE,SAAC,GAAD,UC8BR,IA/BcrmT,EAAAA,GAAAA,GAAY,CACxB9H,QAAS,CACPjH,KAAM,QAER5wC,WAAY,CACV+mW,YAAa,CACX1+S,eAAgB,CACd16D,KAAM,CACJm+D,UAAW,aAIjBk7S,SAAU,CACR3+S,eAAgB,CACd4+S,aAAc,CACZl6O,gBAAiB,eAEnBm6O,cAAe,CACbn6O,gBAAiB,eAEnBo6O,gBAAiB,CACfp6O,gBAAiB,eAEnBq6O,gBAAiB,CACfr6O,gBAAiB,oBCb3B,GAbsB,KAElB,SAACK,EAAD,CAAsBC,aAAW,EAAjC,UACE,SAAC,EAAD,CAAetwH,MAAOA,GAAtB,UACE,UAAC,EAAD,YACE,SAAC,GAAD,KACA,SAAC,GAAD,WCCV,GAZyBsqW,IACnBA,GAAeA,aAAuBn9O,UACxC,mFAAqBp3G,MAAK,IAAkD,IAAjD,OAAEw0V,EAAF,OAAUC,EAAV,OAAkBC,EAAlB,OAA0BC,EAA1B,QAAkCC,GAAc,EACzEJ,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EAAR,GAEH,GCPUhtP,EAAAA,EAAAA,GAAW5vH,SAASksK,eAAe,SAC3Cv/E,QAAO,SAAC,GAAD,KAKZuwR,GAAgBvkW,QAAQC","sources":["../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/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/styled/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@ethersproject/abi/src.ts/_version.ts","../node_modules/@ethersproject/abi/src.ts/fragments.ts","../node_modules/@ethersproject/abi/src.ts/coders/abstract-coder.ts","../node_modules/@ethersproject/abi/src.ts/coders/address.ts","../node_modules/@ethersproject/abi/src.ts/coders/anonymous.ts","../node_modules/@ethersproject/abi/src.ts/coders/array.ts","../node_modules/@ethersproject/abi/src.ts/coders/boolean.ts","../node_modules/@ethersproject/abi/src.ts/coders/bytes.ts","../node_modules/@ethersproject/abi/src.ts/coders/fixed-bytes.ts","../node_modules/@ethersproject/abi/src.ts/coders/null.ts","../node_modules/@ethersproject/abi/src.ts/coders/number.ts","../node_modules/@ethersproject/abi/src.ts/coders/string.ts","../node_modules/@ethersproject/abi/src.ts/coders/tuple.ts","../node_modules/@ethersproject/abi/src.ts/abi-coder.ts","../node_modules/@ethersproject/abi/src.ts/interface.ts","../node_modules/@ethersproject/abstract-provider/src.ts/index.ts","../node_modules/@ethersproject/abstract-provider/src.ts/_version.ts","../node_modules/@ethersproject/abstract-signer/src.ts/index.ts","../node_modules/@ethersproject/abstract-signer/src.ts/_version.ts","../node_modules/@ethersproject/address/src.ts/_version.ts","../node_modules/@ethersproject/address/src.ts/index.ts","../node_modules/@ethersproject/base64/src.ts/browser-base64.ts","../node_modules/@ethersproject/basex/src.ts/index.ts","../node_modules/@ethersproject/bignumber/src.ts/_version.ts","../node_modules/@ethersproject/bignumber/src.ts/bignumber.ts","../node_modules/@ethersproject/bytes/src.ts/_version.ts","../node_modules/@ethersproject/bytes/src.ts/index.ts","../node_modules/@ethersproject/constants/src.ts/bignumbers.ts","../node_modules/@ethersproject/constants/src.ts/hashes.ts","../node_modules/@ethersproject/hash/src.ts/_version.ts","../node_modules/@ethersproject/hash/src.ts/id.ts","../node_modules/@ethersproject/hash/src.ts/message.ts","../node_modules/@ethersproject/hash/src.ts/ens-normalize/decoder.ts","../node_modules/@ethersproject/hash/src.ts/ens-normalize/lib.ts","../node_modules/@ethersproject/hash/src.ts/ens-normalize/include.ts","../node_modules/@ethersproject/hash/src.ts/namehash.ts","../node_modules/@ethersproject/hash/src.ts/typed-data.ts","../node_modules/@ethersproject/wordlists/src.ts/_version.ts","../node_modules/@ethersproject/wordlists/src.ts/wordlist.ts","../node_modules/@ethersproject/wordlists/src.ts/lang-en.ts","../node_modules/@ethersproject/wordlists/src.ts/browser-wordlists.ts","../node_modules/@ethersproject/hdnode/src.ts/index.ts","../node_modules/@ethersproject/hdnode/src.ts/_version.ts","../node_modules/@ethersproject/json-wallets/src.ts/_version.ts","../node_modules/@ethersproject/json-wallets/src.ts/crowdsale.ts","../node_modules/@ethersproject/json-wallets/src.ts/inspect.ts","../node_modules/@ethersproject/json-wallets/src.ts/index.ts","../node_modules/@ethersproject/json-wallets/src.ts/keystore.ts","../node_modules/@ethersproject/json-wallets/src.ts/utils.ts","../node_modules/@ethersproject/keccak256/src.ts/index.ts","../node_modules/@ethersproject/logger/src.ts/index.ts","../node_modules/@ethersproject/logger/src.ts/_version.ts","../node_modules/@ethersproject/pbkdf2/src.ts/browser-pbkdf2.ts","../node_modules/@ethersproject/properties/src.ts/index.ts","../node_modules/@ethersproject/properties/src.ts/_version.ts","../node_modules/@ethersproject/random/src.ts/shuffle.ts","../node_modules/@ethersproject/random/src.ts/_version.ts","../node_modules/@ethersproject/random/src.ts/browser-random.ts","../node_modules/@ethersproject/rlp/src.ts/_version.ts","../node_modules/@ethersproject/rlp/src.ts/index.ts","../node_modules/@ethersproject/sha2/src.ts/_version.ts","../node_modules/@ethersproject/sha2/src.ts/browser-sha2.ts","../node_modules/@ethersproject/sha2/src.ts/types.ts","../node_modules/node_modules/minimalistic-assert/index.js","../node_modules/node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/node_modules/elliptic/lib/elliptic/utils.js","../node_modules/node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/node_modules/inherits/inherits_browser.js","../node_modules/node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/node_modules/elliptic/lib/elliptic/curves.js","../node_modules/node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","../node_modules/node_modules/elliptic/lib/elliptic.js","../node_modules/@ethersproject/signing-key/src.ts/_version.ts","../node_modules/@ethersproject/signing-key/src.ts/index.ts","../node_modules/@ethersproject/solidity/src.ts/_version.ts","../node_modules/@ethersproject/solidity/src.ts/index.ts","../node_modules/@ethersproject/strings/src.ts/bytes32.ts","../node_modules/@ethersproject/strings/src.ts/idna.ts","../node_modules/@ethersproject/strings/src.ts/_version.ts","../node_modules/@ethersproject/strings/src.ts/utf8.ts","../node_modules/@ethersproject/transactions/src.ts/_version.ts","../node_modules/@ethersproject/transactions/src.ts/index.ts","../node_modules/@ethersproject/bignumber/src.ts/fixednumber.ts","../node_modules/@ethersproject/units/src.ts/index.ts","../node_modules/@ethersproject/units/src.ts/_version.ts","../node_modules/@ethersproject/wallet/src.ts/index.ts","../node_modules/@ethersproject/wallet/src.ts/_version.ts","../node_modules/@ethersproject/web/src.ts/browser-geturl.ts","../node_modules/@ethersproject/web/src.ts/index.ts","../node_modules/@ethersproject/web/src.ts/_version.ts","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/ExpandMore.js","../node_modules/@mui/icons-material/Settings.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/utils/esm/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/private-theming/useTheme/ThemeContext.js","../node_modules/@mui/private-theming/useTheme/useTheme.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@mui/system/esm/propsToClassKey.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/display.js","../node_modules/@mui/system/esm/flexbox.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/positions.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/shadows.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/typography.js","../node_modules/@mui/system/esm/getThemeValue.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/capitalize.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/createChainedFunction.js","../node_modules/@mui/utils/esm/debounce.js","../node_modules/@mui/utils/esm/deepmerge.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/utils/esm/ownerDocument.js","../node_modules/@mui/utils/esm/ownerWindow.js","../node_modules/@mui/utils/esm/resolveProps.js","../node_modules/@mui/utils/esm/setRef.js","../node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef.js","../node_modules/@mui/utils/esm/useId.js","../../src/UnexpectedStateError.ts","../../src/index.ts","../../src/mkts.ts","../../src/ComponentGuard.tsx","../../src/ElementGuard.tsx","../../src/ExpectContextState.tsx","../../src/createContext.tsx","../../src/createContextComponentGuard.tsx","../../src/createContextElementGuard.tsx","../../src/createExpectContextState.tsx","../../src/createTaggedStateHook.ts","../../src/createTaggedStateHooks.ts","../../src/useTaggedState.ts","../node_modules/aes-js/index.js","../node_modules/bech32/index.js","../node_modules/bn.js/lib/bn.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/lower-case/src/index.ts","../node_modules/no-case/src/index.ts","../node_modules/upper-case/src/index.ts","../node_modules/constant-case/src/index.ts","../node_modules/ethers/src.ts/utils.ts","../node_modules/eventemitter3/index.js","../node_modules/hash.js/lib/hash.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/utils.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/hybridconfig/dist/index.js","../node_modules/hybridconfig/dist/load.js","../node_modules/hybridconfig/dist/utils/fillFromEnv.js","../node_modules/hybridconfig/dist/utils/formatEnvKeyWithPrefix.js","../node_modules/hybridconfig/dist/utils/loadRemoteConfig.js","../node_modules/hybridconfig/dist/utils/mergeFromEnv.js","../node_modules/inherits/inherits_browser.js","../node_modules/js-sha3/src/sha3.js","../node_modules/minimalistic-assert/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/scrypt-js/scrypt.js","../node_modules/store/dist/store.legacy.js","../node_modules/store/plugins/json2.js","../node_modules/store/plugins/lib/json2.js","../node_modules/store/src/store-engine.js","../node_modules/store/src/util.js","../node_modules/store/storages/all.js","../node_modules/store/storages/cookieStorage.js","../node_modules/store/storages/localStorage.js","../node_modules/store/storages/memoryStorage.js","../node_modules/store/storages/oldFF-globalStorage.js","../node_modules/store/storages/oldIE-userDataStorage.js","../node_modules/store/storages/sessionStorage.js","../node_modules/tslib/tslib.es6.js","../node_modules/@mui/icons-material/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@polkadot/wasm-crypto-wasm/cjs/bytes.js","../node_modules/@mui/material/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@mui/material/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/system/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@mui/system/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/utils/node_modules/@babel/runtime/helpers/esm/extends.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/CssBaseline/CssBaseline.js","../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../node_modules/@mui/private-theming/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@mui/private-theming/ThemeProvider/nested.js","../node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js","../node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js","../node_modules/react-transition-group/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-transition-group/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/Slide/Slide.js","../node_modules/@mui/base/ClickAwayListener/ClickAwayListener.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/SnackbarContent/snackbarContentClasses.js","../node_modules/@mui/material/SnackbarContent/SnackbarContent.js","../node_modules/@mui/material/Snackbar/snackbarClasses.js","../node_modules/@mui/material/Snackbar/Snackbar.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/react-transition-group/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/react-transition-group/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/IconButton/iconButtonClasses.js","../node_modules/@mui/material/IconButton/IconButton.js","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/rxjs/src/internal/util/createErrorClass.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/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/ObjectUnsubscribedError.ts","../node_modules/rxjs/src/internal/Subject.ts","../node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts","../node_modules/rxjs/src/internal/ReplaySubject.ts","../node_modules/observable-hooks/src/helpers.ts","../node_modules/observable-hooks/src/use-subscription.ts","../node_modules/observable-hooks/src/internal/use-subscription-internal.ts","components/appErrors.ts","components/AppErrorsSnackbar.tsx","../node_modules/history/node_modules/@babel/runtime/helpers/esm/extends.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../../packages/react-router-dom/index.tsx","components/ErrorBoundary.tsx","../node_modules/@mui/material/Collapse/collapseClasses.js","../node_modules/@mui/material/Collapse/Collapse.js","../node_modules/@mui/material/Accordion/AccordionContext.js","../node_modules/@mui/material/Accordion/accordionClasses.js","../node_modules/@mui/material/Accordion/Accordion.js","../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js","../node_modules/@mui/material/AccordionDetails/AccordionDetails.js","../node_modules/@mui/system/esm/styled.js","../node_modules/@mui/system/esm/Container/createContainer.js","../node_modules/@mui/material/Container/Container.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","pages/Layout.tsx","pages/ErrorPage.tsx","config.ts","subsystem/config/state.tsx","subsystem/config/ConfigInit.tsx","../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../node_modules/@mui/material/CircularProgress/CircularProgress.js","../node_modules/@mui/material/Alert/alertClasses.js","../node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","../node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","../node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","../node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/Alert/Alert.js","../node_modules/@mui/system/esm/Stack/createStack.js","../node_modules/@mui/system/esm/Stack/Stack.js","../node_modules/@mui/base/Portal/Portal.js","../node_modules/@mui/base/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@mui/base/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/utils/esm/getScrollbarSize.js","../node_modules/@mui/base/ModalUnstyled/ModalManager.js","../node_modules/@mui/base/TrapFocus/TrapFocus.js","../node_modules/@mui/base/ModalUnstyled/modalUnstyledClasses.js","../node_modules/@mui/base/utils/isHostComponent.js","../node_modules/@mui/base/utils/omitEventHandlers.js","../node_modules/@mui/base/utils/mergeSlotProps.js","../node_modules/@mui/base/utils/extractEventHandlers.js","../node_modules/@mui/base/utils/resolveComponentProps.js","../node_modules/@mui/base/utils/useSlotProps.js","../node_modules/@mui/base/utils/appendOwnerState.js","../node_modules/@mui/base/ModalUnstyled/ModalUnstyled.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/Drawer/drawerClasses.js","../node_modules/@mui/material/Drawer/Drawer.js","../node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/FormControl/formControlClasses.js","../node_modules/@mui/material/FormControl/FormControl.js","../node_modules/@mui/material/FormHelperText/formHelperTextClasses.js","../node_modules/@mui/material/FormHelperText/FormHelperText.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/material/Select/Select.js","../node_modules/@mui/material/TextField/textFieldClasses.js","../node_modules/@mui/material/TextField/TextField.js","../node_modules/@mui/material/Button/buttonClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../node_modules/@mui/material/Button/Button.js","../node_modules/@mui/system/esm/createBox.js","../node_modules/@mui/system/esm/Box/Box.js","subsystem/api/state.ts","subsystem/localStorage.ts","textsOnPage.ts","components/ApiConnectionSettingLayer.tsx","../node_modules/@mui/material/Stack/Stack.js","../node_modules/@mui/material/Stepper/stepperClasses.js","../node_modules/@mui/material/Stepper/StepperContext.js","../node_modules/@mui/material/Step/StepContext.js","../node_modules/@mui/material/StepConnector/stepConnectorClasses.js","../node_modules/@mui/material/StepConnector/StepConnector.js","../node_modules/@mui/material/Stepper/Stepper.js","../node_modules/@polkadot/util/object/spread.js","../node_modules/@polkadot/util/is/hex.js","../node_modules/@polkadot/util/hex/stripPrefix.js","../node_modules/@polkadot/util/hex/toBn.js","../node_modules/@polkadot/util/is/bigInt.js","../node_modules/@polkadot/util/is/function.js","../node_modules/@polkadot/util/is/object.js","../node_modules/@polkadot/util/is/helpers.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/types-known/chain/index.js","../node_modules/@polkadot/types-known/spec/centrifuge-chain.js","../node_modules/@polkadot/types-create/util/xcm.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/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/@substrate/ss58-registry/esm/index.js","../node_modules/@polkadot/util/stringify.js","../node_modules/@polkadot/util/hex/toU8a.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/@scure/base/lib/esm/index.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/buffer.js","../node_modules/@polkadot/util/is/u8a.js","../node_modules/@polkadot/x-textencoder/browser.js","../node_modules/@polkadot/x-textencoder/fallback.js","../node_modules/@polkadot/util/string/toU8a.js","../node_modules/@polkadot/util/u8a/toU8a.js","../node_modules/@polkadot/util-crypto/base32/helpers.js","../node_modules/@polkadot/util-crypto/base64/bs64.js","../node_modules/formik/node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/toPath.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/lodash-es/cloneDeep.js","../node_modules/formik/src/utils.ts","../node_modules/formik/src/FormikContext.tsx","../node_modules/formik/src/Formik.tsx","../node_modules/formik/src/Form.tsx","../node_modules/formik/src/FieldArray.tsx","../node_modules/formik/src/ErrorMessage.tsx","../node_modules/formik/src/FastField.tsx","../node_modules/rxjs/src/internal/util/lift.ts","../node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts","../node_modules/rxjs/src/internal/operators/scanInternals.ts","../node_modules/@mui/material/Box/Box.js","lib/ui/Paper.tsx","lib/ui/Section.tsx","../node_modules/@polkadot/util/u8a/eq.js","../node_modules/@polkadot/util/u8a/concat.js","../node_modules/@polkadot/util-crypto/base58/bs58.js","../node_modules/@noble/hashes/esm/_assert.js","../node_modules/@noble/hashes/esm/utils.js","../node_modules/@noble/hashes/esm/cryptoBrowser.js","../node_modules/@noble/hashes/esm/_blake2.js","../node_modules/@noble/hashes/esm/_u64.js","../node_modules/@noble/hashes/esm/blake2b.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","../node_modules/@polkadot/x-textdecoder/browser.js","../node_modules/@polkadot/x-textdecoder/fallback.js","../node_modules/@polkadot/util/u8a/toString.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@polkadot/wasm-bridge/wbg.js","../node_modules/@polkadot/x-randomvalues/browser.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-bridge/init.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/@polkadot/util-crypto/address/sshash.js","../node_modules/@polkadot/util-crypto/address/checksum.js","../node_modules/@polkadot/util-crypto/address/defaults.js","../node_modules/@polkadot/util-crypto/address/decode.js","../node_modules/@polkadot/util-crypto/address/encode.js","../node_modules/@polkadot/extension-dapp/util.js","../node_modules/@polkadot/extension-dapp/bundle.js","lib/wallet/substrate/provider.ts","lib/wallet/substrate/connect.tsx","../node_modules/rxjs/src/internal/util/isArrayLike.ts","../node_modules/rxjs/src/internal/util/isPromise.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/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/operators/switchMap.ts","../node_modules/rxjs/src/internal/operators/catchError.ts","../node_modules/rxjs/src/internal/util/EmptyError.ts","../node_modules/rxjs/src/internal/firstValueFrom.ts","subsystem/humanodePeerApi/wrappers.ts","subsystem/requirements/state.tsx","subsystem/tokenClaims/state.tsx","subsystem/tokenClaims/TokenClaimsInit.tsx","../node_modules/@mui/material/Step/stepClasses.js","../node_modules/@mui/material/Step/Step.js","lib/ui/Connector.tsx","../node_modules/@mui/material/internal/svg-icons/CheckCircle.js","../node_modules/@mui/material/internal/svg-icons/Warning.js","../node_modules/@mui/material/StepIcon/stepIconClasses.js","../node_modules/@mui/material/StepIcon/StepIcon.js","../node_modules/@mui/material/StepLabel/stepLabelClasses.js","../node_modules/@mui/material/StepLabel/StepLabel.js","../node_modules/@mui/material/StepContent/stepContentClasses.js","../node_modules/@mui/material/StepContent/StepContent.js","../node_modules/@mui/material/styles/cssUtils.js","../node_modules/@mui/material/Skeleton/skeletonClasses.js","../node_modules/@mui/material/Skeleton/Skeleton.js","../node_modules/@polkadot/util/is/boolean.js","../node_modules/@polkadot/util/format/formatDecimal.js","../node_modules/@polkadot/util/format/si.js","../node_modules/@polkadot/util/format/formatBalance.js","subsystem/utils/display.ts","components/TokenClaims.tsx","components/ClaimStep.tsx","components/CompleteStep.tsx","../node_modules/@mui/utils/esm/scrollLeft.js","../node_modules/@mui/material/internal/animate.js","../node_modules/@mui/material/Tabs/ScrollbarSize.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js","../node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","../node_modules/@mui/material/TabScrollButton/TabScrollButton.js","../node_modules/@mui/material/Tabs/tabsClasses.js","../node_modules/@mui/material/Tabs/Tabs.js","../node_modules/@mui/material/Tab/tabClasses.js","../node_modules/@mui/material/Tab/Tab.js","lib/wallet/ethereum/hooks/useEthereumAddresses.tsx","lib/wallet/ethereum/hooks/useRequiredNetwork.tsx","../node_modules/@ethersproject/providers/src.ts/_version.ts","../node_modules/@ethersproject/networks/src.ts/_version.ts","../node_modules/@ethersproject/networks/src.ts/index.ts","../node_modules/@ethersproject/constants/src.ts/addresses.ts","../node_modules/@ethersproject/providers/src.ts/formatter.ts","../node_modules/@ethersproject/providers/src.ts/base-provider.ts","../node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts","../node_modules/@ethersproject/providers/src.ts/web3-provider.ts","lib/wallet/ethereum/provider.ts","lib/wallet/ethereum/connect.tsx","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/getTextDecoration.js","../node_modules/@mui/material/Link/Link.js","subsystem/eip712.ts","components/Eip712ManualSignTab.tsx","lib/ui/FieldViewOnly.tsx","components/Eip712Web3WalletSignTab.tsx","subsystem/eip191.ts","components/Eip191ManualSignTab.tsx","components/EthereumStep.tsx","../node_modules/@mui/material/Divider/dividerClasses.js","../node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../node_modules/@mui/material/MenuItem/menuItemClasses.js","../node_modules/@mui/material/MenuItem/MenuItem.js","components/SubstrateStep.tsx","lib/ui/DashedBordered.tsx","lib/ui/TabComponent.tsx","components/ClaimingEventsView.tsx","components/TransactionProcessingStep.tsx","components/Steps.tsx","components/Form.tsx","../node_modules/rxjs/src/internal/operators/scan.ts","../node_modules/rxjs/src/internal/operators/takeWhile.ts","hooks/useSetupDefaultConnectionUrl.tsx","subsystem/api/ApiInit.tsx","../node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js","../node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js","../node_modules/@polkadot/util/format/formatDate.js","../node_modules/@polkadot/util/is/bn.js","../node_modules/@polkadot/util/logger.js","../node_modules/@polkadot/util/is/undefined.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/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/x-fetch/browser.js","../node_modules/@polkadot/rpc-provider/http/index.js","../node_modules/@polkadot/api/packageInfo.js","../node_modules/@polkadot/api/base/find.js","../node_modules/rxjs/src/internal/util/isScheduler.ts","../node_modules/rxjs/src/internal/util/args.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/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/typeToConstructor.js","../node_modules/@polkadot/types-codec/utils/mapToTypeMap.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/types-codec/utils/decodeU8a.js","../node_modules/@polkadot/types-codec/native/Struct.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/bn/toHex.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/types-codec/base/Int.js","../node_modules/@polkadot/util/is/codec.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/@noble/hashes/esm/sha3.js","../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/secp256k1/lib/esm/index.js","../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-codec/primitive/U32.js","../node_modules/@polkadot/types/generic/AccountIndex.js","../node_modules/@polkadot/types/ethereum/LookupSource.js","../node_modules/@polkadot/types/generic/AccountId.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/@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/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/primitive/StorageKey.js","../node_modules/@polkadot/types/interfaces/metadata/runtime.js","../node_modules/@polkadot/types/interfaces/metadata/v11.js","../node_modules/@polkadot/types/interfaces/metadata/hashers.js","../node_modules/@polkadot/types/interfaces/scaleInfo/v1.js","../node_modules/@polkadot/types/interfaces/metadata/v14.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/v12.js","../node_modules/@polkadot/types/interfaces/metadata/v13.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/assets/definitions.js","../node_modules/@polkadot/types/interfaces/authorship/definitions.js","../node_modules/@polkadot/types/interfaces/aura/definitions.js","../node_modules/@polkadot/types/interfaces/aura/runtime.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/definitions.js","../node_modules/@polkadot/types/interfaces/beefy/rpc.js","../node_modules/@polkadot/types/interfaces/beefy/runtime.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/definitions.js","../node_modules/@polkadot/types/interfaces/contracts/rpc.js","../node_modules/@polkadot/types/interfaces/contracts/runtime.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/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/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/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/interfaces/xcm/definitions.js","../node_modules/@polkadot/types/interfaces/xcm/v0.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/definitions.js","../node_modules/@polkadot/types/interfaces/eth/rpc.js","../node_modules/@polkadot/types/interfaces/eth/runtime.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/definitions.js","../node_modules/@polkadot/types/interfaces/payment/rpc.js","../node_modules/@polkadot/types/interfaces/payment/runtime.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/errors/index.js","../node_modules/@polkadot/types/metadata/decorate/events/index.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/constants/index.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/toLatest.js","../node_modules/@polkadot/types/metadata/MagicNumber.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/MetadataVersioned.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/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/util/createObject.ts","../node_modules/rxjs/src/internal/observable/combineLatest.ts","../node_modules/rxjs/src/internal/operators/tap.ts","../node_modules/rxjs/src/internal/operators/toArray.ts","../node_modules/rxjs/src/internal/operators/reduce.ts","../node_modules/@polkadot/util/memoize.js","../node_modules/rxjs/src/internal/operators/distinctUntilChanged.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/AsyncScheduler.ts","../node_modules/rxjs/src/internal/scheduler/asap.ts","../node_modules/rxjs/src/internal/scheduler/AsapScheduler.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/accounts/idToIndex.js","../node_modules/@polkadot/api-derive/util/first.js","../node_modules/@polkadot/api-derive/accounts/identity.js","../node_modules/@polkadot/api-derive/accounts/indexToId.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/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/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/type/HeaderExtended.js","../node_modules/@polkadot/api-derive/chain/getHeader.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/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/api-derive/democracy/dispatchQueue.js","../node_modules/@polkadot/util/string/toHex.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/util/bn/sqrt.js","../node_modules/@polkadot/api-derive/democracy/util.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/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/electedInfo.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/util/lazy.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/filter.ts","../node_modules/rxjs/src/internal/operators/take.ts","../node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts","../node_modules/rxjs/src/internal/operators/throwIfEmpty.ts","../node_modules/rxjs/src/internal/operators/first.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/rxjs/src/internal/operators/mapTo.ts","../node_modules/@polkadot/api/submittable/createSubmittable.js","../node_modules/@polkadot/util/object/clear.js","../node_modules/@polkadot/api/util/augmentObject.js","../node_modules/@polkadot/api/util/decorate.js","../node_modules/@polkadot/api/util/validate.js","../node_modules/@polkadot/api/base/Decorate.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/rx/decorateMethod.js","../node_modules/@polkadot/api/rx/Api.js","../node_modules/@polkadot/api/base/index.js","../node_modules/@polkadot/api/base/Events.js","../node_modules/@polkadot/types/metadata/decorate/index.js","interfaces/generated/authorExt/definitions.ts","interfaces/generated/bioauth/definitions.ts","../node_modules/rxjs/src/internal/scheduler/async.ts","../node_modules/rxjs/src/internal/observable/timer.ts","../node_modules/rxjs/src/internal/util/isDate.ts","subsystem/humanodePeerApi/rpcControllers/useSyncState.tsx","../node_modules/rxjs/src/internal/observable/interval.ts","subsystem/requirements/RequirementsInit.tsx","pages/FormPage.tsx","subsystem/humanodePeerApi/api.ts","pages/GreetingsPage.tsx","../node_modules/@mui/system/esm/Container/Container.js","pages/NotFoundPage.tsx","routes/Root.tsx","routes/Entrypoint.tsx","theme.ts","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["/*\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 // Using Node instead of HTMLElement since container may be a ShadowRoot\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 if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\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.insertionPoint = options.insertionPoint;\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|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.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 && 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 {object}\n * @return {object}\n */\nexport var assign = Object.assign\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} search\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, assign} 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 | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} 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 {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\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\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\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, KEYFRAMES} 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 KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\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, indexof} 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 40:\n\t\t\t\tif (previous != 108 && characters.charCodeAt(length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\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, 0, 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 = length = 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, slice, 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}; // based on https://github.com/thysultan/stylis.js/blob/e6843c373ebcbbfade25ebcc23f540ed8508da0a/src/Tokenizer.js#L239-L244\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\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] += identifierWithPointTracking(position - 1, points, index);\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 || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\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 = {};\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 insertionPoint: options.insertionPoint\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.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\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","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import * as React from 'react';\nimport { createContext, useContext, forwardRef, createElement, Fragment } 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-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = {}.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);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\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({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\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\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : function useInsertionEffect(create) {\n create();\n};\nfunction useInsertionEffectMaybe(create) {\n\n useInsertionEffect(create);\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; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectMaybe(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\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 WrappedComponent = 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, useContext(ThemeContext));\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 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 return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, useTheme as a, ThemeProvider as b, createEmotionProps as c, withTheme as d, hasOwnProperty as h, useInsertionEffectMaybe as u, withEmotionCache as w };\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","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 = /(var|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\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\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(noComponentSelectorMessage);\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(noComponentSelectorMessage);\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","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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : function useInsertionEffect(create) {\n create();\n};\nfunction useInsertionEffectMaybe(create) {\n\n useInsertionEffect(create);\n}\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\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectMaybe(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\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 registerStyles = function registerStyles(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};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\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, registerStyles };\n","export const version = \"abi/5.7.0\";\n","\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport interface JsonFragmentType {\n readonly name?: string;\n readonly indexed?: boolean;\n readonly type?: string;\n readonly internalType?: any; // @TODO: in v6 reduce type\n readonly components?: ReadonlyArray;\n}\n\nexport interface JsonFragment {\n readonly name?: string;\n readonly type?: string;\n\n readonly anonymous?: boolean;\n\n readonly payable?: boolean;\n readonly constant?: boolean;\n readonly stateMutability?: string;\n\n readonly inputs?: ReadonlyArray;\n readonly outputs?: ReadonlyArray;\n\n readonly gas?: string;\n};\n\nconst _constructorGuard = { };\n\n// AST Node parser state\ntype ParseState = {\n allowArray?: boolean,\n allowName?: boolean,\n allowParams?: boolean,\n allowType?: boolean,\n readArray?: boolean,\n};\n\n// AST Node\ntype ParseNode = {\n parent?: any,\n type?: string,\n name?: string,\n state?: ParseState,\n indexed?: boolean,\n components?: Array\n};\n\nlet ModifiersBytes: { [ name: string ]: boolean } = { calldata: true, memory: true, storage: true };\nlet ModifiersNest: { [ name: string ]: boolean } = { calldata: true, memory: true };\nfunction checkModifier(type: string, name: string): boolean {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) { return true; }\n } else if (type === \"address\") {\n if (name === \"payable\") { return true; }\n } else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) { return true; }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param: string, allowIndexed: boolean): ParseNode {\n\n let originalParam = param;\n function throwError(i: number) {\n logger.throwArgumentError(`unexpected character at position ${ i }`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n\n function newNode(parent: ParseNode): ParseNode {\n let node: ParseNode = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) { node.indexed = false; }\n return node\n }\n\n let parent: ParseNode = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n } else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [ newNode(node) ];\n node = node.components[0];\n break;\n\n case \")\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let child = node;\n node = node.parent;\n if (!node) { throwError(i); }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n\n case \",\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let sibling: ParseNode = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n\n // Hit a space...\n case \" \":\n\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n if (node.indexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n } else {\n node.state.allowName = false;\n }\n }\n }\n\n break;\n\n case \"[\":\n if (!node.state.allowArray) { throwError(i); }\n\n node.type += c;\n\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n\n case \"]\":\n if (!node.state.readArray) { throwError(i); }\n\n node.type += c;\n\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n } else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n } else if (node.state.readArray) {\n node.type += c;\n } else {\n throwError(i);\n }\n }\n }\n\n if (node.parent) { logger.throwArgumentError(\"unexpected eof\", \"param\", param); }\n\n delete parent.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(originalParam.length - 7); }\n if (node.indexed) { throwError(originalParam.length - 7); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n\n parent.type = verifyType(parent.type);\n\n return parent;\n}\n\nfunction populate(object: any, params: any) {\n for (let key in params) { defineReadOnly(object, key, params[key]); }\n}\n\nexport const FormatTypes: { [ name: string ]: string } = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n\n // JSON-format a la Solidity\n json: \"json\"\n});\n\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\n\nexport class ParamType {\n\n // The local name of the parameter (of null if unbound)\n readonly name: string;\n\n // The fully qualified type (e.g. \"address\", \"tuple(address)\", \"uint256[3][]\"\n readonly type: string;\n\n // The base type (e.g. \"address\", \"tuple\", \"array\")\n readonly baseType: string;\n\n // Indexable Paramters ONLY (otherwise null)\n readonly indexed: boolean;\n\n // Tuples ONLY: (otherwise null)\n // - sub-components\n readonly components: Array;\n\n // Arrays ONLY: (otherwise null)\n // - length of the array (-1 for dynamic length)\n // - child type\n readonly arrayLength: number;\n readonly arrayChildren: ParamType;\n\n readonly _isParamType: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) { logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n }); }\n populate(this, params);\n\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n } else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\": this.type)\n });\n }\n\n this._isParamType = true;\n\n Object.freeze(this);\n }\n\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n let result: any = {\n type: ((this.baseType === \"tuple\") ? \"tuple\": this.type),\n name: (this.name || undefined)\n };\n if (typeof(this.indexed) === \"boolean\") { result.indexed = this.indexed; }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n\n let result = \"\";\n\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\": String(this.arrayLength)) + \"]\";\n } else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map(\n (comp) => comp.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \")\";\n } else {\n result += this.type;\n }\n }\n\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) { result += \" indexed\"; }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n\n return result;\n }\n\n static from(value: string | JsonFragmentType | ParamType, allowIndexed?: boolean): ParamType {\n if (typeof(value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n\n static fromObject(value: JsonFragmentType | ParamType): ParamType {\n if (ParamType.isParamType(value)) { return value; }\n\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null: !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject): null)\n });\n }\n\n static fromString(value: string, allowIndexed?: boolean): ParamType {\n function ParamTypify(node: ParseNode): ParamType {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n\n static isParamType(value: any): value is ParamType {\n return !!(value != null && value._isParamType);\n }\n};\n\nfunction parseParams(value: string, allowIndex: boolean): Array {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\n\ntype TypeCheck = { -readonly [ K in keyof T ]: T[K] };\n\ninterface _Fragment {\n readonly type: string;\n readonly name: string;\n readonly inputs: ReadonlyArray;\n}\n\nexport abstract class Fragment {\n\n readonly type: string;\n readonly name: string;\n readonly inputs: Array;\n\n readonly _isFragment: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n\n this._isFragment = true;\n\n Object.freeze(this);\n }\n\n abstract format(format?: string): string;\n\n static from(value: Fragment | JsonFragment | string): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n if (typeof(value) === \"string\") {\n return Fragment.fromString(value);\n }\n\n return Fragment.fromObject(value);\n }\n\n static fromObject(value: Fragment | JsonFragment): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n\n static fromString(value: string): Fragment {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n } else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n } else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n } else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n\n static isFragment(value: any): value is Fragment {\n return !!(value && value._isFragment);\n }\n}\n\ninterface _EventFragment extends _Fragment {\n readonly anonymous: boolean;\n}\n\nexport class EventFragment extends Fragment {\n readonly anonymous: boolean;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: EventFragment | JsonFragment | string): EventFragment {\n if (typeof(value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n\n static fromObject(value: JsonFragment | EventFragment): EventFragment {\n if (EventFragment.isEventFragment(value)) { return value; }\n\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n\n const params: TypeCheck<_EventFragment> = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n\n return new EventFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): EventFragment {\n\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch(modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n\n static isEventFragment(value: any): value is EventFragment {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\n\nfunction parseGas(value: string, params: any): string {\n params.gas = null;\n\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n\n return value;\n}\n\nfunction parseModifiers(value: string, params: any): void {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\n\ntype StateInputValue = {\n constant?: boolean;\n payable?: boolean;\n stateMutability?: string;\n type?: string;\n};\n\ntype StateOutputValue = {\n constant: boolean;\n payable: boolean;\n stateMutability: string;\n};\n\nfunction verifyState(value: StateInputValue): StateOutputValue {\n let result: any = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n } else if (value.payable != null) {\n result.payable = !!value.payable;\n\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n result.constant = !!value.constant;\n\n if (result.constant) {\n result.stateMutability = \"view\";\n } else {\n result.stateMutability = (result.payable ? \"payable\": \"nonpayable\");\n }\n\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n\n } else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\": \"payable\");\n\n } else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n return result;\n}\n\ninterface _ConstructorFragment extends _Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n}\n\nexport class ConstructorFragment extends Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability: undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n\n let result = \"constructor(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n\n return result.trim();\n }\n\n static from(value: ConstructorFragment | JsonFragment | string): ConstructorFragment {\n if (typeof(value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n\n static fromObject(value: ConstructorFragment | JsonFragment): ConstructorFragment {\n if (ConstructorFragment.isConstructorFragment(value)) { return value; }\n\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n\n const params: TypeCheck<_ConstructorFragment> = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new ConstructorFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): ConstructorFragment {\n let params: any = { type: \"constructor\" };\n\n value = parseGas(value, params);\n\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n\n params.inputs = parseParams(parens[2].trim(), false);\n\n parseModifiers(parens[3].trim(), params);\n\n return ConstructorFragment.fromObject(params);\n }\n\n static isConstructorFragment(value: any): value is ConstructorFragment {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\n\ninterface _FunctionFragment extends _ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n}\n\nexport class FunctionFragment extends ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability: undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n } else if (this.constant) {\n result += \"view \";\n }\n\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map(\n (output) => output.format(format)\n ).join(\", \") + \") \";\n }\n\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: FunctionFragment | JsonFragment | string): FunctionFragment {\n if (typeof(value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n\n static fromObject(value: FunctionFragment | JsonFragment): FunctionFragment {\n if (FunctionFragment.isFunctionFragment(value)) { return value; }\n\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n\n let state = verifyState(value);\n\n const params: TypeCheck<_FunctionFragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject): [ ]),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new FunctionFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): FunctionFragment {\n let params: any = { type: \"function\" };\n value = parseGas(value, params);\n\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n parseModifiers(parens[3].trim(), params);\n\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n } else {\n params.outputs = [ ];\n }\n\n return FunctionFragment.fromObject(params);\n }\n\n static isFunctionFragment(value: any): value is FunctionFragment {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n\n//export class StructFragment extends Fragment {\n//}\n\nfunction checkForbidden(fragment: ErrorFragment): ErrorFragment {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${ sig } error`, \"fragment\", fragment);\n }\n return fragment;\n}\n\nexport class ErrorFragment extends Fragment {\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n return result.trim();\n }\n\n static from(value: ErrorFragment | JsonFragment | string): ErrorFragment {\n if (typeof(value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n\n static fromObject(value: ErrorFragment | JsonFragment): ErrorFragment {\n if (ErrorFragment.isErrorFragment(value)) { return value; }\n\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n\n const params: TypeCheck<_Fragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): [])\n };\n\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n\n static fromString(value: string): ErrorFragment {\n let params: any = { type: \"error\" };\n\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n\n static isErrorFragment(value: any): value is ErrorFragment {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\n\nfunction verifyType(type: string): string {\n\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n } else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n\n // @TODO: more verification\n\n return type;\n}\n\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value: string): string {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${ value }\"`, \"value\", value);\n }\n return value;\n}\n\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\n\nfunction splitNesting(value: string): Array {\n value = value.trim();\n\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n } else {\n accum += c;\n if (c === \"(\") {\n depth++;\n } else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) { result.push(accum); }\n\n return result;\n}\n\n","\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nexport interface Result extends ReadonlyArray {\n readonly [key: string]: any;\n}\n\nexport function checkResultErrors(result: Result): Array<{ path: Array, error: Error }> {\n // Find the first error (if any)\n const errors: Array<{ path: Array, error: Error }> = [ ];\n\n const checkErrors = function(path: Array, object: any): void {\n if (!Array.isArray(object)) { return; }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n\n try {\n checkErrors(childPath, object[key]);\n } catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n }\n checkErrors([ ], result);\n\n return errors;\n\n}\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport abstract class Coder {\n\n // The coder name:\n // - address, uint256, tuple, array, etc.\n readonly name: string;\n\n // The fully expanded type, including composite types:\n // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.\n readonly type: string;\n\n // The localName bound in the signature, in this example it is \"baz\":\n // - tuple(address foo, uint bar) baz\n readonly localName: string;\n\n // Whether this type is dynamic:\n // - Dynamic: bytes, string, address[], tuple(boolean[]), etc.\n // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8)\n readonly dynamic: boolean;\n\n constructor(name: string, type: string, localName: string, dynamic: boolean) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n\n _throwError(message: string, value: any): void {\n logger.throwArgumentError(message, this.localName, value);\n }\n\n abstract encode(writer: Writer, value: any): number;\n abstract decode(reader: Reader): any;\n\n abstract defaultValue(): any;\n}\n\nexport class Writer {\n readonly wordSize: number;\n\n _data: Array;\n _dataLength: number;\n _padding: Uint8Array;\n\n constructor(wordSize?: number) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [ ];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n\n get data(): string {\n return hexConcat(this._data);\n }\n get length(): number { return this._dataLength; }\n\n _writeData(data: Uint8Array): number {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n\n appendWriter(writer: Writer): number {\n return this._writeData(concat(writer._data));\n }\n\n // Arrayish items; padded on the right to wordSize\n writeBytes(value: BytesLike): number {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([ bytes, this._padding.slice(paddingOffset) ])\n }\n return this._writeData(bytes);\n }\n\n _getValue(value: BigNumberish): Uint8Array {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([ this._padding.slice(bytes.length % this.wordSize), bytes ]);\n }\n return bytes;\n }\n\n // BigNumberish items; padded on the left to wordSize\n writeValue(value: BigNumberish): number {\n return this._writeData(this._getValue(value));\n }\n\n writeUpdatableValue(): (value: BigNumberish) => void {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value: BigNumberish) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\n\nexport class Reader {\n readonly wordSize: number;\n readonly allowLoose: boolean;\n\n readonly _data: Uint8Array;\n readonly _coerceFunc: CoerceFunc;\n\n _offset: number;\n\n constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n\n this._offset = 0;\n }\n\n get data(): string { return hexlify(this._data); }\n get consumed(): number { return this._offset; }\n\n // The default Coerce function\n static coerce(name: string, value: any): any {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) { value = value.toNumber(); }\n return value;\n }\n\n coerce(name: string, value: any): any {\n if (this._coerceFunc) { return this._coerceFunc(name, value); }\n return Reader.coerce(name, value);\n }\n\n _peekBytes(offset: number, length: number, loose?: boolean): Uint8Array {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n } else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength)\n }\n\n subReader(offset: number): Reader {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n\n readBytes(length: number, loose?: boolean): Uint8Array {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n\n readValue(): BigNumber {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class AddressCoder extends Coder {\n\n constructor(localName: string) {\n super(\"address\", \"address\", localName, false);\n }\n\n defaultValue(): string {\n return \"0x0000000000000000000000000000000000000000\";\n }\n\n encode(writer: Writer, value: string): number {\n try {\n value = getAddress(value)\n } catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n\n decode(reader: Reader): any {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n\n","\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n private coder: Coder;\n\n constructor(coder: Coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n\n defaultValue(): any {\n return this.coder.defaultValue();\n }\n\n encode(writer: Writer, value: any): number {\n return this.coder.encode(writer, value);\n }\n\n decode(reader: Reader): any {\n return this.coder.decode(reader);\n }\n}\n","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\n\nexport function pack(writer: Writer, coders: ReadonlyArray, values: Array | { [ name: string ]: any }): number {\n let arrayValues: Array = null;\n\n if (Array.isArray(values)) {\n arrayValues = values;\n\n } else if (values && typeof(values) === \"object\") {\n let unique: { [ name: string ]: boolean } = { };\n\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n unique[name] = true;\n\n return values[name];\n });\n\n } else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n\n let updateFuncs: Array<(baseOffset: number) => void> = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset: number) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n\n } else {\n coder.encode(staticWriter, value);\n }\n });\n\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\n\nexport function unpack(reader: Reader, coders: Array): Result {\n let values: any = [];\n\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n\n coders.forEach((coder) => {\n let value: any = null;\n\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n\n } else {\n try {\n value = coder.decode(reader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n\n if (value != undefined) {\n values.push(value);\n }\n });\n\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n const value = values[index];\n\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n } else {\n values[name] = value;\n }\n });\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n\n return Object.freeze(values);\n}\n\n\nexport class ArrayCoder extends Coder {\n readonly coder: Coder;\n readonly length: number;\n\n constructor(coder: Coder, length: number, localName: string) {\n const type = (coder.type + \"[\" + (length >= 0 ? length: \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n\n this.coder = coder;\n this.length = length;\n }\n\n defaultValue(): Array {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n\n const result: Array = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n\n encode(writer: Writer, value: Array): number {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n\n let count = this.length;\n\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName? (\" \"+ this.localName): \"\"));\n\n let coders = [];\n for (let i = 0; i < value.length; i++) { coders.push(this.coder); }\n\n return pack(writer, coders, value);\n }\n\n decode(reader: Reader): any {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) { coders.push(new AnonymousCoder(this.coder)); }\n\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n\n","\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class BooleanCoder extends Coder {\n\n constructor(localName: string) {\n super(\"bool\", \"bool\", localName, false);\n }\n\n defaultValue(): boolean {\n return false;\n }\n\n encode(writer: Writer, value: boolean): number {\n return writer.writeValue(value ? 1: 0);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n\n","\"use strict\";\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class DynamicBytesCoder extends Coder {\n constructor(type: string, localName: string) {\n super(type, type, localName, true);\n }\n\n defaultValue(): string {\n return \"0x\";\n }\n\n encode(writer: Writer, value: any): number {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n\n decode(reader: Reader): any {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\n\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName: string) {\n super(\"bytes\", localName);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n\n\n","\"use strict\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n readonly size: number;\n\n constructor(size: number, localName: string) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n\n defaultValue(): string {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n\n encode(writer: Writer, value: BytesLike): number {\n let data = arrayify(value);\n if (data.length !== this.size) { this._throwError(\"incorrect data length\", value); }\n return writer.writeBytes(data);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n","\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NullCoder extends Coder {\n\n constructor(localName: string) {\n super(\"null\", \"\", localName, false);\n }\n\n defaultValue(): null {\n return null;\n }\n\n encode(writer: Writer, value: any): number {\n if (value != null) { this._throwError(\"not null\", value); }\n return writer.writeBytes([ ]);\n }\n\n decode(reader: Reader): any {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n","\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NumberCoder extends Coder {\n readonly size: number;\n readonly signed: boolean;\n\n constructor(size: number, signed: boolean, localName: string) {\n const name = ((signed ? \"int\": \"uint\") + (size * 8));\n super(name, name, localName, false);\n\n this.size = size;\n this.signed = signed;\n }\n\n defaultValue(): number {\n return 0;\n }\n\n encode(writer: Writer, value: BigNumberish): number {\n let v = BigNumber.from(value);\n\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n } else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n\n return writer.writeValue(v);\n }\n\n decode(reader: Reader): any {\n let value = reader.readValue().mask(this.size * 8);\n\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n\n return reader.coerce(this.name, value);\n }\n}\n\n","\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Reader, Writer } from \"./abstract-coder\";\nimport { DynamicBytesCoder } from \"./bytes\";\n\nexport class StringCoder extends DynamicBytesCoder {\n\n constructor(localName: string) {\n super(\"string\", localName);\n }\n\n defaultValue(): string {\n return \"\";\n }\n\n encode(writer: Writer, value: any): number {\n return super.encode(writer, toUtf8Bytes(value));\n }\n\n decode(reader: Reader): any {\n return toUtf8String(super.decode(reader));\n }\n}\n","\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\n\nexport class TupleCoder extends Coder {\n readonly coders: Array;\n\n constructor(coders: Array, localName: string) {\n let dynamic = false;\n const types: Array = [];\n coders.forEach((coder) => {\n if (coder.dynamic) { dynamic = true; }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n\n defaultValue(): any {\n const values: any = [ ];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add named values\n this.coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n values[name] = values[index];\n });\n\n return Object.freeze(values);\n }\n\n encode(writer: Writer, value: Array | { [ name: string ]: any }): number {\n return pack(writer, this.coders, value);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n\n","\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\n\nimport { ParamType } from \"./fragments\";\n\n\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\n\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport class AbiCoder {\n readonly coerceFunc: CoerceFunc;\n\n constructor(coerceFunc?: CoerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n\n _getCoder(param: ParamType): Coder {\n\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n\n _getWordSize(): number { return 32; }\n\n _getReader(data: Uint8Array, allowLoose?: boolean): Reader {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n\n _getWriter(): Writer {\n return new Writer(this._getWordSize());\n }\n\n getDefaultValue(types: ReadonlyArray): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n\n encode(types: ReadonlyArray, values: ReadonlyArray): string {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n\n decode(types: ReadonlyArray, data: BytesLike, loose?: boolean): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\n\nexport const defaultAbiCoder: AbiCoder = new AbiCoder();\n\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\"\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\n\nimport { AbiCoder, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Result } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, ParamType } from \"./fragments\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport { checkResultErrors, Result };\n\nexport class LogDescription extends Description {\n readonly eventFragment: EventFragment;\n readonly name: string;\n readonly signature: string;\n readonly topic: string;\n readonly args: Result\n}\n\nexport class TransactionDescription extends Description {\n readonly functionFragment: FunctionFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n readonly value: BigNumber;\n}\n\nexport class ErrorDescription extends Description {\n readonly errorFragment: ErrorFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n}\n\nexport class Indexed extends Description {\n readonly hash: string;\n readonly _isIndexed: boolean;\n\n static isIndexed(value: any): value is Indexed {\n return !!(value && value._isIndexed);\n }\n}\n\nconst BuiltinErrors: Record, name: string, reason?: boolean }> = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [ \"string\" ], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [ \"uint256\" ] }\n}\n\nfunction wrapAccessError(property: string, error: Error): Error {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);\n (wrap).error = error;\n return wrap;\n}\n\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n readonly fragments: ReadonlyArray;\n\n readonly errors: { [ name: string ]: ErrorFragment };\n readonly events: { [ name: string ]: EventFragment };\n readonly functions: { [ name: string ]: FunctionFragment };\n readonly structs: { [ name: string ]: any };\n\n readonly deploy: ConstructorFragment;\n\n readonly _abiCoder: AbiCoder;\n\n readonly _isInterface: boolean;\n\n constructor(fragments: string | ReadonlyArray) {\n let abi: ReadonlyArray = [ ];\n if (typeof(fragments) === \"string\") {\n abi = JSON.parse(fragments);\n } else {\n abi = fragments;\n }\n\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n\n defineReadOnly(this, \"_abiCoder\", getStatic<() => AbiCoder>(new.target, \"getAbiCoder\")());\n\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"errors\", { });\n defineReadOnly(this, \"events\", { });\n defineReadOnly(this, \"structs\", { });\n\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket: { [ name: string ]: Fragment } = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.events;\n break;\n case \"error\":\n bucket = this.errors;\n break;\n default:\n return;\n }\n\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n\n bucket[signature] = fragment;\n });\n\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n\n defineReadOnly(this, \"_isInterface\", true);\n }\n\n format(format?: string): string | Array {\n if (!format) { format = FormatTypes.full; }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n\n const abi = this.fragments.map((fragment) => fragment.format(format));\n\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n\n return abi;\n }\n\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder(): AbiCoder {\n return defaultAbiCoder;\n }\n\n static getAddress(address: string): string {\n return getAddress(address);\n }\n\n static getSighash(fragment: ErrorFragment | FunctionFragment): string {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n\n static getEventTopic(eventFragment: EventFragment): string {\n return id(eventFragment.format());\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash: string): FunctionFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n\n return this.functions[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic: string): EventFragment {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n\n return this.events[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash: string): ErrorFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n\n return this.errors[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment: ErrorFragment | FunctionFragment | string): string {\n if (typeof(fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n } catch (error) {\n try {\n fragment = this.getError(fragment);\n } catch (_) {\n throw error;\n }\n }\n }\n\n return getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\")(fragment);\n }\n\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment: EventFragment | string): string {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n return getStatic<(e: EventFragment) => string>(this.constructor, \"getEventTopic\")(eventFragment);\n }\n\n\n _decodeParams(params: ReadonlyArray, data: BytesLike): Result {\n return this._abiCoder.decode(params, data)\n }\n\n _encodeParams(params: ReadonlyArray, values: ReadonlyArray): string {\n return this._abiCoder.encode(params, values)\n }\n\n encodeDeploy(values?: ReadonlyArray): string {\n return this._encodeParams(this.deploy.inputs, values || [ ]);\n }\n\n decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${ fragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n\n encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray): string {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${ functionFragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n let bytes = arrayify(data);\n\n let reason: string = null;\n let message = \"\";\n let errorArgs: Result = null;\n let errorName: string = null;\n let errorSignature: string = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n } catch (error) { }\n break;\n\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) { reason = errorArgs[0]; }\n if (errorName === \"Error\") {\n message = `; VM Exception while processing transaction: reverted with reason string ${ JSON.stringify(errorArgs[0]) }`;\n } else if (errorName === \"Panic\") {\n message = `; VM Exception while processing transaction: reverted with panic code ${ errorArgs[0] }`;\n }\n } else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n } catch (error) { }\n }\n break;\n }\n }\n\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data), errorArgs, errorName, errorSignature, reason\n });\n }\n\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || [ ]));\n }\n\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment: EventFragment | string, values: ReadonlyArray): Array> {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n })\n }\n\n let topics: Array> = [];\n if (!eventFragment.anonymous) { topics.push(this.getEventTopic(eventFragment)); }\n\n const encodeTopic = (param: ParamType, value: any): string => {\n if (param.type === \"string\") {\n return id(value);\n } else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n\n if (param.type === \"bool\" && typeof(value) === \"boolean\") {\n value = (value ? \"0x01\": \"0x00\");\n }\n\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n }\n\n // Check addresses are valid\n if (param.type === \"address\") { this._abiCoder.encode( [ \"address\" ], [ value ]); }\n return hexZeroPad(hexlify(value), 32);\n };\n\n values.forEach((value, index) => {\n\n let param = (eventFragment).inputs[index];\n\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n } else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n } else {\n topics.push(encodeTopic(param, value));\n }\n });\n\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n\n return topics;\n }\n\n encodeEventLog(eventFragment: EventFragment | string, values: ReadonlyArray): { data: string, topics: Array } {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n const topics: Array = [ ];\n\n const dataTypes: Array = [ ];\n const dataValues: Array = [ ];\n\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value))\n } else if (param.type === \"bytes\") {\n topics.push(keccak256(value))\n } else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n } else {\n topics.push(this._abiCoder.encode([ param.type] , [ value ]));\n }\n } else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n\n return {\n data: this._abiCoder.encode(dataTypes , dataValues),\n topics: topics\n };\n }\n\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray): Result {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n\n let indexed: Array = [];\n let nonIndexed: Array = [];\n let dynamic: Array = [];\n\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n } else {\n indexed.push(param);\n dynamic.push(false);\n }\n } else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)): null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n\n let result: (Array & { [ key: string ]: any }) = [ ];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n\n } else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n\n } else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n } else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${ JSON.stringify(param.name) }`, value); }\n });\n } else {\n result[param.name] = value;\n }\n }\n });\n\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${ i }`, value); }\n });\n }\n }\n\n return Object.freeze(result);\n }\n\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx: { data: string, value?: BigNumberish }): TransactionDescription {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n\n // @TODO\n //parseCallResult(data: BytesLike): ??\n\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log: { topics: Array, data: string}): LogDescription {\n let fragment = this.getEvent(log.topics[0]);\n\n if (!fragment || fragment.anonymous) { return null; }\n\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n\n\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n\n parseError(data: BytesLike): ErrorDescription {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n\n\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n\n static isInterface(value: any): value is Interface {\n return !!(value && value._isInterface);\n }\n}\n\n","\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { BytesLike, isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { Deferrable, Description, defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { AccessListish, Transaction } from \"@ethersproject/transactions\";\nimport { OnceBlockable } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\n\nexport type TransactionRequest = {\n to?: string,\n from?: string,\n nonce?: BigNumberish,\n\n gasLimit?: BigNumberish,\n gasPrice?: BigNumberish,\n\n data?: BytesLike,\n value?: BigNumberish,\n chainId?: number\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n}\n\nexport interface TransactionResponse extends Transaction {\n hash: string;\n\n // Only if a transaction has been mined\n blockNumber?: number,\n blockHash?: string,\n timestamp?: number,\n\n confirmations: number,\n\n // Not optional (as it is in Transaction)\n from: string;\n\n // The raw transaction\n raw?: string,\n\n // This function waits until the transaction has been mined\n wait: (confirmations?: number) => Promise\n};\n\nexport type BlockTag = string | number;\n\nexport interface _Block {\n hash: string;\n parentHash: string;\n number: number;\n\n timestamp: number;\n nonce: string;\n difficulty: number;\n _difficulty: BigNumber;\n\n gasLimit: BigNumber;\n gasUsed: BigNumber;\n\n miner: string;\n extraData: string;\n\n baseFeePerGas?: null | BigNumber;\n}\n\nexport interface Block extends _Block {\n transactions: Array;\n}\n\nexport interface BlockWithTransactions extends _Block {\n transactions: Array;\n}\n\n\nexport interface Log {\n blockNumber: number;\n blockHash: string;\n transactionIndex: number;\n\n removed: boolean;\n\n address: string;\n data: string;\n\n topics: Array;\n\n transactionHash: string;\n logIndex: number;\n}\n\nexport interface TransactionReceipt {\n to: string;\n from: string;\n contractAddress: string,\n transactionIndex: number,\n root?: string,\n gasUsed: BigNumber,\n logsBloom: string,\n blockHash: string,\n transactionHash: string,\n logs: Array,\n blockNumber: number,\n confirmations: number,\n cumulativeGasUsed: BigNumber,\n effectiveGasPrice: BigNumber,\n byzantium: boolean,\n type: number;\n status?: number\n};\n\nexport interface FeeData {\n lastBaseFeePerGas: null | BigNumber;\n maxFeePerGas: null | BigNumber;\n maxPriorityFeePerGas: null | BigNumber;\n gasPrice: null | BigNumber;\n}\n\nexport interface EventFilter {\n address?: string;\n topics?: Array | null>;\n}\n\nexport interface Filter extends EventFilter {\n fromBlock?: BlockTag,\n toBlock?: BlockTag,\n}\n\nexport interface FilterByBlockHash extends EventFilter {\n blockHash?: string;\n}\n\n//export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\n\nexport abstract class ForkEvent extends Description {\n readonly expiry: number;\n\n readonly _isForkEvent?: boolean;\n\n static isForkEvent(value: any): value is ForkEvent {\n return !!(value && value._isForkEvent);\n }\n}\n\nexport class BlockForkEvent extends ForkEvent {\n readonly blockHash: string;\n\n readonly _isBlockForkEvent?: boolean;\n\n constructor(blockHash: string, expiry?: number) {\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n\n super({\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: (expiry || 0),\n blockHash: blockHash\n });\n }\n}\n\nexport class TransactionForkEvent extends ForkEvent {\n readonly hash: string;\n\n readonly _isTransactionOrderForkEvent?: boolean;\n\n constructor(hash: string, expiry?: number) {\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: (expiry || 0),\n hash: hash\n });\n }\n}\n\nexport class TransactionOrderForkEvent extends ForkEvent {\n readonly beforeHash: string;\n readonly afterHash: string;\n\n constructor(beforeHash: string, afterHash: string, expiry?: number) {\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: (expiry || 0),\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n}\n\nexport type EventType = string | Array> | EventFilter | ForkEvent;\n\nexport type Listener = (...args: Array) => void;\n\n///////////////////////////////\n// Exported Abstracts\nexport abstract class Provider implements OnceBlockable {\n\n // Network\n abstract getNetwork(): Promise;\n\n // Latest State\n abstract getBlockNumber(): Promise;\n abstract getGasPrice(): Promise;\n async getFeeData(): Promise {\n const { block, gasPrice } = await resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n\n let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n\n return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n }\n\n // Account\n abstract getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise ;\n abstract getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise;\n\n // Execution\n abstract sendTransaction(signedTransaction: string | Promise): Promise;\n abstract call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise;\n abstract estimateGas(transaction: Deferrable): Promise;\n\n // Queries\n abstract getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getTransaction(transactionHash: string): Promise;\n abstract getTransactionReceipt(transactionHash: string): Promise;\n\n // Bloom-filter Queries\n abstract getLogs(filter: Filter): Promise>;\n\n // ENS\n abstract resolveName(name: string | Promise): Promise;\n abstract lookupAddress(address: string | Promise): Promise;\n\n // Event Emitter (ish)\n abstract on(eventName: EventType, listener: Listener): Provider;\n abstract once(eventName: EventType, listener: Listener): Provider;\n abstract emit(eventName: EventType, ...args: Array): boolean\n abstract listenerCount(eventName?: EventType): number;\n abstract listeners(eventName?: EventType): Array;\n abstract off(eventName: EventType, listener?: Listener): Provider;\n abstract removeAllListeners(eventName?: EventType): Provider;\n\n // Alias for \"on\"\n addListener(eventName: EventType, listener: Listener): Provider {\n return this.on(eventName, listener);\n }\n\n // Alias for \"off\"\n removeListener(eventName: EventType, listener: Listener): Provider {\n return this.off(eventName, listener);\n }\n\n // @TODO: This *could* be implemented here, but would pull in events...\n abstract waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise;\n\n readonly _isProvider: boolean;\n\n constructor() {\n logger.checkAbstract(new.target, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n\n static isProvider(value: any): value is Provider {\n return !!(value && value._isProvider);\n }\n\n/*\n static getResolver(network: Network, callable: CallTransactionable, namehash: string): string {\n // No ENS...\n if (!network.ensAddress) {\n errors.throwError(\n \"network does support ENS\",\n errors.UNSUPPORTED_OPERATION,\n { operation: \"ENS\", network: network.name }\n );\n }\n\n // Not a namehash\n if (!isHexString(namehash, 32)) {\n errors.throwArgumentError(\"invalid name hash\", \"namehash\", namehash);\n }\n\n // keccak256(\"resolver(bytes32)\")\n let data = \"0x0178b8bf\" + namehash.substring(2);\n let transaction = { to: network.ensAddress, data: data };\n\n return provider.call(transaction).then((data) => {\n return provider.formatter.callAddress(data);\n });\n }\n\n static resolveNamehash(network: Network, callable: CallTransactionable, namehash: string): string {\n return this.getResolver(network, callable, namehash).then((resolverAddress) => {\n if (!resolverAddress) { return null; }\n\n // keccak256(\"addr(bytes32)\")\n let data = \"0x3b3b57de\" + namehash(name).substring(2);\n let transaction = { to: resolverAddress, data: data };\n return callable.call(transaction).then((data) => {\n return this.formatter.callAddress(data);\n });\n\n })\n }\n*/\n}\n","export const version = \"abstract-provider/5.7.0\";\n","\"use strict\";\n\nimport { BlockTag, FeeData, Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst allowedTransactionKeys: Array = [\n \"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"\n];\n\nconst forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n];\n\n// EIP-712 Typed Data\n// See: https://eips.ethereum.org/EIPS/eip-712\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: BigNumberish;\n verifyingContract?: string;\n salt?: BytesLike;\n};\n\nexport interface TypedDataField {\n name: string;\n type: string;\n};\n\n// Sub-classes of Signer may optionally extend this interface to indicate\n// they have a private key available synchronously\nexport interface ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n}\n\n// Sub-Class Notes:\n// - A Signer MUST always make sure, that if present, the \"from\" field\n// matches the Signer, before sending or signing a transaction\n// - A Signer SHOULD always wrap private information (such as a private\n// key or mnemonic) in a function, so that console.log does not leak\n// the data\n\n// @TODO: This is a temporary measure to preserve backwards compatibility\n// In v6, the method on TypedDataSigner will be added to Signer\nexport interface TypedDataSigner {\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise;\n}\n\nexport abstract class Signer {\n readonly provider?: Provider;\n\n ///////////////////\n // Sub-classes MUST implement these\n\n // Returns the checksum address\n abstract getAddress(): Promise\n\n // Returns the signed prefixed-message. This MUST treat:\n // - Bytes as a binary message\n // - string as a UTF8-message\n // i.e. \"0x1234\" is a SIX (6) byte string, NOT 2 bytes of data\n abstract signMessage(message: Bytes | string): Promise;\n\n // Signs a transaction and returns the fully serialized, signed transaction.\n // The EXACT transaction MUST be signed, and NO additional properties to be added.\n // - This MAY throw if signing transactions is not supports, but if\n // it does, sentTransaction MUST be overridden.\n abstract signTransaction(transaction: Deferrable): Promise;\n\n // Returns a new instance of the Signer, connected to provider.\n // This MAY throw if changing providers is not supported.\n abstract connect(provider: Provider): Signer;\n\n readonly _isSigner: boolean;\n\n\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger.checkAbstract(new.target, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n\n\n ///////////////////\n // Sub-classes MAY override these\n\n async getBalance(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getBalance\");\n return await this.provider.getBalance(this.getAddress(), blockTag);\n }\n\n async getTransactionCount(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getTransactionCount\");\n return await this.provider.getTransactionCount(this.getAddress(), blockTag);\n }\n\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n async estimateGas(transaction: Deferrable): Promise {\n this._checkProvider(\"estimateGas\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.estimateGas(tx);\n }\n\n // Populates \"from\" if unspecified, and calls with the transaction\n async call(transaction: Deferrable, blockTag?: BlockTag): Promise {\n this._checkProvider(\"call\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.call(tx, blockTag);\n }\n\n // Populates all fields in a transaction, signs it and sends it to the network\n async sendTransaction(transaction: Deferrable): Promise {\n this._checkProvider(\"sendTransaction\");\n const tx = await this.populateTransaction(transaction);\n const signedTx = await this.signTransaction(tx);\n return await this.provider.sendTransaction(signedTx);\n }\n\n async getChainId(): Promise {\n this._checkProvider(\"getChainId\");\n const network = await this.provider.getNetwork();\n return network.chainId;\n }\n\n async getGasPrice(): Promise {\n this._checkProvider(\"getGasPrice\");\n return await this.provider.getGasPrice();\n }\n\n async getFeeData(): Promise {\n this._checkProvider(\"getFeeData\");\n return await this.provider.getFeeData();\n }\n\n\n async resolveName(name: string): Promise {\n this._checkProvider(\"resolveName\");\n return await this.provider.resolveName(name);\n }\n\n\n\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction: Deferrable): Deferrable {\n for (const key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n\n const tx = shallowCopy(transaction);\n\n if (tx.from == null) {\n tx.from = this.getAddress();\n\n } else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n\n return tx;\n }\n\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n async populateTransaction(transaction: Deferrable): Promise {\n\n const tx: Deferrable = await resolveProperties(this.checkTransaction(transaction))\n\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n\n // Prevent this error from causing an UnhandledPromiseException\n tx.to.catch((error) => { });\n }\n\n // Do not allow mixing pre-eip-1559 and eip-1559 properties\n const hasEip1559 = (tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null);\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n\n } else if (tx.type === 0 || tx.type === 1) {\n // Explicit Legacy or EIP-2930 transaction\n\n // Populate missing gasPrice\n if (tx.gasPrice == null) { tx.gasPrice = this.getGasPrice(); }\n\n } else {\n\n // We need to get fee data to determine things\n const feeData = await this.getFeeData();\n\n if (tx.type == null) {\n // We need to auto-detect the intended type of this transaction...\n\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n // The network supports EIP-1559!\n\n // Upgrade transaction from null to eip-1559\n tx.type = 2;\n\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n\n } else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n\n } else if (feeData.gasPrice != null) {\n // Network doesn't support EIP-1559...\n\n // ...but they are trying to use EIP-1559 properties\n if (hasEip1559) {\n logger.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n\n // Populate missing fee data\n if (tx.gasPrice == null) { tx.gasPrice = feeData.gasPrice; }\n\n // Explicitly set untyped transaction to legacy\n tx.type = 0;\n\n } else {\n // getFeeData has failed us.\n logger.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n\n } else if (tx.type === 2) {\n // Explicitly using EIP-1559\n\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n }\n\n if (tx.nonce == null) { tx.nonce = this.getTransactionCount(\"pending\"); }\n\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n\n return logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error: error,\n tx: tx\n });\n });\n }\n\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n } else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n\n return await resolveProperties(tx);\n }\n\n\n ///////////////////\n // Sub-classes SHOULD leave these alone\n\n _checkProvider(operation?: string): void {\n if (!this.provider) { logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: (operation || \"_checkProvider\") });\n }\n }\n\n static isSigner(value: any): value is Signer {\n return !!(value && value._isSigner);\n }\n}\n\nexport class VoidSigner extends Signer implements TypedDataSigner {\n readonly address: string;\n\n constructor(address: string, provider?: Provider) {\n super();\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n _fail(message: string, operation: string): Promise {\n return Promise.resolve().then(() => {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });\n });\n }\n\n signMessage(message: Bytes | string): Promise {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n\n connect(provider: Provider): VoidSigner {\n return new VoidSigner(this.address, provider);\n }\n}\n\n","export const version = \"abstract-signer/5.7.0\";\n","export const version = \"address/5.7.0\";\n","\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction getChecksumAddress(address: string): string {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n address = address.toLowerCase();\n\n const chars = address.substring(2).split(\"\");\n\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n\n const hashed = arrayify(keccak256(expanded));\n\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n\n return \"0x\" + chars.join(\"\");\n}\n\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER: number = 0x1fffffffffffff;\n\nfunction log10(x: number): number {\n if (Math.log10) { return Math.log10(x); }\n return Math.log(x) / Math.LN10;\n}\n\n\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n\n// Create lookup table\nconst ibanLookup: { [character: string]: string } = { };\nfor (let i = 0; i < 10; i++) { ibanLookup[String(i)] = String(i); }\nfor (let i = 0; i < 26; i++) { ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); }\n\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\n\nfunction ibanChecksum(address: string): string {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits){\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) { checksum = \"0\" + checksum; }\n\n return checksum;\n};\n\nexport function getAddress(address: string): string {\n let result = null;\n\n if (typeof(address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") { address = \"0x\" + address; }\n\n result = getChecksumAddress(address);\n\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n\n // Maybe ICAP? (we only support direct mode)\n } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n\n result = _base36To16(address.substring(4));\n while (result.length < 40) { result = \"0\" + result; }\n result = getChecksumAddress(\"0x\" + result);\n\n } else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n return result;\n}\n\nexport function isAddress(address: string): boolean {\n try {\n getAddress(address);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getIcapAddress(address: string): string {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) { base36 = \"0\" + base36; }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction: { from: string, nonce: BigNumberish }) {\n let from: string = null;\n try {\n from = getAddress(transaction.from);\n } catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n\n return getAddress(hexDataSlice(keccak256(encode([ from, nonce ])), 12));\n}\n\nexport function getCreate2Address(from: string, salt: BytesLike, initCodeHash: BytesLike): string {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([ \"0xff\", getAddress(from), salt, initCodeHash ])), 12))\n}\n","\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nexport function decode(textData: string): Uint8Array {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\n\nexport function encode(data: BytesLike): string {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n\n\n","/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nexport class BaseX {\n readonly alphabet: string;\n readonly base: number;\n\n _alphabetMap: { [ character: string ]: number };\n _leader: string;\n\n constructor(alphabet: string) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n\n defineReadOnly(this, \"_alphabetMap\", { });\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n\n encode(value: BytesLike): string {\n let source = arrayify(value);\n\n if (source.length === 0) { return \"\"; }\n\n let digits = [ 0 ]\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n\n let string = \"\"\n\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n\n return string;\n }\n\n decode(value: string): Uint8Array {\n if (typeof(value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n\n let bytes: Array = [];\n if (value.length === 0) { return new Uint8Array(bytes); }\n\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0)\n }\n\n return arrayify(new Uint8Array(bytes.reverse()))\n }\n}\n\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\n\nexport { Base32, Base58 };\n\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n","export const version = \"bignumber/5.7.0\";\n","\"use strict\";\n\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\n\nimport _BN from \"bn.js\";\nimport BN = _BN.BN;\n\nimport { Bytes, Hexable, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst _constructorGuard = { };\n\nconst MAX_SAFE = 0x1fffffffffffff;\n\n\nexport type BigNumberish = BigNumber | Bytes | bigint | string | number;\n\nexport function isBigNumberish(value: any): value is BigNumberish {\n return (value != null) && (\n BigNumber.isBigNumber(value) ||\n (typeof(value) === \"number\" && (value % 1) === 0) ||\n (typeof(value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof(value) === \"bigint\") ||\n isBytes(value)\n );\n}\n\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\n\nexport class BigNumber implements Hexable {\n readonly _hex: string;\n readonly _isBigNumber: boolean;\n\n constructor(constructorGuard: any, hex: string) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n\n this._hex = hex;\n this._isBigNumber = true;\n\n Object.freeze(this);\n }\n\n fromTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n\n toTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).toTwos(value));\n }\n\n abs(): BigNumber {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n\n add(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n\n sub(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n\n div(other: BigNumberish): BigNumber {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n\n mul(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n\n mod(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n\n pow(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n\n and(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n\n or(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n\n xor(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n\n mask(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n\n shl(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n\n shr(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n\n eq(other: BigNumberish): boolean {\n return toBN(this).eq(toBN(other));\n }\n\n lt(other: BigNumberish): boolean {\n return toBN(this).lt(toBN(other));\n }\n\n lte(other: BigNumberish): boolean {\n return toBN(this).lte(toBN(other));\n }\n\n gt(other: BigNumberish): boolean {\n return toBN(this).gt(toBN(other));\n }\n\n gte(other: BigNumberish): boolean {\n return toBN(this).gte(toBN(other));\n }\n\n isNegative(): boolean {\n return (this._hex[0] === \"-\");\n }\n\n isZero(): boolean {\n return toBN(this).isZero();\n }\n\n toNumber(): number {\n try {\n return toBN(this).toNumber();\n } catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n\n toBigInt(): bigint {\n try {\n return BigInt(this.toString());\n } catch (e) { }\n\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n\n toString(): string {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n } else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n } else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n }\n }\n return toBN(this).toString(10);\n }\n\n toHexString(): string {\n return this._hex;\n }\n\n toJSON(key?: string): any {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n\n static from(value: any): BigNumber {\n if (value instanceof BigNumber) { return value; }\n\n if (typeof(value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n\n if (typeof(value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n\n return BigNumber.from(String(value));\n }\n\n const anyValue = value;\n\n if (typeof(anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n\n if (anyValue) {\n\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof(hex) === \"string\") {\n return BigNumber.from(hex);\n }\n\n } else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n\n if (typeof(hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n\n static isBigNumber(value: any): value is BigNumber {\n return !!(value && value._isBigNumber);\n }\n}\n\n// Normalize the hex string\nfunction toHex(value: string | BN): string {\n\n // For BN, call on the hex string\n if (typeof(value) !== \"string\") {\n return toHex(value.toString(16));\n }\n\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") { logger.throwArgumentError(\"invalid hex\", \"value\", value); }\n\n // Call toHex on the positive component\n value = toHex(value);\n\n // Do not allow \"-0x00\"\n if (value === \"0x00\") { return value; }\n\n // Negate the value\n return \"-\" + value;\n }\n\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n\n // Normalize zero\n if (value === \"0x\") { return \"0x00\"; }\n\n // Make the string even length\n if (value.length % 2) { value = \"0x0\" + value.substring(2); }\n\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n\n return value;\n}\n\nfunction toBigNumber(value: BN): BigNumber {\n return BigNumber.from(toHex(value));\n}\n\nfunction toBN(value: BigNumberish): BN {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\n\nfunction throwFault(fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value != null) { params.value = value; }\n\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// value should have no prefix\nexport function _base36To16(value: string): string {\n return (new BN(value, 36)).toString(16);\n}\n\n// value should have no prefix\nexport function _base16To36(value: string): string {\n return (new BN(value, 16)).toString(36);\n}\n","export const version = \"bytes/5.7.0\";\n","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type Bytes = ArrayLike;\n\nexport type BytesLike = Bytes | string;\n\nexport type DataOptions = {\n allowMissingPrefix?: boolean;\n hexPad?: \"left\" | \"right\" | null;\n};\n\nexport interface Hexable {\n toHexString(): string;\n}\n\n\n/*\nexport interface HexString {\n length: number;\n substring: (start: number, end?: number) => string;\n\n [index: number]: string;\n}\n*/\n\nexport type SignatureLike = {\n r: string;\n s?: string;\n _vs?: string,\n recoveryParam?: number;\n v?: number;\n} | BytesLike;\n\nexport interface Signature {\n r: string;\n\n s: string;\n _vs: string,\n\n recoveryParam: number;\n v: number;\n\n yParityAndS: string\n compact: string;\n}\n\n///////////////////////////////\n\n\nfunction isHexable(value: any): value is Hexable {\n return !!(value.toHexString);\n}\n\nfunction addSlice(array: Uint8Array): Uint8Array {\n if (array.slice) { return array; }\n\n array.slice = function() {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n }\n\n return array;\n}\n\nexport function isBytesLike(value: any): value is BytesLike {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\n\nfunction isInteger(value: number) {\n return (typeof(value) === \"number\" && value == value && (value % 1) === 0);\n}\n\nexport function isBytes(value: any): value is Bytes {\n if (value == null) { return false; }\n\n if (value.constructor === Uint8Array) { return true; }\n if (typeof(value) === \"string\") { return false; }\n if (!isInteger(value.length) || value.length < 0) { return false; }\n\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) { return false; }\n }\n return true;\n}\n\n\nexport function arrayify(value: BytesLike | Hexable | number, options?: DataOptions): Uint8Array {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) { result.push(0); }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { value = value.toHexString(); }\n\n if (isHexString(value)) {\n let hex = (value).substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n } else if (options.hexPad === \"right\") {\n hex += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\n\nexport function concat(items: ReadonlyArray): Uint8Array {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n\n const result = new Uint8Array(length);\n\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n\n return addSlice(result);\n}\n\nexport function stripZeros(value: BytesLike): Uint8Array {\n let result: Uint8Array = arrayify(value);\n\n if (result.length === 0) { return result; }\n\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) { start++ }\n\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n\n return result;\n}\n\nexport function zeroPad(value: BytesLike, length: number): Uint8Array {\n value = arrayify(value);\n\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\n\n\nexport function isHexString(value: any, length?: number): boolean {\n if (typeof(value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false\n }\n if (length && value.length !== 2 + 2 * length) { return false; }\n return true;\n}\n\nconst HexCharacters: string = \"0123456789abcdef\";\n\nexport function hexlify(value: BytesLike | Hexable | number | bigint, options?: DataOptions): string {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n\n if (hex.length) {\n if (hex.length % 2) { hex = \"0\" + hex; }\n return \"0x\" + hex;\n }\n\n return \"0x00\";\n }\n\n if (typeof(value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) { return (\"0x0\" + value); }\n return \"0x\" + value;\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { return value.toHexString(); }\n\n if (isHexString(value)) {\n if ((value).length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + (value).substring(2);\n } else if (options.hexPad === \"right\") {\n value += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return (value).toLowerCase();\n }\n\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data: BytesLike) {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n\n return (data.length - 2) / 2;\n}\n\nexport function hexDataSlice(data: BytesLike, offset: number, endOffset?: number): string {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data );\n }\n\n offset = 2 + 2 * offset;\n\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n\n return \"0x\" + data.substring(offset);\n}\n\nexport function hexConcat(items: ReadonlyArray): string {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\n\nexport function hexValue(value: BytesLike | Hexable | number | bigint): string {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") { return \"0x0\"; }\n return trimmed;\n}\n\nexport function hexStripZeros(value: BytesLike): string {\n if (typeof(value) !== \"string\") { value = hexlify(value); }\n\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") { offset++; }\n return \"0x\" + value.substring(offset);\n}\n\nexport function hexZeroPad(value: BytesLike, length: number): string {\n if (typeof(value) !== \"string\") {\n value = hexlify(value);\n } else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n\n return value;\n}\n\nexport function splitSignature(signature: SignatureLike): Signature {\n\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n\n if (isBytesLike(signature)) {\n let bytes: Uint8Array = arrayify(signature);\n\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n\n } else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n } else {\n\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n\n\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n } else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) { bytes[32] |= 0x80; }\n result._vs = hexlify(bytes.slice(32, 64))\n\n } else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1: 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n } else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n } else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n } else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n } else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n } else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n } else {\n const recId = (result.v === 0 || result.v === 1) ? result.v :(1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n } else {\n result.r = hexZeroPad(result.r, 32);\n }\n\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n } else {\n result.s = hexZeroPad(result.s, 32);\n }\n\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) { vs[0] |= 0x80; }\n const _vs = hexlify(vs);\n\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n } else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n\n return result;\n}\n\nexport function joinSignature(signature: SignatureLike): string {\n signature = splitSignature(signature);\n\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\": \"0x1b\")\n ]));\n}\n\n","import { BigNumber } from \"@ethersproject/bignumber\";\n\nconst NegativeOne: BigNumber = (/*#__PURE__*/BigNumber.from(-1));\nconst Zero: BigNumber = (/*#__PURE__*/BigNumber.from(0));\nconst One: BigNumber = (/*#__PURE__*/BigNumber.from(1));\nconst Two: BigNumber = (/*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther: BigNumber = (/*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nconst MinInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256,\n};\n","export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n\n","export const version = \"hash/5.7.0\";\n","import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport function id(text: string): string {\n return keccak256(toUtf8Bytes(text));\n}\n","import { Bytes, concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\n\nexport function hashMessage(message: Bytes | string): string {\n if (typeof(message) === \"string\") { message = toUtf8Bytes(message); }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n\n","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nexport type Numbers = Uint8Array | Array;\nexport type NextFunc = (...args: Array) => number;\n\n// https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js\nfunction flat(array: Array, depth?: number): Array {\n if (depth == null) { depth = 1; }\n const result: Array = [];\n\n const forEach = result.forEach;\n\n const flatDeep = function (arr: Array, depth: number) {\n forEach.call(arr, function (val: any) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n } else {\n result.push(val);\n }\n });\n };\n\n flatDeep(array, depth);\n return result;\n}\n\nfunction fromEntries(array: Array<[T, U]>): Record {\n const result: Record = >{ };\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\n\nexport function decode_arithmetic(bytes: Numbers): Array {\n\tlet pos = 0;\n\tfunction u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\n\t\n\t// decode the frequency table\n\tlet symbol_count = u16();\n\tlet total = 1;\n\tlet acc = [0, 1]; // first symbol has frequency 1\n\tfor (let i = 1; i < symbol_count; i++) {\n\t\tacc.push(total += u16());\n\t}\n\n\t// skip the sized-payload that the last 3 symbols index into\n\tlet skip = u16();\n\tlet pos_payload = pos;\n\tpos += skip;\n\n\tlet read_width = 0;\n\tlet read_buffer = 0; \n\tfunction read_bit() {\n\t\tif (read_width == 0) {\n\t\t\t// this will read beyond end of buffer\n\t\t\t// but (undefined|0) => zero pad\n\t\t\tread_buffer = (read_buffer << 8) | bytes[pos++];\n\t\t\tread_width = 8;\n\t\t}\n\t\treturn (read_buffer >> --read_width) & 1;\n\t}\n\n\tconst N = 31;\n\tconst FULL = 2**N;\n\tconst HALF = FULL >>> 1;\n\tconst QRTR = HALF >> 1;\n\tconst MASK = FULL - 1;\n\n\t// fill register\n\tlet register = 0;\n\tfor (let i = 0; i < N; i++) register = (register << 1) | read_bit();\n\n\tlet symbols = [];\n\tlet low = 0;\n\tlet range = FULL; // treat like a float\n\twhile (true) {\n\t\tlet value = Math.floor((((register - low + 1) * total) - 1) / range);\n\t\tlet start = 0;\n\t\tlet end = symbol_count;\n\t\twhile (end - start > 1) { // binary search\n\t\t\tlet mid = (start + end) >>> 1;\n\t\t\tif (value < acc[mid]) {\n\t\t\t\tend = mid;\n\t\t\t} else {\n\t\t\t\tstart = mid;\n\t\t\t}\n\t\t}\n\t\tif (start == 0) break; // first symbol is end mark\n\t\tsymbols.push(start);\n\t\tlet a = low + Math.floor(range * acc[start] / total);\n\t\tlet b = low + Math.floor(range * acc[start+1] / total) - 1\n\t\twhile (((a ^ b) & HALF) == 0) {\n\t\t\tregister = (register << 1) & MASK | read_bit();\n\t\t\ta = (a << 1) & MASK;\n\t\t\tb = (b << 1) & MASK | 1;\n\t\t}\n\t\twhile (a & ~b & QRTR) {\n\t\t\tregister = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\n\t\t\ta = (a << 1) ^ HALF;\n\t\t\tb = ((b ^ HALF) << 1) | HALF | 1;\n\t\t}\n\t\tlow = a;\n\t\trange = 1 + b - a;\n\t}\n\tlet offset = symbol_count - 4;\n\treturn symbols.map(x => { // index into payload\n\t\tswitch (x - offset) {\n\t\t\tcase 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 1: return offset + bytes[pos_payload++];\n\t\t\tdefault: return x - 1;\n\t\t}\n\t});\n}\t\n\n\n// returns an iterator which returns the next symbol\nexport function read_payload(v: Numbers): NextFunc {\n\tlet pos = 0;\n\treturn () => v[pos++];\n}\nexport function read_compressed_payload(bytes: Numbers): NextFunc {\n\treturn read_payload(decode_arithmetic(bytes));\n}\n\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\nexport function signed(i: number): number { \n\treturn (i & 1) ? (~i >> 1) : (i >> 1);\n}\n\nfunction read_counts(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0; i < n; i++) v[i] = 1 + next();\n\treturn v;\n}\n\nfunction read_ascending(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = -1; i < n; i++) v[i] = x += 1 + next();\n\treturn v;\n}\n\nfunction read_deltas(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = 0; i < n; i++) v[i] = x += signed(next());\n\treturn v;\n}\n\nexport function read_member_array(next: NextFunc, lookup?: Record) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map(x => lookup[x]) : v;\n}\n\n// returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\nexport function read_mapped_map(next: NextFunc): Record> {\n\tlet ret = [];\n\twhile (true) {\n\t\tlet w = next();\n\t\tif (w == 0) break;\n\t\tret.push(read_linear_table(w, next));\n\t}\n\twhile (true) {\n\t\tlet w = next() - 1;\n\t\tif (w < 0) break;\n\t\tret.push(read_replacement_table(w, next));\n\t}\n\treturn fromEntries>(flat(ret));\n}\n\nexport function read_zero_terminated_array(next: NextFunc): Array {\n\tlet v = [];\n\twhile (true) {\n\t\tlet i = next();\n\t\tif (i == 0) break;\n\t\tv.push(i);\n\t}\n\treturn v;\n}\n\nfunction read_transposed(n: number, w: number, next: NextFunc): Array> {\n let m = Array(n).fill(undefined).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\n\n\nfunction read_linear_table(w: number, next: NextFunc): Array>> {\n\tlet dx = 1 + next();\n\tlet dy = next();\n\tlet vN = read_zero_terminated_array(next);\n\tlet m = read_transposed(vN.length, 1+w, next);\n\treturn flat(m.map((v, i) => {\n\t const x = v[0], ys = v.slice(1);\n\t\t//let [x, ...ys] = v;\n\t\t//return Array(vN[i]).fill().map((_, j) => {\n\t\treturn Array(vN[i]).fill(undefined).map((_, j) => {\n\t\t\tlet j_dy = j * dy;\n\t\t\treturn [x + j * dx, ys.map(y => y + j_dy)];\n\t\t});\n\t}));\n}\n\nfunction read_replacement_table(w: number, next: NextFunc): Array<[ number, Array ]> {\n\tlet n = 1 + next();\n\tlet m = read_transposed(n, 1+w, next);\n\treturn m.map(v => [v[0], v.slice(1)]);\n}\n\nexport type Branch = {\n set: Set;\n node: Node;\n};\n\nexport type Node = {\n branches: Array;\n valid: number;\n fe0f: boolean;\n save: boolean;\n check: boolean;\n};\n\nexport function read_emoji_trie(next: NextFunc): Node {\n\tlet sorted = read_member_array(next).sort((a, b) => a - b);\n\treturn read();\n\tfunction read(): Node {\n\t\tlet branches = [];\n\t\twhile (true) {\n\t\t\tlet keys = read_member_array(next, sorted);\n\t\t\tif (keys.length == 0) break;\n\t\t\tbranches.push({set: new Set(keys), node: read()});\n\t\t}\n branches.sort((a, b) => b.set.size - a.set.size); // sort by likelihood\n \t\tlet temp = next();\n \t\tlet valid = temp % 3;\n \t\ttemp = (temp / 3)|0;\n \t\tlet fe0f = !!(temp & 1);\n \t\ttemp >>= 1;\n \t\tlet save = temp == 1;\n \t\tlet check = temp == 2;\n \t\treturn {branches, valid, fe0f, save, check};\n\t}\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { toUtf8CodePoints } from \"@ethersproject/strings\";\n\nimport { getData } from './include.js';\nconst r = getData();\n\nimport {read_member_array, read_mapped_map, read_emoji_trie} from './decoder.js';\n\n// @TODO: This should be lazily loaded\n\nconst VALID = new Set(read_member_array(r));\nconst IGNORED = new Set(read_member_array(r));\nconst MAPPED = read_mapped_map(r);\nconst EMOJI_ROOT = read_emoji_trie(r);\n//const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n\n//const STOP = 0x2E;\nconst HYPHEN = 0x2D;\nconst UNDERSCORE = 0x5F;\n\nfunction explode_cp(name: string): Array {\n return toUtf8CodePoints(name);\n}\n\nfunction filter_fe0f(cps: Array): Array {\n return cps.filter(cp => cp != 0xFE0F);\n}\n\nexport function ens_normalize_post_check(name: string): string {\n\tfor (let label of name.split('.')) {\n\t\tlet cps = explode_cp(label);\n\t\ttry {\n\t\t\tfor (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n\t\t\t\tif (cps[i] !== UNDERSCORE) {\n\t\t\t\t\tthrow new Error(`underscore only allowed at start`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cps.length >= 4 && cps.every(cp => cp < 0x80) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n\t\t\t\tthrow new Error(`invalid label extension`);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new Error(`Invalid label \"${label}\": ${err.message}`);\n\t\t}\n\t}\n\treturn name;\n}\n\nexport function ens_normalize(name: string): string {\n\treturn ens_normalize_post_check(normalize(name, filter_fe0f));\n}\n\nfunction normalize(name: string, emoji_filter: (a: Array) => Array): string {\n\tlet input = explode_cp(name).reverse(); // flip for pop\n\tlet output = [];\n\twhile (input.length) {\t\t\n\t\tlet emoji = consume_emoji_reversed(input);\n\t\tif (emoji) {\n\t\t\toutput.push(...emoji_filter(emoji));\n\t\t\tcontinue;\n\t\t}\n\t\tlet cp = input.pop();\n\t\tif (VALID.has(cp)) {\n\t\t\toutput.push(cp);\n\t\t\tcontinue;\n\t\t} \n\t\tif (IGNORED.has(cp)) {\n\t\t\tcontinue;\n\t\t}\n\t\tlet cps = MAPPED[cp];\n\t\tif (cps) {\n\t\t\toutput.push(...cps);\n\t\t\tcontinue;\n\t\t}\n\t\tthrow new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n\t}\n\treturn ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\n\nfunction nfc(s: string): string {\n return s.normalize('NFC');\n}\n\nfunction consume_emoji_reversed(cps: Array, eaten?: Array) {\n\tlet node = EMOJI_ROOT;\n\tlet emoji;\n\tlet saved;\n\tlet stack = [];\n\tlet pos = cps.length;\n\tif (eaten) eaten.length = 0; // clear input buffer (if needed)\n\twhile (pos) {\n\t\tlet cp = cps[--pos];\n\t\tnode = node.branches.find(x => x.set.has(cp))?.node;\n\t\tif (!node) break;\n\t\tif (node.save) { // remember\n\t\t\tsaved = cp;\n\t\t} else if (node.check) { // check exclusion\n\t\t\tif (cp === saved) break;\n\t\t}\n\t\tstack.push(cp);\n\t\tif (node.fe0f) {\n\t\t\tstack.push(0xFE0F);\n\t\t\tif (pos > 0 && cps[pos - 1] == 0xFE0F) pos--; // consume optional FE0F\n\t\t}\n\t\tif (node.valid) { // this is a valid emoji (so far)\n\t\t\temoji = stack.slice(); // copy stack\n\t\t\tif (node.valid == 2) emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n\t\t\tif (eaten) eaten.push(...cps.slice(pos).reverse()); // copy input (if needed)\n\t\t\tcps.length = pos; // truncate\n\t\t}\n\t}\n\treturn emoji;\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { decode } from \"@ethersproject/base64\";\n\nimport {read_compressed_payload} from './decoder.js';\n\nexport function getData(): () => number {\n return read_compressed_payload(decode('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'));\n}\n\n","import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { ens_normalize } from \"./ens-normalize/lib\";\n\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\n\nfunction checkComponent(comp: Uint8Array): Uint8Array {\n if (comp.length === 0) { throw new Error(\"invalid ENS name; empty component\"); }\n return comp;\n}\n\nfunction ensNameSplit(name: string): Array {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps: Array = [ ];\n\n if (name.length === 0) { return comps; }\n\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n\n // A separator (i.e. \".\"); copy this component\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n\n // There was a stray separator at the end of the name\n if (last >= bytes.length) { throw new Error(\"invalid ENS name; empty component\"); }\n\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\n\nexport function ensNormalize(name: string): string {\n return ensNameSplit(name).map((comp) => toUtf8String(comp)).join(\".\");\n}\n\nexport function isValidName(name: string): boolean {\n try {\n return (ensNameSplit(name).length !== 0);\n } catch (error) { }\n return false;\n}\n\nexport function namehash(name: string): string {\n /* istanbul ignore if */\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n\n let result: string | Uint8Array = Zeros;\n\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n\n return hexlify(result);\n}\n\nexport function dnsEncode(name: string): string {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n // DNS does not allow components over 63 bytes in length\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n\n }))) + \"00\";\n}\n","import { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { id } from \"./id\";\n\nconst padding = new Uint8Array(32);\npadding.fill(0);\n\nconst NegativeOne: BigNumber = BigNumber.from(-1);\nconst Zero: BigNumber = BigNumber.from(0);\nconst One: BigNumber = BigNumber.from(1);\nconst MaxUint256: BigNumber = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\nfunction hexPadRight(value: BytesLike) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32\n if (padOffset) {\n return hexConcat([ bytes, padding.slice(padOffset) ]);\n }\n return hexlify(bytes);\n}\n\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\n\nconst domainFieldTypes: Record = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\n\nconst domainFieldNames: Array = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\n\nfunction checkString(key: string): (value: any) => string {\n return function (value: any){\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${ JSON.stringify(key) }`, `domain.${ key }`, value);\n }\n return value;\n }\n}\n\nconst domainChecks: Record any> = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function(value: any) {\n try {\n return BigNumber.from(value).toString()\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function(value: any) {\n try {\n return getAddress(value).toLowerCase();\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function(value: any) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) { throw new Error(\"bad length\"); }\n return hexlify(bytes);\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n}\n\nfunction getBaseEncoder(type: string): (value: any) => string {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n\n const boundsUpper = MaxUint256.mask(signed ? (width - 1): width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne): Zero;\n\n return function(value: BigNumberish) {\n const v = BigNumber.from(value);\n\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${ type }`, \"value\", value);\n }\n\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n\n return function(value: BytesLike) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${ type }`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n\n switch (type) {\n case \"address\": return function(value: string) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function(value: boolean) {\n return ((!value) ? hexFalse: hexTrue);\n };\n case \"bytes\": return function(value: BytesLike) {\n return keccak256(value);\n };\n case \"string\": return function(value: string) {\n return id(value);\n };\n }\n\n return null;\n}\n\nfunction encodeType(name: string, fields: Array): string {\n return `${ name }(${ fields.map(({ name, type }) => (type + \" \" + name)).join(\",\") })`;\n}\n\nexport class TypedDataEncoder {\n readonly primaryType: string;\n readonly types: Record>;\n\n readonly _encoderCache: Record string>;\n readonly _types: Record;\n\n constructor(types: Record>) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n\n defineReadOnly(this, \"_encoderCache\", { });\n defineReadOnly(this, \"_types\", { });\n\n // Link struct types to their direct child structs\n const links: Record> = { };\n\n // Link structs to structs which contain them as a child\n const parents: Record> = { };\n\n // Link all subtypes within a given struct\n const subtypes: Record> = { };\n\n Object.keys(types).forEach((type) => {\n links[type] = { };\n parents[type] = [ ];\n subtypes[type] = { }\n });\n\n for (const name in types) {\n\n const uniqueNames: Record = { };\n\n types[name].forEach((field) => {\n\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${ JSON.stringify(field.name) } in ${ JSON.stringify(name) }`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) { return ;}\n\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n } else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${ primaryTypes.map((t) => (JSON.stringify(t))).join(\", \") }`, \"types\", types);\n }\n\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n\n // Check for circular type references\n function checkCircular(type: string, found: Record) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(type) }`, \"types\", types);\n }\n\n found[type] = true;\n\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) { return; }\n\n // Recursively check children\n checkCircular(child, found);\n\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n\n delete found[type];\n }\n checkCircular(this.primaryType, { });\n\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n\n getEncoder(type: string): (value: any) => string {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n\n _getEncoder(type: string): (value: any) => string {\n\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return encoder; }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value: Array) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n\n return keccak256(hexConcat(result));\n };\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value: Record) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) { return keccak256(result); }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n }\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n encodeType(name: string): string {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${ JSON.stringify(name) }`, \"name\", name);\n }\n return result;\n }\n\n encodeData(type: string, value: any): string {\n return this.getEncoder(type)(value);\n }\n\n hashStruct(name: string, value: Record): string {\n return keccak256(this.encodeData(name, value));\n }\n\n encode(value: Record): string {\n return this.encodeData(this.primaryType, value);\n }\n\n hash(value: Record): string {\n return this.hashStruct(this.primaryType, value);\n }\n\n _visit(type: string, value: any, callback: (type: string, data: any) => any): any {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return callback(type, value); }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v: any) => this._visit(subtype, v, callback));\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, >{});\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n visit(value: Record, callback: (type: string, data: any) => any): any {\n return this._visit(this.primaryType, value, callback);\n }\n\n static from(types: Record>): TypedDataEncoder {\n return new TypedDataEncoder(types);\n }\n\n static getPrimaryType(types: Record>): string {\n return TypedDataEncoder.from(types).primaryType;\n }\n\n static hashStruct(name: string, types: Record>, value: Record): string {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n\n static hashDomain(domain: TypedDataDomain): string {\n const domainFields: Array = [ ];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${ JSON.stringify(name) }`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n\n static encode(domain: TypedDataDomain, types: Record>, value: Record): string {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n\n static hash(domain: TypedDataDomain, types: Record>, value: Record): string {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n\n // Replaces all address types with ENS names with their looked up address\n static async resolveNames(domain: TypedDataDomain, types: Record>, value: Record, resolveName: (name: string) => Promise): Promise<{ domain: TypedDataDomain, value: any }> {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n\n // Look up all ENS names\n const ensCache: Record = { };\n\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n\n // Get a list of all the addresses\n encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = await resolveName(name);\n }\n\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n\n // Replace all ENS names with their address\n value = encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && ensCache[value]) { return ensCache[value]; }\n return value;\n });\n\n return { domain, value };\n }\n\n static getPayload(domain: TypedDataDomain, types: Record>, value: Record): any {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n\n // Derive the EIP712Domain Struct reference type\n const domainValues: Record = { };\n const domainTypes: Array<{ name: string, type:string }> = [ ];\n\n domainFieldNames.forEach((name) => {\n const value = (domain)[name];\n if (value == null) { return; }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n\n const encoder = TypedDataEncoder.from(types);\n\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n } else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n\n // Validate the data structures and types\n encoder.encode(value);\n\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type: string, value: any) => {\n\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n\n","export const version = \"wordlists/5.7.0\";\n","\"use strict\";\n\n// This gets overridden by rollup\nconst exportWordlist = false;\n\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport const logger = new Logger(version);\n\nexport abstract class Wordlist {\n readonly locale: string;\n\n constructor(locale: string) {\n logger.checkAbstract(new.target, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n }\n\n abstract getWord(index: number): string;\n abstract getWordIndex(word: string): number;\n\n // Subclasses may override this\n split(mnemonic: string): Array {\n return mnemonic.toLowerCase().split(/ +/g)\n }\n\n // Subclasses may override this\n join(words: Array): string {\n return words.join(\" \");\n }\n\n static check(wordlist: Wordlist): string {\n const words = [];\n for (let i = 0; i < 2048; i++) {\n const word = wordlist.getWord(i);\n /* istanbul ignore if */\n if (i !== wordlist.getWordIndex(word)) { return \"0x\"; }\n words.push(word);\n }\n return id(words.join(\"\\n\") + \"\\n\");\n }\n\n static register(lang: Wordlist, name?: string): void {\n if (!name) { name = lang.locale; }\n\n /* istanbul ignore if */\n if (exportWordlist) {\n try {\n const anyGlobal = (window as any)\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n } catch (error) { }\n }\n }\n\n}\n\n","\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\n\nlet wordlist: Array = null;\n\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langEn = new LangEn();\nWordlist.register(langEn);\n\nexport { langEn };\n","\"use strict\";\n\n// Wordlists\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md\n\n// Browser; only include English by default\n\nimport { Wordlist } from \"./wordlist\";\n\nimport { langEn as en } from \"./lang-en\";\n\nexport const wordlists: { [ locale: string ]: Wordlist } = {\n en: en\n}\n","\"use strict\";\n\n// See: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\n\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexZeroPad, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from \"@ethersproject/strings\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeHmac, ripemd160, sha256, SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst N = BigNumber.from(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\");\n\n\n// \"Bitcoin seed\"\nconst MasterSecret = toUtf8Bytes(\"Bitcoin seed\");\n\nconst HardenedBit = 0x80000000;\n\n// Returns a byte with the MSB bits set\nfunction getUpperMask(bits: number): number {\n return ((1 << bits) - 1) << (8 - bits);\n}\n\n// Returns a byte with the LSB bits set\nfunction getLowerMask(bits: number): number {\n return (1 << bits) - 1;\n}\n\nfunction bytes32(value: BigNumber | Uint8Array): string {\n return hexZeroPad(hexlify(value), 32);\n}\n\nfunction base58check(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nfunction getWordlist(wordlist: string | Wordlist): Wordlist {\n if (wordlist == null) {\n return wordlists[\"en\"];\n }\n\n if (typeof(wordlist) === \"string\") {\n const words = wordlists[wordlist];\n if (words == null) {\n logger.throwArgumentError(\"unknown locale\", \"wordlist\", wordlist);\n }\n return words;\n }\n\n return wordlist;\n}\n\nconst _constructorGuard: any = {};\n\nexport const defaultPath = \"m/44'/60'/0'/0/0\";\n\nexport interface Mnemonic {\n readonly phrase: string;\n readonly path: string;\n readonly locale: string;\n};\n\nexport class HDNode implements ExternallyOwnedAccount {\n readonly privateKey: string;\n readonly publicKey: string;\n\n readonly fingerprint: string;\n readonly parentFingerprint: string;\n\n readonly address: string;\n\n readonly mnemonic?: Mnemonic;\n readonly path: string;\n\n readonly chainCode: string;\n\n readonly index: number;\n readonly depth: number;\n\n /**\n * This constructor should not be called directly.\n *\n * Please use:\n * - fromMnemonic\n * - fromSeed\n */\n constructor(constructorGuard: any, privateKey: string, publicKey: string, parentFingerprint: string, chainCode: string, index: number, depth: number, mnemonicOrPath: Mnemonic | string) {\n /* istanbul ignore if */\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"HDNode constructor cannot be called directly\");\n }\n\n if (privateKey) {\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"privateKey\", signingKey.privateKey);\n defineReadOnly(this, \"publicKey\", signingKey.compressedPublicKey);\n } else {\n defineReadOnly(this, \"privateKey\", null);\n defineReadOnly(this, \"publicKey\", hexlify(publicKey));\n }\n\n defineReadOnly(this, \"parentFingerprint\", parentFingerprint);\n defineReadOnly(this, \"fingerprint\", hexDataSlice(ripemd160(sha256(this.publicKey)), 0, 4));\n\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n defineReadOnly(this, \"chainCode\", chainCode);\n\n defineReadOnly(this, \"index\", index);\n defineReadOnly(this, \"depth\", depth);\n\n if (mnemonicOrPath == null) {\n // From a source that does not preserve the path (e.g. extended keys)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", null);\n\n } else if (typeof(mnemonicOrPath) === \"string\") {\n // From a source that does not preserve the mnemonic (e.g. neutered)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", mnemonicOrPath);\n\n } else {\n // From a fully qualified source\n defineReadOnly(this, \"mnemonic\", mnemonicOrPath);\n defineReadOnly(this, \"path\", mnemonicOrPath.path);\n }\n }\n\n get extendedKey(): string {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n\n if (this.depth >= 256) { throw new Error(\"Depth too large!\"); }\n\n return base58check(concat([\n ((this.privateKey != null) ? \"0x0488ADE4\": \"0x0488B21E\"),\n hexlify(this.depth),\n this.parentFingerprint,\n hexZeroPad(hexlify(this.index), 4),\n this.chainCode,\n ((this.privateKey != null) ? concat([ \"0x00\", this.privateKey ]): this.publicKey),\n ]));\n }\n\n neuter(): HDNode {\n return new HDNode(_constructorGuard, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path);\n }\n\n private _derive(index: number): HDNode {\n if (index > 0xffffffff) { throw new Error(\"invalid index - \" + String(index)); }\n\n // Base path\n let path = this.path;\n if (path) { path += \"/\" + (index & ~HardenedBit); }\n\n const data = new Uint8Array(37);\n\n if (index & HardenedBit) {\n if (!this.privateKey) {\n throw new Error(\"cannot derive child of neutered node\");\n }\n\n // Data = 0x00 || ser_256(k_par)\n data.set(arrayify(this.privateKey), 1);\n\n // Hardened path\n if (path) { path += \"'\"; }\n\n } else {\n // Data = ser_p(point(k_par))\n data.set(arrayify(this.publicKey));\n }\n\n // Data += ser_32(i)\n for (let i = 24; i >= 0; i -= 8) { data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff); }\n\n const I = arrayify(computeHmac(SupportedAlgorithm.sha512, this.chainCode, data));\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n\n // The private key\n let ki: string = null\n\n // The public key\n let Ki: string = null;\n\n if (this.privateKey) {\n ki = bytes32(BigNumber.from(IL).add(this.privateKey).mod(N));\n } else {\n const ek = new SigningKey(hexlify(IL));\n Ki = ek._addPoint(this.publicKey);\n }\n\n let mnemonicOrPath: Mnemonic | string = path;\n\n const srcMnemonic = this.mnemonic;\n if (srcMnemonic) {\n mnemonicOrPath = Object.freeze({\n phrase: srcMnemonic.phrase,\n path: path,\n locale: (srcMnemonic.locale || \"en\")\n });\n }\n\n return new HDNode(_constructorGuard, ki, Ki, this.fingerprint, bytes32(IR), index, this.depth + 1, mnemonicOrPath);\n }\n\n derivePath(path: string): HDNode {\n const components = path.split(\"/\");\n\n if (components.length === 0 || (components[0] === \"m\" && this.depth !== 0)) {\n throw new Error(\"invalid path - \" + path);\n }\n\n if (components[0] === \"m\") { components.shift(); }\n\n let result: HDNode = this;\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n if (component.match(/^[0-9]+'$/)) {\n const index = parseInt(component.substring(0, component.length - 1));\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(HardenedBit + index);\n } else if (component.match(/^[0-9]+$/)) {\n const index = parseInt(component);\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(index);\n } else {\n throw new Error(\"invalid path component - \" + component);\n }\n }\n\n return result;\n }\n\n\n static _fromSeed(seed: BytesLike, mnemonic: Mnemonic): HDNode {\n const seedArray: Uint8Array = arrayify(seed);\n if (seedArray.length < 16 || seedArray.length > 64) { throw new Error(\"invalid seed\"); }\n\n const I: Uint8Array = arrayify(computeHmac(SupportedAlgorithm.sha512, MasterSecret, seedArray));\n\n return new HDNode(_constructorGuard, bytes32(I.slice(0, 32)), null, \"0x00000000\", bytes32(I.slice(32)), 0, 0, mnemonic);\n }\n\n static fromMnemonic(mnemonic: string, password?: string, wordlist?: string | Wordlist): HDNode {\n\n // If a locale name was passed in, find the associated wordlist\n wordlist = getWordlist(wordlist);\n\n // Normalize the case and spacing in the mnemonic (throws if the mnemonic is invalid)\n mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist), wordlist);\n\n return HDNode._fromSeed(mnemonicToSeed(mnemonic, password), {\n phrase: mnemonic,\n path: \"m\",\n locale: wordlist.locale\n });\n }\n\n static fromSeed(seed: BytesLike): HDNode {\n return HDNode._fromSeed(seed, null);\n }\n\n static fromExtendedKey(extendedKey: string): HDNode {\n const bytes = Base58.decode(extendedKey);\n\n if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) {\n logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n\n const depth = bytes[4];\n const parentFingerprint = hexlify(bytes.slice(5, 9));\n const index = parseInt(hexlify(bytes.slice(9, 13)).substring(2), 16);\n const chainCode = hexlify(bytes.slice(13, 45));\n const key = bytes.slice(45, 78);\n\n switch (hexlify(bytes.slice(0, 4))) {\n // Public Key\n case \"0x0488b21e\": case \"0x043587cf\":\n return new HDNode(_constructorGuard, null, hexlify(key), parentFingerprint, chainCode, index, depth, null);\n\n // Private Key\n case \"0x0488ade4\": case \"0x04358394 \":\n if (key[0] !== 0) { break; }\n return new HDNode(_constructorGuard, hexlify(key.slice(1)), null, parentFingerprint, chainCode, index, depth, null);\n }\n\n return logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n}\n\nexport function mnemonicToSeed(mnemonic: string, password?: string): string {\n if (!password) { password = \"\"; }\n\n const salt = toUtf8Bytes(\"mnemonic\" + password, UnicodeNormalizationForm.NFKD);\n\n return pbkdf2(toUtf8Bytes(mnemonic, UnicodeNormalizationForm.NFKD), salt, 2048, 64, \"sha512\");\n}\n\nexport function mnemonicToEntropy(mnemonic: string, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n logger.checkNormalize();\n\n const words = wordlist.split(mnemonic);\n if ((words.length % 3) !== 0) { throw new Error(\"invalid mnemonic\"); }\n\n const entropy = arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));\n\n let offset = 0;\n for (let i = 0; i < words.length; i++) {\n let index = wordlist.getWordIndex(words[i].normalize(\"NFKD\"));\n if (index === -1) { throw new Error(\"invalid mnemonic\"); }\n\n for (let bit = 0; bit < 11; bit++) {\n if (index & (1 << (10 - bit))) {\n entropy[offset >> 3] |= (1 << (7 - (offset % 8)));\n }\n offset++;\n }\n }\n\n const entropyBits = 32 * words.length / 3;\n\n const checksumBits = words.length / 3;\n const checksumMask = getUpperMask(checksumBits);\n\n const checksum = arrayify(sha256(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;\n\n if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {\n throw new Error(\"invalid checksum\");\n }\n\n return hexlify(entropy.slice(0, entropyBits / 8));\n}\n\nexport function entropyToMnemonic(entropy: BytesLike, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n entropy = arrayify(entropy);\n\n if ((entropy.length % 4) !== 0 || entropy.length < 16 || entropy.length > 32) {\n throw new Error(\"invalid entropy\");\n }\n\n const indices: Array = [ 0 ];\n\n let remainingBits = 11;\n for (let i = 0; i < entropy.length; i++) {\n\n // Consume the whole byte (with still more to go)\n if (remainingBits > 8) {\n indices[indices.length - 1] <<= 8;\n indices[indices.length - 1] |= entropy[i];\n\n remainingBits -= 8;\n\n // This byte will complete an 11-bit index\n } else {\n indices[indices.length - 1] <<= remainingBits;\n indices[indices.length - 1] |= entropy[i] >> (8 - remainingBits);\n\n // Start the next word\n indices.push(entropy[i] & getLowerMask(8 - remainingBits));\n\n remainingBits += 3;\n }\n }\n\n // Compute the checksum bits\n const checksumBits = entropy.length / 4;\n const checksum = arrayify(sha256(entropy))[0] & getUpperMask(checksumBits);\n\n // Shift the checksum into the word indices\n indices[indices.length - 1] <<= checksumBits;\n indices[indices.length - 1] |= (checksum >> (8 - checksumBits));\n\n return wordlist.join(indices.map((index) => (wordlist).getWord(index)));\n}\n\nexport function isValidMnemonic(mnemonic: string, wordlist?: Wordlist): boolean {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getAccountPath(index: number): string {\n if (typeof(index) !== \"number\" || index < 0 || index >= HardenedBit || index % 1) {\n logger.throwArgumentError(\"invalid account index\", \"index\", index);\n }\n return `m/44'/60'/${ index }'/0/0`;\n}\n","export const version = \"hdnode/5.7.0\";\n","export const version = \"json-wallets/5.7.0\";\n","\"use strict\";\n\nimport aes from \"aes-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\n\nexport interface _CrowdsaleAccount {\n address: string;\n privateKey: string;\n\n _isCrowdsaleAccount: boolean;\n}\n\nexport class CrowdsaleAccount extends Description<_CrowdsaleAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: string;\n readonly path?: string;\n\n readonly _isCrowdsaleAccount: boolean;\n\n isCrowdsaleAccount(value: any): value is CrowdsaleAccount {\n return !!(value && value._isCrowdsaleAccount);\n }\n}\n\n// See: https://github.com/ethereum/pyethsaletool\nexport function decrypt(json: string, password: Bytes | string): ExternallyOwnedAccount {\n const data = JSON.parse(json);\n\n password = getPassword(password);\n\n // Ethereum Address\n const ethaddr = getAddress(searchPath(data, \"ethaddr\"));\n\n // Encrypted Seed\n const encseed = looseArrayify(searchPath(data, \"encseed\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n\n // Decrypt the seed\n const aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n const seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n\n const seedHexBytes = toUtf8Bytes(seedHex);\n\n const privateKey = keccak256(seedHexBytes);\n\n return new CrowdsaleAccount ({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}\n\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\n\n\nexport function isCrowdsaleWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n return (data.encseed && data.ethaddr);\n}\n\nexport function isKeystoreWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\n\nexport function getJsonWalletAddress(json: string): string {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n } catch (error) { return null; }\n }\n\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n } catch (error) { return null; }\n }\n\n return null;\n}\n\n","\"use strict\";\n\nimport { Bytes } from \"@ethersproject/bytes\";\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\n\nimport { decrypt as decryptCrowdsale } from \"./crowdsale\";\nimport { getJsonWalletAddress, isCrowdsaleWallet, isKeystoreWallet } from \"./inspect\";\nimport { decrypt as decryptKeystore, decryptSync as decryptKeystoreSync, encrypt as encryptKeystore, EncryptOptions, ProgressCallback } from \"./keystore\";\n\nfunction decryptJsonWallet(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n if (isCrowdsaleWallet(json)) {\n if (progressCallback) { progressCallback(0); }\n const account = decryptCrowdsale(json, password)\n if (progressCallback) { progressCallback(1); }\n return Promise.resolve(account);\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystore(json, password, progressCallback);\n }\n\n return Promise.reject(new Error(\"invalid JSON wallet\"));\n}\n\nfunction decryptJsonWalletSync(json: string, password: Bytes | string): ExternallyOwnedAccount {\n if (isCrowdsaleWallet(json)) {\n return decryptCrowdsale(json, password)\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystoreSync(json, password);\n }\n\n throw new Error(\"invalid JSON wallet\");\n}\n\nexport {\n decryptCrowdsale,\n\n decryptKeystore,\n decryptKeystoreSync,\n encryptKeystore,\n\n isCrowdsaleWallet,\n isKeystoreWallet,\n getJsonWalletAddress,\n\n decryptJsonWallet,\n decryptJsonWalletSync,\n\n ProgressCallback,\n EncryptOptions,\n};\n","\"use strict\";\n\nimport aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, Mnemonic, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\n\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Exported Types\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n return (value != null && value.mnemonic && value.mnemonic.phrase);\n}\n\nexport interface _KeystoreAccount {\n address: string;\n privateKey: string;\n mnemonic?: Mnemonic;\n\n _isKeystoreAccount: boolean;\n}\n\nexport class KeystoreAccount extends Description<_KeystoreAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: Mnemonic;\n\n readonly _isKeystoreAccount: boolean;\n\n isKeystoreAccount(value: any): value is KeystoreAccount {\n return !!(value && value._isKeystoreAccount);\n }\n}\n\nexport type ProgressCallback = (percent: number) => void;\n\nexport type EncryptOptions = {\n iv?: BytesLike;\n entropy?: BytesLike;\n client?: string;\n salt?: BytesLike;\n uuid?: string;\n scrypt?: {\n N?: number;\n r?: number;\n p?: number;\n }\n}\n\nfunction _decrypt(data: any, key: Uint8Array, ciphertext: Uint8Array): Uint8Array {\n const cipher = searchPath(data, \"crypto/cipher\");\n if (cipher === \"aes-128-ctr\") {\n const iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"))\n const counter = new aes.Counter(iv);\n\n const aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n\n return null;\n}\n\nfunction _getAccount(data: any, key: Uint8Array): KeystoreAccount {\n const ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n\n const computedMAC = hexlify(keccak256(concat([ key.slice(16, 32), ciphertext ]))).substring(2);\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n\n const privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n\n const mnemonicKey = key.slice(32, 64);\n\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") { check = \"0x\" + check; }\n\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n\n const account: _KeystoreAccount = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n };\n\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n const mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n const mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n\n const path = searchPath(data, \"x-ethers/path\") || defaultPath;\n const locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n\n const entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n\n try {\n const mnemonic = entropyToMnemonic(entropy, locale);\n const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n\n account.mnemonic = node.mnemonic;\n\n } catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n\n return new KeystoreAccount(account);\n}\n\ntype ScryptFunc = (pw: Uint8Array, salt: Uint8Array, n: number, r: number, p: number, dkLen: number, callback?: ProgressCallback) => T;\ntype Pbkdf2Func = (pw: Uint8Array, salt: Uint8Array, c: number, dkLen: number, prfFunc: string) => T;\n\nfunction pbkdf2Sync(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Uint8Array {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction pbkdf2(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Promise {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction _computeKdfKey(data: any, password: Bytes | string, pbkdf2Func: Pbkdf2Func, scryptFunc: ScryptFunc, progressCallback?: ProgressCallback): T {\n const passwordBytes = getPassword(password);\n\n const kdf = searchPath(data, \"crypto/kdf\");\n\n if (kdf && typeof(kdf) === \"string\") {\n const throwError = function(name: string, value: any): never {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n }\n\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n const N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n const r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n const p = parseInt(searchPath(data, \"crypto/kdfparams/p\"));\n\n // Check for all required parameters\n if (!N || !r || !p) { throwError(\"kdf\", kdf); }\n\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) { throwError(\"N\", N); }\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n\n } else if (kdf.toLowerCase() === \"pbkdf2\") {\n\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n\n let prfFunc: string = null;\n const prf = searchPath(data, \"crypto/kdfparams/prf\");\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n } else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n } else {\n throwError(\"prf\", prf);\n }\n\n const count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);\n }\n }\n\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\n\n\nexport function decryptSync(json: string, password: Bytes | string): KeystoreAccount {\n const data = JSON.parse(json);\n\n const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n return _getAccount(data, key);\n}\n\nexport async function decrypt(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n const data = JSON.parse(json);\n\n const key = await _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n return _getAccount(data, key);\n}\n\n\nexport function encrypt(account: ExternallyOwnedAccount, password: Bytes | string, options?: EncryptOptions, progressCallback?: ProgressCallback): Promise {\n\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n }\n\n // Check the mnemonic (if any) matches the private key\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n\n } catch (e) {\n return Promise.reject(e);\n }\n\n // The options are optional, so adjust the call as needed\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) { options = {}; }\n\n const privateKey: Uint8Array = arrayify(account.privateKey);\n const passwordBytes = getPassword(password);\n\n let entropy: Uint8Array = null\n let path: string = null;\n let locale: string = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n\n let client = options.client;\n if (!client) { client = \"ethers.js\"; }\n\n // Check/generate the salt\n let salt: Uint8Array = null;\n if (options.salt) {\n salt = arrayify(options.salt);\n } else {\n salt = randomBytes(32);;\n }\n\n // Override initialization vector\n let iv: Uint8Array = null;\n if (options.iv) {\n iv = arrayify(options.iv);\n if (iv.length !== 16) { throw new Error(\"invalid iv\"); }\n } else {\n iv = randomBytes(16);\n }\n\n // Override the uuid\n let uuidRandom: Uint8Array = null;\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n if (uuidRandom.length !== 16) { throw new Error(\"invalid uuid\"); }\n } else {\n uuidRandom = randomBytes(16);\n }\n\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) { N = options.scrypt.N; }\n if (options.scrypt.r) { r = options.scrypt.r; }\n if (options.scrypt.p) { p = options.scrypt.p; }\n }\n\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => {\n key = arrayify(key);\n\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n\n // This will be used to encrypt the mnemonic phrase (if any)\n const mnemonicKey = key.slice(32, 64);\n\n // Encrypt the private key\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]))\n\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data: { [key: string]: any } = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (entropy) {\n const mnemonicIv = randomBytes(16);\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\"\n );\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: (\"UTC--\" + timestamp + \"--\" + data.address),\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n\n return JSON.stringify(data);\n });\n}\n","\"use strict\";\n\nimport { arrayify, Bytes, BytesLike, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings';\n\nexport function looseArrayify(hexString: string): Uint8Array {\n if (typeof(hexString) === 'string' && hexString.substring(0, 2) !== '0x') {\n hexString = '0x' + hexString;\n }\n return arrayify(hexString);\n}\n\nexport function zpad(value: String | number, length: number): String {\n value = String(value);\n while (value.length < length) { value = '0' + value; }\n return value;\n}\n\nexport function getPassword(password: Bytes | string): Uint8Array {\n if (typeof(password) === 'string') {\n return toUtf8Bytes(password, UnicodeNormalizationForm.NFKC);\n }\n return arrayify(password);\n}\n\nexport function searchPath(object: any, path: string): string {\n let currentChild = object;\n\n const comps = path.toLowerCase().split('/');\n for (let i = 0; i < comps.length; i++) {\n\n // Search for a child object with a case-insensitive matching key\n let matchingChild = null;\n for (const key in currentChild) {\n if (key.toLowerCase() === comps[i]) {\n matchingChild = currentChild[key];\n break;\n }\n }\n\n // Didn't find one. :'(\n if (matchingChild === null) {\n return null;\n }\n\n // Now check this child...\n currentChild = matchingChild;\n }\n\n return currentChild;\n}\n\n// See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4)\nexport function uuidV4(randomBytes: BytesLike): string {\n const bytes = arrayify(randomBytes);\n\n // Section: 4.1.3:\n // - time_hi_and_version[12:16] = 0b0100\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n\n // Section 4.4\n // - clock_seq_hi_and_reserved[6] = 0b0\n // - clock_seq_hi_and_reserved[7] = 0b1\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n const value = hexlify(bytes);\n\n return [\n value.substring(2, 10),\n value.substring(10, 14),\n value.substring(14, 18),\n value.substring(18, 22),\n value.substring(22, 34),\n ].join(\"-\");\n}\n\n","\"use strict\";\n\nimport sha3 from \"js-sha3\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nexport function keccak256(data: BytesLike): string {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n","\"use strict\";\n\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\n\nconst LogLevels: { [ name: string ]: number } = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\n\nimport { version } from \"./_version\";\n\nlet _globalLogger: Logger = null;\n\nfunction _checkNormalize(): string {\n try {\n const missing: Array = [ ];\n\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n };\n } catch(error) {\n missing.push(form);\n }\n });\n\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\")\n }\n } catch (error) {\n return error.message;\n }\n\n return null;\n}\n\nconst _normalizeError = _checkNormalize();\n\nexport enum LogLevel {\n DEBUG = \"DEBUG\",\n INFO = \"INFO\",\n WARNING = \"WARNING\",\n ERROR = \"ERROR\",\n OFF = \"OFF\"\n}\n\n\nexport enum ErrorCode {\n\n ///////////////////\n // Generic Errors\n\n // Unknown Error\n UNKNOWN_ERROR = \"UNKNOWN_ERROR\",\n\n // Not Implemented\n NOT_IMPLEMENTED = \"NOT_IMPLEMENTED\",\n\n // Unsupported Operation\n // - operation\n UNSUPPORTED_OPERATION = \"UNSUPPORTED_OPERATION\",\n\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n NETWORK_ERROR = \"NETWORK_ERROR\",\n\n // Some sort of bad response from the server\n SERVER_ERROR = \"SERVER_ERROR\",\n\n // Timeout\n TIMEOUT = \"TIMEOUT\",\n\n ///////////////////\n // Operational Errors\n\n // Buffer Overrun\n BUFFER_OVERRUN = \"BUFFER_OVERRUN\",\n\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n NUMERIC_FAULT = \"NUMERIC_FAULT\",\n\n\n ///////////////////\n // Argument Errors\n\n // Missing new operator to an object\n // - name: The name of the class\n MISSING_NEW = \"MISSING_NEW\",\n\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n INVALID_ARGUMENT = \"INVALID_ARGUMENT\",\n\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n MISSING_ARGUMENT = \"MISSING_ARGUMENT\",\n\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n UNEXPECTED_ARGUMENT = \"UNEXPECTED_ARGUMENT\",\n\n\n ///////////////////\n // Blockchain Errors\n\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n CALL_EXCEPTION = \"CALL_EXCEPTION\",\n\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n INSUFFICIENT_FUNDS = \"INSUFFICIENT_FUNDS\",\n\n // Nonce has already been used\n // - transaction: the transaction attempted\n NONCE_EXPIRED = \"NONCE_EXPIRED\",\n\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n REPLACEMENT_UNDERPRICED = \"REPLACEMENT_UNDERPRICED\",\n\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n UNPREDICTABLE_GAS_LIMIT = \"UNPREDICTABLE_GAS_LIMIT\",\n\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n TRANSACTION_REPLACED = \"TRANSACTION_REPLACED\",\n\n\n ///////////////////\n // Interaction Errors\n\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ACTION_REJECTED = \"ACTION_REJECTED\",\n};\n\nconst HEX = \"0123456789abcdef\";\n\nexport class Logger {\n readonly version: string;\n\n static errors = ErrorCode;\n\n static levels = LogLevel;\n\n constructor(version: string) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n\n _log(logLevel: LogLevel, args: Array): void {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) { return; }\n console.log.apply(console, args);\n }\n\n debug(...args: Array): void {\n this._log(Logger.levels.DEBUG, args);\n }\n\n info(...args: Array): void {\n this._log(Logger.levels.INFO, args);\n }\n\n warn(...args: Array): void {\n this._log(Logger.levels.WARNING, args);\n }\n\n makeError(message: string, code?: ErrorCode, params?: any): Error {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, { });\n }\n\n if (!code) { code = Logger.errors.UNKNOWN_ERROR; }\n if (!params) { params = {}; }\n\n const messageDetails: Array = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n } else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n } catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${ code }`);\n messageDetails.push(`version=${ this.version }`);\n\n const reason = message;\n\n let url = \"\";\n\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n\n switch (fault) {\n case \"overflow\": case \"underflow\": case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\": case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n\n // @TODO: Any??\n const error: any = new Error(message);\n error.reason = reason;\n error.code = code\n\n Object.keys(params).forEach(function(key) {\n error[key] = params[key];\n });\n\n return error;\n }\n\n throwError(message: string, code?: ErrorCode, params?: any): never {\n throw this.makeError(message, code, params);\n }\n\n throwArgumentError(message: string, name: string, value: any): never {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n\n assert(condition: any, message: string, code?: ErrorCode, params?: any): void {\n if (!!condition) { return; }\n this.throwError(message, code, params);\n }\n\n assertArgument(condition: any, message: string, name: string, value: any): void {\n if (!!condition) { return; }\n this.throwArgumentError(message, name, value);\n }\n\n checkNormalize(message?: string): void {\n if (message == null) { message = \"platform missing String.prototype.normalize\"; }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n\n checkSafeUint53(value: number, message?: string): void {\n if (typeof(value) !== \"number\") { return; }\n\n if (message == null) { message = \"value not safe\"; }\n\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n\n checkArgumentCount(count: number, expectedCount: number, message?: string): void {\n if (message) {\n message = \": \" + message;\n } else {\n message = \"\";\n }\n\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n\n checkNew(target: any, kind: any): void {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n checkAbstract(target: any, kind: any): void {\n if (target === kind) {\n this.throwError(\n \"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { name: target.name, operation: \"new\" }\n );\n } else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n static globalLogger(): Logger {\n if (!_globalLogger) { _globalLogger = new Logger(version); }\n return _globalLogger;\n }\n\n static setCensorship(censorship: boolean, permanent?: boolean): void {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n if (_permanentCensorErrors) {\n if (!censorship) { return; }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n\n static setLogLevel(logLevel: LogLevel): void {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n\n static from(version: string): Logger {\n return new Logger(version);\n }\n}\n","export const version = \"logger/5.7.0\";\n","\"use strict\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac, SupportedAlgorithm } from \"@ethersproject/sha2\";\n\nexport function pbkdf2(password: BytesLike, salt: BytesLike, iterations: number, keylen: number, hashAlgorithm: string): string {\n password = arrayify(password);\n salt = arrayify(salt);\n let hLen;\n let l = 1;\n const DK = new Uint8Array(keylen)\n const block1 = new Uint8Array(salt.length + 4)\n block1.set(salt);\n //salt.copy(block1, 0, 0, salt.length)\n\n let r: number;\n let T: Uint8Array;\n\n for (let i = 1; i <= l; i++) {\n //block1.writeUInt32BE(i, salt.length)\n block1[salt.length] = (i >> 24) & 0xff;\n block1[salt.length + 1] = (i >> 16) & 0xff;\n block1[salt.length + 2] = (i >> 8) & 0xff;\n block1[salt.length + 3] = i & 0xff;\n\n //let U = createHmac(password).update(block1).digest();\n let U = arrayify(computeHmac(hashAlgorithm, password, block1));\n\n if (!hLen) {\n hLen = U.length\n T = new Uint8Array(hLen)\n l = Math.ceil(keylen / hLen)\n r = keylen - (l - 1) * hLen\n }\n\n //U.copy(T, 0, 0, hLen)\n T.set(U);\n\n\n for (let j = 1; j < iterations; j++) {\n //U = createHmac(password).update(U).digest();\n U = arrayify(computeHmac(hashAlgorithm, password, U));\n for (let k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n\n const destPos = (i - 1) * hLen\n const len = (i === l ? r : hLen)\n //T.copy(DK, destPos, 0, len)\n DK.set(arrayify(T).slice(0, len), destPos);\n }\n\n return hexlify(DK)\n}\n\n","\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function defineReadOnly(object: T, name: K, value: T[K]): void {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor: any, key: string): T {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) { return ctor[key]; }\n if (!ctor.prototype || typeof(ctor.prototype) !== \"object\") { break; }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\n\nexport type Deferrable = {\n [ K in keyof T ]: T[K] | Promise;\n}\n\n\ntype Result = { key: string, value: any};\n\nexport async function resolveProperties(object: Readonly>): Promise {\n const promises: Array> = Object.keys(object).map((key) => {\n const value = object[>key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n\n const results = await Promise.all(promises);\n\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, { });\n}\n\nexport function checkProperties(object: any, properties: { [ name: string ]: boolean }): void {\n if (!object || typeof(object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\n\nexport function shallowCopy(object: T): T {\n const result: any = {};\n for (const key in object) { result[key] = object[key]; }\n return result;\n}\n\nconst opaque: { [key: string]: boolean } = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\n\nfunction _isFrozen(object: any): boolean {\n\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof(object)]) { return true; }\n\n if (Array.isArray(object) || typeof(object) === \"object\") {\n if (!Object.isFrozen(object)) { return false; }\n\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value: any = null;\n try {\n value = object[keys[i]];\n } catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n\n if (!_isFrozen(value)) { return false; }\n }\n\n return true;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object: any): any {\n\n if (_isFrozen(object)) { return object; }\n\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n\n if (typeof(object) === \"object\") {\n const result: { [ key: string ]: any } = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) { continue; }\n defineReadOnly(result, key, deepCopy(value));\n }\n\n return result;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\nexport function deepCopy(object: T): T {\n return _deepCopy(object);\n}\n\nexport class Description {\n constructor(info: { [ K in keyof T ]: T[K] }) {\n for (const key in info) {\n (this)[key] = deepCopy(info[key]);\n }\n }\n}\n","export const version = \"properties/5.7.0\";\n","\"use strict\";\n\nexport function shuffled(array: Array): Array {\n array = array.slice();\n\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n\n return array;\n}\n","export const version = \"random/5.7.0\";\n","\"use strict\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Debugging line for testing browser lib in node\n//const window = { crypto: { getRandomValues: () => { } } };\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis\nfunction getGlobal(): any {\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n};\n\nconst anyGlobal = getGlobal();\n\nlet crypto: any = anyGlobal.crypto || anyGlobal.msCrypto;\nif (!crypto || !crypto.getRandomValues) {\n\n logger.warn(\"WARNING: Missing strong random number source\");\n\n crypto = {\n getRandomValues: function(buffer: Uint8Array): Uint8Array {\n return logger.throwError(\"no secure random source avaialble\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"crypto.getRandomValues\"\n });\n }\n };\n}\n\nexport function randomBytes(length: number): Uint8Array {\n if (length <= 0 || length > 1024 || (length % 1) || length != length) {\n logger.throwArgumentError(\"invalid length\", \"length\", length);\n }\n\n const result = new Uint8Array(length);\n crypto.getRandomValues(result);\n return arrayify(result);\n};\n","export const version = \"rlp/5.7.0\";\n","\"use strict\";\n\n//See: https://github.com/ethereum/wiki/wiki/RLP\n\nimport { arrayify, BytesLike, hexlify, isBytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction arrayifyInteger(value: number): Array {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\n\nfunction unarrayifyInteger(data: Uint8Array, offset: number, length: number): number {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\n\nfunction _encode(object: Array | string): Array {\n if (Array.isArray(object)) {\n let payload: Array = [];\n object.forEach(function(child) {\n payload = payload.concat(_encode(child));\n });\n\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length)\n return payload;\n }\n\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n\n return length.concat(payload);\n\n }\n\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n\n const data: Array = Array.prototype.slice.call(arrayify(object));\n\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n\n } else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n\n return length.concat(data);\n}\n\nexport function encode(object: any): string {\n return hexlify(_encode(object));\n}\n\ntype Decoded = {\n result: any;\n consumed: number;\n};\n\nfunction _decodeChildren(data: Uint8Array, offset: number, childOffset: number, length: number): Decoded {\n const result = [];\n\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n\n result.push(decoded.result);\n\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n }\n\n return {consumed: (1 + length), result: result};\n}\n\n// returns { consumed: number, result: Object }\nfunction _decode(data: Uint8Array, offset: number): { consumed: number, result: any } {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n\n } else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1, length);\n\n } else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result }\n\n } else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result }\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\n\nexport function decode(data: BytesLike): any {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n\n","export const version = \"sha2/5.7.0\";\n","\"use strict\";\n\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { SupportedAlgorithm } from \"./types\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function ripemd160(data: BytesLike): string {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function sha256(data: BytesLike): string {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function sha512(data: BytesLike): string {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function computeHmac(algorithm: SupportedAlgorithm, key: BytesLike, data: BytesLike): string {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n\n return \"0x\" + hash.hmac((hash)[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n\n","export enum SupportedAlgorithm { sha256 = \"sha256\", sha512 = \"sha512\" };\n\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (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}\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","import _ec from \"elliptic\";\nvar EC = _ec.ec;\nexport { EC };\n//# sourceMappingURL=elliptic.js.map","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","export const version = \"signing-key/5.7.0\";\n","\"use strict\";\n\nimport { EC } from \"./elliptic\";\n\nimport { arrayify, BytesLike, hexDataLength, hexlify, hexZeroPad, Signature, SignatureLike, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nlet _curve: EC = null\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\n\nexport class SigningKey {\n\n readonly curve: string;\n\n readonly privateKey: string;\n readonly publicKey: string;\n readonly compressedPublicKey: string;\n\n //readonly address: string;\n\n readonly _isSigningKey: boolean;\n\n constructor(privateKey: BytesLike) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n\n _addPoint(other: BytesLike): string {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n\n signDigest(digest: BytesLike): Signature {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n })\n }\n\n computeSharedSecret(otherKey: BytesLike): string {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n\n static isSigningKey(value: any): value is SigningKey {\n return !!(value && value._isSigningKey);\n }\n}\n\nexport function recoverPublicKey(digest: BytesLike, signature: SignatureLike): string {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\n\nexport function computePublicKey(key: BytesLike, compressed?: boolean): string {\n const bytes = arrayify(key);\n\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n\n } else if (bytes.length === 33) {\n if (compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n\n } else if (bytes.length === 65) {\n if (!compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n\n","export const version = \"solidity/5.7.0\";\n","\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, zeroPad } from \"@ethersproject/bytes\";\nimport { keccak256 as hashKeccak256 } from \"@ethersproject/keccak256\";\nimport { sha256 as hashSha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nconst regexBytes = new RegExp(\"^bytes([0-9]+)$\");\nconst regexNumber = new RegExp(\"^(u?int)([0-9]*)$\");\nconst regexArray = new RegExp(\"^(.*)\\\\[([0-9]*)\\\\]$\");\n\nconst Zeros = \"0000000000000000000000000000000000000000000000000000000000000000\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nfunction _pack(type: string, value: any, isArray?: boolean): Uint8Array {\n switch(type) {\n case \"address\":\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n case \"string\":\n return toUtf8Bytes(value);\n case \"bytes\":\n return arrayify(value);\n case \"bool\":\n value = (value ? \"0x01\": \"0x00\");\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n }\n\n let match = type.match(regexNumber);\n if (match) {\n //let signed = (match[1] === \"int\")\n let size = parseInt(match[2] || \"256\")\n\n if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) {\n logger.throwArgumentError(\"invalid number type\", \"type\", type)\n }\n\n if (isArray) { size = 256; }\n\n value = BigNumber.from(value).toTwos(size);\n\n return zeroPad(value, size / 8);\n }\n\n match = type.match(regexBytes);\n if (match) {\n const size = parseInt(match[1]);\n\n if (String(size) !== match[1] || size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes type\", \"type\", type)\n }\n if (arrayify(value).byteLength !== size) {\n logger.throwArgumentError(`invalid value for ${ type }`, \"value\", value)\n }\n if (isArray) { return arrayify((value + Zeros).substring(0, 66)); }\n return value;\n }\n\n match = type.match(regexArray);\n if (match && Array.isArray(value)) {\n const baseType = match[1];\n const count = parseInt(match[2] || String(value.length));\n if (count != value.length) {\n logger.throwArgumentError(`invalid array length for ${ type }`, \"value\", value)\n }\n const result: Array = [];\n value.forEach(function(value) {\n result.push(_pack(baseType, value, true));\n });\n return concat(result);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", type)\n}\n\n// @TODO: Array Enum\n\nexport function pack(types: ReadonlyArray, values: ReadonlyArray) {\n if (types.length != values.length) {\n logger.throwArgumentError(\"wrong number of values; expected ${ types.length }\", \"values\", values)\n }\n const tight: Array = [];\n types.forEach(function(type, index) {\n tight.push(_pack(type, values[index]));\n });\n return hexlify(concat(tight));\n}\n\nexport function keccak256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashKeccak256(pack(types, values));\n}\n\nexport function sha256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashSha256(pack(types, values));\n}\n","\"use strict\";\n\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\n\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\n\n\nexport function formatBytes32String(text: string): string {\n\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n\n // Check we have room for null-termination\n if (bytes.length > 31) { throw new Error(\"bytes32 string must be less than 32 bytes\"); }\n\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([ bytes, HashZero ]).slice(0, 32));\n}\n\nexport function parseBytes32String(bytes: BytesLike): string {\n const data = arrayify(bytes);\n\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) { throw new Error(\"invalid bytes32 - not 32 bytes long\"); }\n if (data[31] !== 0) { throw new Error(\"invalid bytes32 string - no null terminator\"); }\n\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) { length--; }\n\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n\n","\"use strict\";\n\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\n\ntype Ranged = {\n l: number, // Lo value\n h: number, // High value (less the lo)\n d?: number, // Delta/stride (default: 1)\n s?: number, // Shift (default: 1)\n e?: Array // Exceptions to skip\n};\n\ntype Table = { [ src: number ]: Array };\n\nfunction bytes2(data: string): Array {\n if ((data.length % 4) !== 0) { throw new Error(\"bad data\"); }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\n\nfunction createTable(data: string, func?: (value: string) => Array): Table {\n if (!func) {\n func = function(value: string) { return [ parseInt(value, 16) ]; }\n }\n\n let lo = 0;\n\n let result: Table = { };\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n\n return result;\n}\n\nfunction createRangeTable(data: string): Array {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n } else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\n\nfunction matchMap(value: number, ranges: Array): Ranged {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) { continue; }\n return range;\n }\n }\n return null;\n}\n\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\n\nconst Table_B_2_ranges: Array = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [ 23 ], l: 127 },\n { h: 54, s: 1, e: [ 48 ], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [ 2, 6, 8 ], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [ 18, 24, 66 ], l: 19, d: 2 },\n { h: 26, s: 32, e: [ 17 ], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [ 38 ], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [ 1, 4, 5, 7, 8, 11, 12, 17 ], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [ 2, 7, 8, 17 ], l: 52 },\n { h: 24, s: -120023, e: [ 2, 7, 13, 15, 16, 17 ], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [ 17 ], l: 56 },\n { h: 24, s: -119601, e: [ 17 ], l: 58 },\n { h: 24, s: -119659, e: [ 17 ], l: 58 },\n { h: 24, s: -119717, e: [ 17 ], l: 58 },\n { h: 24, s: -119775, e: [ 17 ], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\n\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\n\n\nfunction flatten(values: Array>): Array {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, [ ]);\n}\n\nexport function _nameprepTableA1(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\n\nexport function _nameprepTableB2(codepoint: number): Array {\n let range = matchMap(codepoint, Table_B_2_ranges);\n if (range) { return [ codepoint + range.s ]; }\n\n let codes = Table_B_2_lut_abs[codepoint];\n if (codes) { return codes; }\n\n let shift = Table_B_2_lut_rel[codepoint];\n if (shift) { return [ codepoint + shift[0] ]; }\n\n let complex = Table_B_2_complex[codepoint];\n if (complex) { return complex; }\n\n return null;\n}\n\nexport function _nameprepTableC(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_C_ranges);\n}\n\nexport function nameprep(value: string): string {\n\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) { return value.toLowerCase(); }\n\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) { return [ ]; }\n if (code >= 0xfe00 && code <= 0xfe0f) { return [ ]; }\n\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) { return codesTableB2; }\n\n // No Substitution\n return [ code ];\n }));\n\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n });\n\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n });\n\n // IDNA extras\n let name = _toUtf8String(codes);\n\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n\n return name;\n}\n\n","export const version = \"strings/5.7.0\";\n","\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n\nexport enum UnicodeNormalizationForm {\n current = \"\",\n NFC = \"NFC\",\n NFD = \"NFD\",\n NFKC = \"NFKC\",\n NFKD = \"NFKD\"\n};\n\nexport enum Utf8ErrorReason {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n UNEXPECTED_CONTINUE = \"unexpected continuation byte\",\n\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n BAD_PREFIX = \"bad codepoint prefix\",\n\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n OVERRUN = \"string overrun\",\n\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n MISSING_CONTINUE = \"missing continuation byte\",\n\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n OUT_OF_RANGE = \"out of UTF-8 range\",\n\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n UTF16_SURROGATE = \"UTF-16 surrogate\",\n\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n OVERLONG = \"overlong representation\",\n};\n\n\nexport type Utf8ErrorFunc = (reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number) => number;\n\nfunction errorFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n return logger.throwArgumentError(`invalid codepoint at offset ${ offset }; ${ reason }`, \"bytes\", bytes);\n}\n\nfunction ignoreFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) { break; }\n i++;\n }\n return i;\n }\n\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n\n // Nothing to skip\n return 0;\n}\n\nfunction replaceFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n\n // Put the replacement character into the output\n output.push(0xfffd);\n\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n\n// Common error handing strategies\nexport const Utf8ErrorFuncs: { [ name: string ]: Utf8ErrorFunc } = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes: BytesLike, onError?: Utf8ErrorFunc): Array {\n if (onError == null) { onError = Utf8ErrorFuncs.error; }\n\n bytes = arrayify(bytes);\n\n const result: Array = [];\n let i = 0;\n\n // Invalid bytes are ignored\n while(i < bytes.length) {\n\n const c = bytes[i++];\n\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n\n // 1110 xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n\n } else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n } else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n };\n\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n\n // See above loop for invalid continuation byte\n if (res === null) { continue; }\n\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n result.push(res);\n }\n\n return result;\n}\n\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Uint8Array {\n\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n\n if (c < 0x80) {\n result.push(c);\n\n } else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n\n } else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n\n } else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n\n return arrayify(result);\n};\n\nfunction escapeChar(value: number) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\n\nexport function _toEscapedUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\"\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\n\nexport function _toUtf8String(codePoints: Array): string {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode(\n (((codePoint >> 10) & 0x3ff) + 0xd800),\n ((codePoint & 0x3ff) + 0xdc00)\n );\n }).join(\"\");\n}\n\nexport function toUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\n\nexport function toUtf8CodePoints(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Array {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n","export const version = \"transactions/5.7.0\";\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, DataOptions, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, SignatureLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type AccessList = Array<{ address: string, storageKeys: Array }>;\n\n// Input allows flexibility in describing an access list\nexport type AccessListish = AccessList |\n Array<[ string, Array ]> |\n Record>;\n\nexport enum TransactionTypes {\n legacy = 0,\n eip2930 = 1,\n eip1559 = 2,\n};\n\nexport type UnsignedTransaction = {\n to?: string;\n nonce?: number;\n\n gasLimit?: BigNumberish;\n gasPrice?: BigNumberish;\n\n data?: BytesLike;\n value?: BigNumberish;\n chainId?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessListish;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n}\n\nexport interface Transaction {\n hash?: string;\n\n to?: string;\n from?: string;\n nonce: number;\n\n gasLimit: BigNumber;\n gasPrice?: BigNumber;\n\n data: string;\n value: BigNumber;\n chainId: number;\n\n r?: string;\n s?: string;\n v?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessList;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumber;\n maxFeePerGas?: BigNumber;\n}\n\n///////////////////////////////\n\nfunction handleAddress(value: string): string {\n if (value === \"0x\") { return null; }\n return getAddress(value);\n}\n\nfunction handleNumber(value: string): BigNumber {\n if (value === \"0x\") { return Zero; }\n return BigNumber.from(value);\n}\n\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, type: true, value: true\n}\n\nexport function computeAddress(key: BytesLike | string): string {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\n\nexport function recoverAddress(digest: BytesLike, signature: SignatureLike): string {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\n\nfunction formatNumber(value: BigNumberish, name: string): Uint8Array {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\n\nfunction accessSetify(addr: string, storageKeys: Array): { address: string,storageKeys: Array } {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${ addr }:${ index }]`, storageKey)\n }\n return storageKey.toLowerCase();\n })\n };\n}\n\nexport function accessListify(value: AccessListish): AccessList {\n if (Array.isArray(value)) {\n return (] | { address: string, storageKeys: Array}>>value).map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${ index }]`, set);\n }\n return accessSetify(set[0], set[1])\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n\n const result: Array<{ address: string, storageKeys: Array }> = Object.keys(value).map((addr) => {\n const storageKeys: Record = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, >{ });\n return accessSetify(addr, Object.keys(storageKeys).sort())\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\n\nfunction formatAccessList(value: AccessListish): Array<[ string, Array ]> {\n return accessListify(value).map((set) => [ set.address, set.storageKeys ]);\n}\n\nfunction _serializeEip1559(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x02\", RLP.encode(fields)]);\n}\n\nfunction _serializeEip2930(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x01\", RLP.encode(fields)]);\n}\n\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n checkProperties(transaction, allowedTransactionKeys);\n\n const raw: Array = [];\n\n transactionFields.forEach(function(fieldInfo) {\n let value = (transaction)[fieldInfo.name] || ([]);\n const options: DataOptions = { };\n if (fieldInfo.numeric) { options.hexPad = \"left\"; }\n value = arrayify(hexlify(value, options));\n\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value );\n }\n }\n\n raw.push(hexlify(value));\n });\n\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n\n if (typeof(chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n\n } else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n } else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n\n return RLP.encode(raw);\n}\n\nexport function serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ transaction.type }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\n\nfunction _parseEipSignature(tx: Transaction, fields: Array, serialize: (tx: UnsignedTransaction) => string): void {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) { throw new Error(\"bad recid\"); }\n tx.v = recid;\n } catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n } catch (error) { }\n}\n\nfunction _parseEip1559(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx: Transaction = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n\n return tx;\n}\n\nfunction _parseEip2930(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n\n const tx: Transaction = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n\n return tx;\n}\n\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction: Uint8Array): Transaction {\n const transaction = RLP.decode(rawTransaction);\n\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n\n const tx: Transaction = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n\n // Legacy unsigned transaction\n if (transaction.length === 6) { return tx; }\n\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n\n } catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n\n } else {\n // Signed Transaction\n\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) { tx.chainId = 0; }\n\n let recoveryParam = tx.v - 27;\n\n const raw = transaction.slice(0, 6);\n\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n } catch (error) { }\n\n tx.hash = keccak256(rawTransaction);\n }\n\n tx.type = null;\n\n return tx;\n}\n\n\nexport function parse(rawTransaction: BytesLike): Transaction {\n const payload = arrayify(rawTransaction);\n\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) { return _parse(payload); }\n\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ payload[0] }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n\n","\"use strict\";\n\nimport { arrayify, BytesLike, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BigNumber, BigNumberish, isBigNumberish } from \"./bignumber\";\n\nconst _constructorGuard = { };\n\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\n\nfunction throwFault(message: string, fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value !== undefined) { params.value = value; }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) { zeros += zeros; }\n\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals: BigNumberish): string {\n\n if (typeof(decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n } catch (e) { }\n }\n\n if (typeof(decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\n\nexport function formatFixed(value: BigNumberish, decimals?: string | BigNumberish): string {\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n\n const negative = value.lt(Zero);\n if (negative) { value = value.mul(NegativeOne); }\n\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) { fraction = \"0\" + fraction; }\n\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n } else {\n value = whole + \".\" + fraction;\n }\n\n if (negative) { value = \"-\" + value; }\n\n return value;\n}\n\nexport function parseFixed(value: string, decimals?: BigNumberish): BigNumber {\n\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n if (typeof(value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) { value = value.substring(1); }\n\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n\n let whole = comps[0], fraction = comps[1];\n if (!whole) { whole = \"0\"; }\n if (!fraction) { fraction = \"0\"; }\n\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") { fraction = \"0\"; }\n\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) { fraction += \"0\"; }\n\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n\n if (negative) { wei = wei.mul(NegativeOne); }\n\n return wei;\n}\n\n\nexport class FixedFormat {\n readonly signed: boolean;\n readonly width: number;\n readonly decimals: number;\n readonly name: string;\n readonly _multiplier: string;\n\n constructor(constructorGuard: any, signed: boolean, width: number, decimals: number) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n\n this.name = (signed ? \"\": \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n\n this._multiplier = getMultiplier(decimals);\n\n Object.freeze(this);\n }\n\n static from(value: any): FixedFormat {\n if (value instanceof FixedFormat) { return value; }\n\n if (typeof(value) === \"number\") {\n value = `fixed128x${value}`\n }\n\n let signed = true;\n let width = 128;\n let decimals = 18;\n\n if (typeof(value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n } else if (value === \"ufixed\") {\n signed = false;\n } else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) { logger.throwArgumentError(\"invalid fixed format\", \"format\", value); }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n } else if (value) {\n const check = (key: string, type: string, defaultValue: any): any => {\n if (value[key] == null) { return defaultValue; }\n if (typeof(value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type +\")\", \"format.\" + key, value[key]);\n }\n return value[key];\n }\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\n\nexport class FixedNumber {\n readonly format: FixedFormat;\n readonly _hex: string;\n readonly _value: string;\n\n readonly _isFixedNumber: boolean;\n\n constructor(constructorGuard: any, hex: string, value: string, format?: FixedFormat) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.format = format;\n this._hex = hex;\n this._value = value;\n\n this._isFixedNumber = true;\n\n Object.freeze(this);\n }\n\n _checkFormat(other: FixedNumber): void {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n\n addUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n\n subUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n\n mulUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n\n divUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n\n floor(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n ceiling(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n // @TODO: Support other rounding algorithms\n round(decimals?: number): FixedNumber {\n if (decimals == null) { decimals = 0; }\n\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n\n if (comps[1].length <= decimals) { return this; }\n\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n\n isZero(): boolean {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n\n isNegative(): boolean {\n return (this._value[0] === \"-\");\n }\n\n toString(): string { return this._value; }\n\n toHexString(width?: number): string {\n if (width == null) { return this._hex; }\n if (width % 8) { logger.throwArgumentError(\"invalid byte width\", \"width\", width); }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n\n toUnsafeFloat(): number { return parseFloat(this.toString()); }\n\n toFormat(format: FixedFormat | string): FixedNumber {\n return FixedNumber.fromString(this._value, format);\n }\n\n\n static fromValue(value: BigNumber, decimals?: BigNumberish, format?: FixedFormat | string | number): FixedNumber {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n\n if (decimals == null) { decimals = 0; }\n if (format == null) { format = \"fixed\"; }\n\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n\n\n static fromString(value: string, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n const numeric = parseFixed(value, fixedFormat.decimals);\n\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n\n let hex: string = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n } else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static fromBytes(value: BytesLike, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) { numeric = numeric.fromTwos(fixedFormat.width); }\n\n const hex = numeric.toTwos((fixedFormat.signed ? 0: 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static from(value: any, format?: FixedFormat | string | number) {\n if (typeof(value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n\n try {\n return FixedNumber.fromValue(value, 0, format);\n } catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n\n static isFixedNumber(value: any): value is FixedNumber {\n return !!(value && value._isFixedNumber);\n }\n}\n\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n","\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\n\n\n// Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\nexport function commify(value: string | number): string {\n const comps = String(value).split(\".\");\n\n if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || (comps[1] && !comps[1].match(/^[0-9]*$/)) || value === \".\" || value === \"-.\") {\n logger.throwArgumentError(\"invalid value\", \"value\", value);\n }\n\n // Make sure we have at least one whole digit (0 if none)\n let whole = comps[0];\n\n let negative = \"\";\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n }\n\n // Make sure we have at least 1 whole digit with no leading zeros\n while (whole.substring(0, 1) === \"0\") { whole = whole.substring(1); }\n if (whole === \"\") { whole = \"0\"; }\n\n let suffix = \"\";\n if (comps.length === 2) { suffix = \".\" + (comps[1] || \"0\"); }\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n\n const formatted = [];\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n } else {\n const index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n\n return negative + formatted.join(\",\") + suffix;\n}\n\nexport function formatUnits(value: BigNumberish, unitName?: string | BigNumberish): string {\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return formatFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function parseUnits(value: string, unitName?: BigNumberish): BigNumber {\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return parseFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function formatEther(wei: BigNumberish): string {\n return formatUnits(wei, 18);\n}\n\nexport function parseEther(ether: string): BigNumber {\n return parseUnits(ether, 18);\n}\n\n","export const version = \"units/5.7.0\";\n","\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { Provider, TransactionRequest } from \"@ethersproject/abstract-provider\";\nimport { ExternallyOwnedAccount, Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { arrayify, Bytes, BytesLike, concat, hexDataSlice, isHexString, joinSignature, SignatureLike } from \"@ethersproject/bytes\";\nimport { hashMessage, _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defaultPath, HDNode, entropyToMnemonic, Mnemonic } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { decryptJsonWallet, decryptJsonWalletSync, encryptKeystore, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { computeAddress, recoverAddress, serialize, UnsignedTransaction } from \"@ethersproject/transactions\";\nimport { Wordlist } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction isAccount(value: any): value is ExternallyOwnedAccount {\n return (value != null && isHexString(value.privateKey, 32) && value.address != null);\n}\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n const mnemonic = value.mnemonic;\n return (mnemonic && mnemonic.phrase);\n}\n\nexport class Wallet extends Signer implements ExternallyOwnedAccount, TypedDataSigner {\n\n readonly address: string;\n readonly provider: Provider;\n\n // Wrapping the _signingKey and _mnemonic in a getter function prevents\n // leaking the private key in console.log; still, be careful! :)\n readonly _signingKey: () => SigningKey;\n readonly _mnemonic: () => Mnemonic;\n\n constructor(privateKey: BytesLike | ExternallyOwnedAccount | SigningKey, provider?: Provider) {\n super();\n\n if (isAccount(privateKey)) {\n const signingKey = new SigningKey(privateKey.privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n if (this.address !== getAddress(privateKey.address)) {\n logger.throwArgumentError(\"privateKey/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n\n if (hasMnemonic(privateKey)) {\n const srcMnemonic = privateKey.mnemonic;\n defineReadOnly(this, \"_mnemonic\", () => (\n {\n phrase: srcMnemonic.phrase,\n path: srcMnemonic.path || defaultPath,\n locale: srcMnemonic.locale || \"en\"\n }\n ));\n const mnemonic = this.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);\n if (computeAddress(node.privateKey) !== this.address) {\n logger.throwArgumentError(\"mnemonic/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n } else {\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n }\n\n\n } else {\n if (SigningKey.isSigningKey(privateKey)) {\n /* istanbul ignore if */\n if (privateKey.curve !== \"secp256k1\") {\n logger.throwArgumentError(\"unsupported curve; must be secp256k1\", \"privateKey\", \"[REDACTED]\");\n }\n defineReadOnly(this, \"_signingKey\", () => (privateKey));\n\n } else {\n // A lot of common tools do not prefix private keys with a 0x (see: #1166)\n if (typeof(privateKey) === \"string\") {\n if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {\n privateKey = \"0x\" + privateKey;\n }\n }\n\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n }\n\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n }\n\n /* istanbul ignore if */\n if (provider && !Provider.isProvider(provider)) {\n logger.throwArgumentError(\"invalid provider\", \"provider\", provider);\n }\n\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n get mnemonic(): Mnemonic { return this._mnemonic(); }\n get privateKey(): string { return this._signingKey().privateKey; }\n get publicKey(): string { return this._signingKey().publicKey; }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n connect(provider: Provider): Wallet {\n return new Wallet(this, provider);\n }\n\n signTransaction(transaction: TransactionRequest): Promise {\n return resolveProperties(transaction).then((tx) => {\n if (tx.from != null) {\n if (getAddress(tx.from) !== this.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"transaction.from\", transaction.from);\n }\n delete tx.from;\n }\n\n const signature = this._signingKey().signDigest(keccak256(serialize(tx)));\n return serialize(tx, signature);\n });\n }\n\n async signMessage(message: Bytes | string): Promise {\n return joinSignature(this._signingKey().signDigest(hashMessage(message)));\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n if (this.provider == null) {\n logger.throwError(\"cannot resolve ENS names without a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\",\n value: name\n });\n }\n return this.provider.resolveName(name);\n });\n\n return joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value)));\n }\n\n encrypt(password: Bytes | string, options?: any, progressCallback?: ProgressCallback): Promise {\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n\n if (progressCallback && typeof(progressCallback) !== \"function\") {\n throw new Error(\"invalid callback\");\n }\n\n if (!options) { options = {}; }\n\n return encryptKeystore(this, password, options, progressCallback);\n }\n\n\n /**\n * Static methods to create Wallet instances.\n */\n static createRandom(options?: any): Wallet {\n let entropy: Uint8Array = randomBytes(16);\n\n if (!options) { options = { }; }\n\n if (options.extraEntropy) {\n entropy = arrayify(hexDataSlice(keccak256(concat([ entropy, options.extraEntropy ])), 0, 16));\n }\n\n const mnemonic = entropyToMnemonic(entropy, options.locale);\n return Wallet.fromMnemonic(mnemonic, options.path, options.locale);\n }\n\n static fromEncryptedJson(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n return decryptJsonWallet(json, password, progressCallback).then((account) => {\n return new Wallet(account);\n });\n }\n\n static fromEncryptedJsonSync(json: string, password: Bytes | string): Wallet {\n return new Wallet(decryptJsonWalletSync(json, password));\n }\n\n static fromMnemonic(mnemonic: string, path?: string, wordlist?: Wordlist): Wallet {\n if (!path) { path = defaultPath; }\n return new Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));\n }\n}\n\nexport function verifyMessage(message: Bytes | string, signature: SignatureLike): string {\n return recoverAddress(hashMessage(message), signature);\n}\n\nexport function verifyTypedData(domain: TypedDataDomain, types: Record>, value: Record, signature: SignatureLike): string {\n return recoverAddress(_TypedDataEncoder.hash(domain, types, value), signature);\n}\n","export const version = \"wallet/5.7.0\";\n","\"use strict\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\n\nimport type { GetUrlResponse, Options } from \"./types\";\n\nexport { GetUrlResponse, Options };\n\nexport async function getUrl(href: string, options?: Options): Promise {\n if (options == null) { options = { }; }\n\n const request: RequestInit = {\n method: (options.method || \"GET\"),\n headers: (options.headers || { }),\n body: (options.body || undefined),\n };\n\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\"; // no-cors, cors, *same-origin\n request.cache = \"no-cache\"; // *default, no-cache, reload, force-cache, only-if-cached\n request.credentials = \"same-origin\"; // include, *same-origin, omit\n request.redirect = \"follow\"; // manual, *follow, error\n request.referrer = \"client\"; // no-referrer, *client\n };\n\n if (options.fetchOptions != null) {\n const opts = options.fetchOptions;\n if (opts.mode) { request.mode = (opts.mode); }\n if (opts.cache) { request.cache = (opts.cache); }\n if (opts.credentials) { request.credentials = (opts.credentials); }\n if (opts.redirect) { request.redirect = (opts.redirect); }\n if (opts.referrer) { request.referrer = opts.referrer; }\n }\n\n const response = await fetch(href, request);\n const body = await response.arrayBuffer();\n\n const headers: { [ name: string ]: string } = { };\n if (response.headers.forEach) {\n response.headers.forEach((value, key) => {\n headers[key.toLowerCase()] = value;\n });\n } else {\n (<() => Array>(((response.headers)).keys))().forEach((key) => {\n headers[key.toLowerCase()] = response.headers.get(key);\n });\n }\n\n return {\n headers: headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body)),\n }\n}\n","\"use strict\";\n\nimport { decode as base64Decode, encode as base64Encode } from \"@ethersproject/base64\";\nimport { hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getUrl, GetUrlResponse, Options } from \"./geturl\";\n\nfunction staller(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\nfunction bodyify(value: any, type: string): string {\n if (value == null) { return null; }\n\n if (typeof(value) === \"string\") { return value; }\n\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n } catch (error) { };\n }\n return hexlify(value);\n }\n\n return value;\n}\n\n// Exported Types\nexport type ConnectionInfo = {\n url: string,\n headers?: { [key: string]: string | number }\n\n user?: string,\n password?: string,\n\n allowInsecureAuthentication?: boolean,\n allowGzip?: boolean,\n\n throttleLimit?: number,\n throttleSlotInterval?: number;\n throttleCallback?: (attempt: number, url: string) => Promise,\n\n skipFetchSetup?: boolean;\n fetchOptions?: Record;\n errorPassThrough?: boolean;\n\n timeout?: number,\n};\n\nexport interface OnceBlockable {\n once(eventName: \"block\", handler: () => void): void;\n}\n\nexport interface OncePollable {\n once(eventName: \"poll\", handler: () => void): void;\n}\n\nexport type PollOptions = {\n timeout?: number,\n floor?: number,\n ceiling?: number,\n interval?: number,\n retryLimit?: number,\n onceBlock?: OnceBlockable\n oncePoll?: OncePollable\n};\n\nexport type FetchJsonResponse = {\n statusCode: number;\n headers: { [ header: string ]: string };\n};\n\n\ntype Header = { key: string, value: string };\n\nfunction unpercent(value: string): Uint8Array {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all, code) => {\n return String.fromCharCode(parseInt(code, 16));\n }));\n}\n\n// This API is still a work in progress; the future changes will likely be:\n// - ConnectionInfo => FetchDataRequest\n// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array }\n// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified)\n// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T\n// For this reason, it should be considered internal until the API is finalized\nexport function _fetchData(connection: string | ConnectionInfo, body?: Uint8Array, processFunc?: (value: Uint8Array, response: FetchJsonResponse) => T): Promise {\n\n // How many times to retry in the event of a throttle\n const attemptLimit = (typeof(connection) === \"object\" && connection.throttleLimit != null) ? connection.throttleLimit: 12;\n logger.assertArgument((attemptLimit > 0 && (attemptLimit % 1) === 0),\n \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n\n const throttleCallback = ((typeof(connection) === \"object\") ? connection.throttleCallback: null);\n const throttleSlotInterval = ((typeof(connection) === \"object\" && typeof(connection.throttleSlotInterval) === \"number\") ? connection.throttleSlotInterval: 100);\n logger.assertArgument((throttleSlotInterval > 0 && (throttleSlotInterval % 1) === 0),\n \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n\n const errorPassThrough = ((typeof(connection) === \"object\") ? !!(connection.errorPassThrough): false);\n\n const headers: { [key: string]: Header } = { };\n\n let url: string = null;\n\n // @TODO: Allow ConnectionInfo to override some of these values\n const options: Options = {\n method: \"GET\",\n };\n\n let allow304 = false;\n\n let timeout = 2 * 60 * 1000;\n\n if (typeof(connection) === \"string\") {\n url = connection;\n\n } else if (typeof(connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n\n url = connection.url;\n\n if (typeof(connection.timeout) === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n\n if (connection.headers) {\n for (const key in connection.headers) {\n headers[key.toLowerCase()] = { key: key, value: String(connection.headers[key]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n\n options.allowGzip = !!connection.allowGzip;\n\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger.throwError(\n \"basic authentication requires a secure https url\",\n Logger.errors.INVALID_ARGUMENT,\n { argument: \"url\", url: url, user: connection.user, password: \"[REDACTED]\" }\n );\n }\n\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n\n const reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n const dataMatch = ((url) ? url.match(reData): null);\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": (dataMatch[1] || \"text/plain\")},\n body: (dataMatch[2] ? base64Decode(dataMatch[3]): unpercent(dataMatch[3]))\n };\n\n let result: T = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n\n } catch (error) {\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error: error,\n requestBody: null,\n requestMethod: \"GET\",\n url: url\n });\n }\n }\n\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n\n const flatHeaders: { [ key: string ]: string } = { };\n Object.keys(headers).forEach((key) => {\n const header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n\n const runningTimeout = (function() {\n let timer: NodeJS.Timer = null;\n const promise: Promise = new Promise(function(resolve, reject) {\n if (timeout) {\n timer = setTimeout(() => {\n if (timer == null) { return; }\n timer = null;\n\n reject(logger.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout: timeout,\n url: url\n }));\n }, timeout);\n }\n });\n\n const cancel = function() {\n if (timer == null) { return; }\n clearTimeout(timer);\n timer = null;\n }\n\n return { promise, cancel };\n })();\n\n const runningFetch = (async function() {\n\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response: GetUrlResponse = null;\n\n try {\n response = await getUrl(url, options);\n\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Redirection; for now we only support absolute locataions\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n\n } else if (response.statusCode === 429) {\n // Exponential back-off throttling\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n let stall = 0;\n\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof(retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n } else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n\n //console.log(\"Stalling 429\");\n await staller(stall);\n continue;\n }\n }\n }\n\n } catch (error) {\n response = (error).response;\n if (response == null) {\n runningTimeout.cancel();\n logger.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url: url\n });\n }\n }\n\n\n let body = response.body;\n\n if (allow304 && response.statusCode === 304) {\n body = null;\n } else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n\n if (processFunc) {\n try {\n const result = await processFunc(body, response);\n runningTimeout.cancel();\n return result;\n\n } catch (error) {\n // Allow the processFunc to trigger a throttle\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n const timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n //console.log(\"Stalling callback\");\n await staller(timeout);\n continue;\n }\n }\n\n runningTimeout.cancel();\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n error: error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n }\n\n runningTimeout.cancel();\n\n // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n return (body);\n }\n\n return logger.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n })();\n\n return Promise.race([ runningTimeout.promise, runningFetch ]);\n}\n\nexport function fetchJson(connection: string | ConnectionInfo, json?: string, processFunc?: (value: any, response: FetchJsonResponse) => any): Promise {\n let processJsonFunc = (value: Uint8Array, response: FetchJsonResponse) => {\n let result: any = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n } catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n\n if (processFunc) {\n result = processFunc(result, response);\n }\n\n return result;\n }\n\n // If we have json to send, we must\n // - add content-type of application/json (unless already overridden)\n // - convert the json to bytes\n let body: Uint8Array = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n\n // Create a connection with the content-type set for JSON\n const updated: ConnectionInfo = (typeof(connection) === \"string\") ? ({ url: connection }): shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = (Object.keys(updated.headers).filter((k) => (k.toLowerCase() === \"content-type\")).length) !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n } else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n\n return _fetchData(connection, body, processJsonFunc);\n}\n\nexport function poll(func: () => Promise, options?: PollOptions): Promise {\n if (!options) { options = {}; }\n options = shallowCopy(options);\n if (options.floor == null) { options.floor = 0; }\n if (options.ceiling == null) { options.ceiling = 10000; }\n if (options.interval == null) { options.interval = 250; }\n\n return new Promise(function(resolve, reject) {\n\n let timer: NodeJS.Timer = null;\n let done: boolean = false;\n\n // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n const cancel = (): boolean => {\n if (done) { return false; }\n done = true;\n if (timer) { clearTimeout(timer); }\n return true;\n };\n\n if (options.timeout) {\n timer = setTimeout(() => {\n if (cancel()) { reject(new Error(\"timeout\")); }\n }, options.timeout)\n }\n\n const retryLimit = options.retryLimit;\n\n let attempt = 0;\n function check() {\n return func().then(function(result) {\n\n // If we have a result, or are allowed null then we're done\n if (result !== undefined) {\n if (cancel()) { resolve(result); }\n\n } else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n\n } else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n\n // Otherwise, exponential back-off (up to 10s) our next request\n } else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) { reject(new Error(\"retry limit reached\")); }\n return;\n }\n\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) { timeout = options.floor; }\n if (timeout > options.ceiling) { timeout = options.ceiling; }\n\n setTimeout(check, timeout);\n }\n\n return null;\n }, function(error) {\n if (cancel()) { reject(error); }\n });\n }\n check();\n });\n}\n\n","export const version = \"web/5.7.1\";\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\"\n}), 'Settings');\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@mui/material/utils\");","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\n\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$transitions2$d, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette$ownerState$c2, _palette2, _palette2$action, _palette3, _palette3$action;\n\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null ? void 0 : (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null ? void 0 : (_theme$transitions2$d = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2$d.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null ? void 0 : (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null ? void 0 : (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null ? void 0 : (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null ? void 0 : (_palette$ownerState$c2 = _palette[ownerState.color]) == null ? void 0 : _palette$ownerState$c2.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null ? void 0 : (_palette2$action = _palette2.action) == null ? void 0 : _palette2$action.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null ? void 0 : (_palette3$action = _palette3.action) == null ? void 0 : _palette3$action.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox\n });\n\n const more = {};\n\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, {\n children: [children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport { deepmerge } from '@mui/utils';\nimport { darken, getContrastRatio, lighten } from '@mui/system';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\n\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\n\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\n\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\n\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\n\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\n\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n const modes = {\n dark,\n light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport { deepmerge } from '@mui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n\n const coef = fontSize / 14;\n\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport { generateUtilityClass } from '@mui/base';\nimport { createTheme as systemCreateTheme } from '@mui/system';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\n\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n\n const traverse = (node, component) => {\n let key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n const child = node[key];\n\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n\n return muiTheme;\n}\n\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme(...args);\n}\nexport default createTheme;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\n\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n const constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\n\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string'; // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n\n\n const isNumber = value => !isNaN(parseFloat(value));\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","import createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","import { createStyled, shouldForwardProp } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport const rootShouldForwardProp = prop => shouldForwardProp(prop) && prop !== 'classes';\nexport const slotShouldForwardProp = shouldForwardProp;\nconst styled = createStyled({\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","import { useThemeProps as systemUseThemeProps } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useThemeProps({\n props,\n name\n}) {\n return systemUseThemeProps({\n props,\n name,\n defaultTheme\n });\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nexport default capitalize;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n/**\n * Private module reserved for @mui packages.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n const Component = (props, ref) => /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import { unstable_debounce as debounce } from '@mui/utils';\nexport default debounce;","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","import { unstable_deprecatedPropType as deprecatedPropType } from '@mui/utils';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n\n return null;\n };\n}","import { unstable_requirePropFactory as requirePropFactory } from '@mui/utils';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n } // eslint-disable-next-line react/forbid-foreign-prop-types\n\n\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n\n return null;\n };\n\n return requireProp;\n}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","import { unstable_useId as useId } from '@mui/utils';\nexport default useId;","import { unstable_unsupportedProp as unsupportedProp } from '@mui/utils';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n\n const propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n\n return null;\n}","import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/className';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible'; // TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\n\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n ClassNameGenerator.configure(generator);\n }\n};","import { unstable_isMuiElement as isMuiElement } from '@mui/utils';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","import { unstable_ownerDocument as ownerDocument } from '@mui/utils';\nexport default ownerDocument;","import { unstable_ownerWindow as ownerWindow } from '@mui/utils';\nexport default ownerWindow;","import { unstable_useControlled as useControlled } from '@mui/utils';\nexport default useControlled;","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nexport default useEnhancedEffect;","import { unstable_useEventCallback as useEventCallback } from '@mui/utils';\nexport default useEventCallback;","import { unstable_useForkRef as useForkRef } from '@mui/utils';\nexport default useForkRef;","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nlet hadFocusVisibleRecentlyTimeout;\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {// Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n } // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n /**\n * Should be called if a blur event is fired\n */\n\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(() => {\n hadFocusVisibleRecently = false;\n }, 100);\n isFocusVisibleRef.current = false;\n return true;\n }\n\n return false;\n }\n /**\n * Should be called if a blur event is fired\n */\n\n\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n\n return false;\n }\n\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","import { unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nexport default useIsFocusVisible;","import * as React from 'react';\nconst ThemeContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","/** @license MUI v5.10.1\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/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n\n return stylesFactory(...styles);\n };\n }\n\n return stylesFactory;\n} // eslint-disable-next-line @typescript-eslint/naming-convention\n\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport { deepmerge } from '@mui/utils';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n\n return acc;\n }, {});\n }\n\n const output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\n\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n\n if (isBreakpointUnused) {\n delete acc[key];\n }\n\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n} // compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\n\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n\n if (keys.length === 0) {\n return breakpointValues;\n }\n\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n\n return acc;\n }, {});\n}\nexport default breakpoints;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\n\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : _formatMuiErrorMessage(9, color));\n }\n\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : _formatMuiErrorMessage(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\n\nexport const colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n\n return `${type}(${values})`;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"variant\"];\nimport { unstable_capitalize as capitalize } from '@mui/utils';\n\nfunction isEmpty(string) {\n return string.length === 0;\n}\n/**\n * Generates string classKey based on the properties provided. It starts with the\n * variant if defined, and then it appends all other properties in alphabetical order.\n * @param {object} props - the properties for which the classKey should be created.\n */\n\n\nexport default function propsToClassKey(props) {\n const {\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n let classKey = variant || '';\n Object.keys(other).sort().forEach(key => {\n if (key === 'color') {\n classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);\n } else {\n classKey += `${isEmpty(classKey) ? key : capitalize(key)}${capitalize(props[key].toString())}`;\n }\n });\n return classKey;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"],\n _excluded2 = [\"theme\"],\n _excluded3 = [\"theme\"];\n\n/* eslint-disable no-underscore-dangle */\nimport styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';\nimport { getDisplayName } from '@mui/utils';\nimport createTheme from './createTheme';\nimport propsToClassKey from './propsToClassKey';\nimport defaultStyleFunctionSx from './styleFunctionSx';\n\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n} // https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\n\n\nfunction isStringTag(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\nconst getStyleOverrides = (name, theme) => {\n if (theme.components && theme.components[name] && theme.components[name].styleOverrides) {\n return theme.components[name].styleOverrides;\n }\n\n return null;\n};\n\nconst getVariantStyles = (name, theme) => {\n let variants = [];\n\n if (theme && theme.components && theme.components[name] && theme.components[name].variants) {\n variants = theme.components[name].variants;\n }\n\n const variantsStyles = {};\n variants.forEach(definition => {\n const key = propsToClassKey(definition.props);\n variantsStyles[key] = definition.style;\n });\n return variantsStyles;\n};\n\nconst variantsResolver = (props, styles, theme, name) => {\n var _theme$components, _theme$components$nam;\n\n const {\n ownerState = {}\n } = props;\n const variantsStyles = [];\n const themeVariants = theme == null ? void 0 : (_theme$components = theme.components) == null ? void 0 : (_theme$components$nam = _theme$components[name]) == null ? void 0 : _theme$components$nam.variants;\n\n if (themeVariants) {\n themeVariants.forEach(themeVariant => {\n let isMatch = true;\n Object.keys(themeVariant.props).forEach(key => {\n if (ownerState[key] !== themeVariant.props[key] && props[key] !== themeVariant.props[key]) {\n isMatch = false;\n }\n });\n\n if (isMatch) {\n variantsStyles.push(styles[propsToClassKey(themeVariant.props)]);\n }\n });\n }\n\n return variantsStyles;\n}; // Update /system/styled/#api in case if this changes\n\n\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\n\nconst lowercaseFirstLetter = string => {\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\n\nexport default function createStyled(input = {}) {\n const {\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp,\n styleFunctionSx = defaultStyleFunctionSx\n } = input;\n\n const systemSx = props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n return styleFunctionSx(_extends({}, props, {\n theme\n }));\n };\n\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n overridesResolver\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded); // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n\n\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : componentSlot && componentSlot !== 'Root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n\n let shouldForwardPropOption = shouldForwardProp;\n\n if (componentSlot === 'Root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n\n const muiStyledResolver = (styleArg, ...expressions) => {\n const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? _ref => {\n let {\n theme: themeInput\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded2);\n\n return stylesArg(_extends({\n theme: isEmpty(themeInput) ? defaultTheme : themeInput\n }, other));\n } : stylesArg;\n }) : [];\n let transformedStyleArg = styleArg;\n\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n const styleOverrides = getStyleOverrides(componentName, theme);\n\n if (styleOverrides) {\n const resolvedStyleOverrides = {};\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {\n theme\n })) : slotStyle;\n });\n return overridesResolver(props, resolvedStyleOverrides);\n }\n\n return null;\n });\n }\n\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n return variantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);\n });\n }\n\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill(''); // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n } else if (typeof styleArg === 'function' && // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n styleArg.__emotion_real !== styleArg) {\n // If the type is function, we need to define the default theme.\n transformedStyleArg = _ref2 => {\n let {\n theme: themeInput\n } = _ref2,\n other = _objectWithoutPropertiesLoose(_ref2, _excluded3);\n\n return styleArg(_extends({\n theme: isEmpty(themeInput) ? defaultTheme : themeInput\n }, other));\n };\n }\n\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n\n if (componentName) {\n displayName = `${componentName}${componentSlot || ''}`;\n }\n\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n\n Component.displayName = displayName;\n }\n\n return Component;\n };\n\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n\n return muiStyledResolver;\n };\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\n\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || []; // Sort in ascending order\n\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n}; // Keep in mind that @media is inclusive by the CSS specification.\n\n\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n\n return up(key);\n }\n\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import { createUnarySpacing } from '../spacing';\n\n/* tslint:enable:unified-signatures */\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n\n spacing.mui = true;\n return spacing;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\n\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n return muiTheme;\n}\n\nexport default createTheme;","import merge from './merge';\n\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n\n return acc;\n }, {});\n };\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\n\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\n\nfunction getBorder(value) {\n if (typeof value !== 'number') {\n return value;\n }\n\n return `${value}px solid`;\n}\n\nexport const border = style({\n prop: 'border',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderTop = style({\n prop: 'borderTop',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderRight = style({\n prop: 'borderRight',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderBottom = style({\n prop: 'borderBottom',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderLeft = style({\n prop: 'borderLeft',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderColor = style({\n prop: 'borderColor',\n themeKey: 'palette'\n});\nexport const borderTopColor = style({\n prop: 'borderTopColor',\n themeKey: 'palette'\n});\nexport const borderRightColor = style({\n prop: 'borderRightColor',\n themeKey: 'palette'\n});\nexport const borderBottomColor = style({\n prop: 'borderBottomColor',\n themeKey: 'palette'\n});\nexport const borderLeftColor = style({\n prop: 'borderLeftColor',\n themeKey: 'palette'\n});\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius);\nexport default borders;","import style from './style';\nimport compose from './compose';\nexport const displayPrint = style({\n prop: 'displayPrint',\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n});\nexport const displayRaw = style({\n prop: 'display'\n});\nexport const overflow = style({\n prop: 'overflow'\n});\nexport const textOverflow = style({\n prop: 'textOverflow'\n});\nexport const visibility = style({\n prop: 'visibility'\n});\nexport const whiteSpace = style({\n prop: 'whiteSpace'\n});\nexport default compose(displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace);","import style from './style';\nimport compose from './compose';\nexport const flexBasis = style({\n prop: 'flexBasis'\n});\nexport const flexDirection = style({\n prop: 'flexDirection'\n});\nexport const flexWrap = style({\n prop: 'flexWrap'\n});\nexport const justifyContent = style({\n prop: 'justifyContent'\n});\nexport const alignItems = style({\n prop: 'alignItems'\n});\nexport const alignContent = style({\n prop: 'alignContent'\n});\nexport const order = style({\n prop: 'order'\n});\nexport const flex = style({\n prop: 'flex'\n});\nexport const flexGrow = style({\n prop: 'flexGrow'\n});\nexport const flexShrink = style({\n prop: 'flexShrink'\n});\nexport const alignSelf = style({\n prop: 'alignSelf'\n});\nexport const justifyItems = style({\n prop: 'justifyItems'\n});\nexport const justifySelf = style({\n prop: 'justifySelf'\n});\nconst flexbox = compose(flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf);\nexport default flexbox;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport const position = style({\n prop: 'position'\n});\nexport const zIndex = style({\n prop: 'zIndex',\n themeKey: 'zIndex'\n});\nexport const top = style({\n prop: 'top'\n});\nexport const right = style({\n prop: 'right'\n});\nexport const bottom = style({\n prop: 'bottom'\n});\nexport const left = style({\n prop: 'left'\n});\nexport default compose(position, zIndex, top, right, bottom, left);","import style from './style';\nimport compose from './compose';\nexport const color = style({\n prop: 'color',\n themeKey: 'palette'\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette'\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette'\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nconst boxShadow = style({\n prop: 'boxShadow',\n themeKey: 'shadows'\n});\nexport default boxShadow;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\n\nfunction transform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\n\nexport const width = style({\n prop: 'width',\n transform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme$breakpoi, _props$theme$breakpoi2;\n\n const breakpoint = ((_props$theme = props.theme) == null ? void 0 : (_props$theme$breakpoi = _props$theme.breakpoints) == null ? void 0 : (_props$theme$breakpoi2 = _props$theme$breakpoi.values) == null ? void 0 : _props$theme$breakpoi2[propValue]) || breakpointsValues[propValue];\n return {\n maxWidth: breakpoint || transform(propValue)\n };\n };\n\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform\n});\nexport const height = style({\n prop: 'height',\n transform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import style from './style';\nimport compose from './compose';\nexport const fontFamily = style({\n prop: 'fontFamily',\n themeKey: 'typography'\n});\nexport const fontSize = style({\n prop: 'fontSize',\n themeKey: 'typography'\n});\nexport const fontStyle = style({\n prop: 'fontStyle',\n themeKey: 'typography'\n});\nexport const fontWeight = style({\n prop: 'fontWeight',\n themeKey: 'typography'\n});\nexport const letterSpacing = style({\n prop: 'letterSpacing'\n});\nexport const textTransform = style({\n prop: 'textTransform'\n});\nexport const lineHeight = style({\n prop: 'lineHeight'\n});\nexport const textAlign = style({\n prop: 'textAlign'\n});\nexport const typographyVariant = style({\n prop: 'typography',\n cssProperty: false,\n themeKey: 'typography'\n});\nconst typography = compose(typographyVariant, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign, textTransform);\nexport default typography;","import borders from './borders';\nimport display from './display';\nimport flexbox from './flexbox';\nimport grid from './cssGrid';\nimport positions from './positions';\nimport palette from './palette';\nimport shadows from './shadows';\nimport sizing from './sizing';\nimport spacing from './spacing';\nimport typography from './typography';\nconst filterPropsMapping = {\n borders: borders.filterProps,\n display: display.filterProps,\n flexbox: flexbox.filterProps,\n grid: grid.filterProps,\n positions: positions.filterProps,\n palette: palette.filterProps,\n shadows: shadows.filterProps,\n sizing: sizing.filterProps,\n spacing: spacing.filterProps,\n typography: typography.filterProps\n};\nexport const styleFunctionMapping = {\n borders,\n display,\n flexbox,\n grid,\n positions,\n palette,\n shadows,\n sizing,\n spacing,\n typography\n};\nexport const propToStyleFunction = Object.keys(filterPropsMapping).reduce((acc, styleFnName) => {\n filterPropsMapping[styleFnName].forEach(propName => {\n acc[propName] = styleFunctionMapping[styleFnName];\n });\n return acc;\n}, {});\n\nfunction getThemeValue(prop, value, theme) {\n const inputProps = {\n [prop]: value,\n theme\n };\n const styleFunction = propToStyleFunction[prop];\n return styleFunction ? styleFunction(inputProps) : {\n [prop]: value\n };\n}\n\nexport default getThemeValue;","import { deepmerge } from '@mui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nconst marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nconst paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\n\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\n\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\n\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\n\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n } // Check if CSS variables are used\n\n\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n\n if (val != null) {\n return val;\n }\n }\n\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n\n return null;\n }, obj);\n}\n\nfunction getValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n\n if (transform) {\n value = transform(value);\n }\n\n return value;\n}\n\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n\n if (cssProperty === false) {\n return value;\n }\n\n return {\n [cssProperty]: value\n };\n };\n\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\n\nexport default style;","import merge from '../merge';\nimport { styleFunctionMapping as defaultStyleFunctionMapping } from '../getThemeValue';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\n\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\n\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n} // eslint-disable-next-line @typescript-eslint/naming-convention\n\n\nexport function unstable_createStyleFunctionSx(styleFunctionMapping = defaultStyleFunctionMapping) {\n const propToStyleFunction = Object.keys(styleFunctionMapping).reduce((acc, styleFnName) => {\n styleFunctionMapping[styleFnName].filterProps.forEach(propName => {\n acc[propName] = styleFunctionMapping[styleFnName];\n });\n return acc;\n }, {});\n\n function getThemeValue(prop, value, theme) {\n const inputProps = {\n [prop]: value,\n theme\n };\n const styleFunction = propToStyleFunction[prop];\n return styleFunction ? styleFunction(inputProps) : {\n [prop]: value\n };\n }\n\n function styleFunctionSx(props) {\n const {\n sx,\n theme = {}\n } = props || {};\n\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n\n\n function traverse(sxInput) {\n let sxObject = sxInput;\n\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n\n if (!sxObject) {\n return null;\n }\n\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (propToStyleFunction[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","import { useTheme as muiUseTheme } from '@mui/private-theming';\n\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction useTheme(defaultTheme = null) {\n const contextTheme = muiUseTheme();\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\n\nexport default useTheme;","import createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\n\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\n\nexport default useTheme;","import getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme\n}) {\n const theme = useTheme(defaultTheme);\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","import { internal_resolveProps as resolveProps } from '@mui/utils';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n\n return resolveProps(theme.components[name].defaultProps, props);\n}","const defaultGenerator = componentName => componentName;\n\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n\n generate(componentName) {\n return generate(componentName);\n },\n\n reset() {\n generate = defaultGenerator;\n }\n\n };\n};\n\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import _formatMuiErrorMessage from \"./formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","export default function composeClasses(slots, getUtilityClass, classes) {\n const output = {};\n Object.keys(slots).forEach( // `Objet.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n acc.push(getUtilityClass(key));\n\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n\n return acc;\n }, []).join(' ');\n });\n return output;\n}","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n\n function debounced(...args) {\n const later = () => {\n func.apply(this, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n\n return debounced;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function isPlainObject(item) {\n return item !== null && typeof item === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import ClassNameGenerator from '../ClassNameGenerator';\nconst globalStateClassesMapping = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClassesMapping[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n\n Object.keys(defaultProps).forEach(propName => {\n if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import * as React from 'react';\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","import * as React from 'react';\nimport useEnhancedEffect from './useEnhancedEffect';\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n */\n\nexport default function useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((...args) => // @ts-expect-error hide `this`\n // tslint:disable-next-line:ban-comma-operator\n (0, ref.current)(...args), []);\n}","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refA == null && refB == null) {\n return null;\n }\n\n return refValue => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","import * as React from 'react';\nlet globalId = 0;\n\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\n\n\nconst maybeReactUseId = React['useId' + ''];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\n\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n } // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n\n\n return useGlobalId(idOverride);\n}",null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\n\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t;\n}\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nconst SUPPORTED_LOCALE: Record = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str: string, locale: string) {\n const lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang) return lowerCase(str.replace(lang.regexp, (m) => lang.map[m]));\n return lowerCase(str);\n}\n\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str: string) {\n return str.toLowerCase();\n}\n","import { lowerCase } from \"lower-case\";\n\nexport interface Options {\n splitRegexp?: RegExp | RegExp[];\n stripRegexp?: RegExp | RegExp[];\n delimiter?: string;\n transform?: (part: string, index: number, parts: string[]) => string;\n}\n\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nconst DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n\n// Remove all non-word characters.\nconst DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input: string, options: Options = {}) {\n const {\n splitRegexp = DEFAULT_SPLIT_REGEXP,\n stripRegexp = DEFAULT_STRIP_REGEXP,\n transform = lowerCase,\n delimiter = \" \",\n } = options;\n\n let result = replace(\n replace(input, splitRegexp, \"$1\\0$2\"),\n stripRegexp,\n \"\\0\"\n );\n let start = 0;\n let end = result.length;\n\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\") start++;\n while (result.charAt(end - 1) === \"\\0\") end--;\n\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input: string, re: RegExp | RegExp[], value: string) {\n if (re instanceof RegExp) return input.replace(re, value);\n return re.reduce((input, re) => input.replace(re, value), input);\n}\n","/**\n * Locale character mapping rules.\n */\ninterface Locale {\n regexp: RegExp;\n map: Record;\n}\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nconst SUPPORTED_LOCALE: Record = {\n tr: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n az: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n lt: {\n regexp: /[\\u0069\\u006A\\u012F]\\u0307|\\u0069\\u0307[\\u0300\\u0301\\u0303]/g,\n map: {\n i̇: \"\\u0049\",\n j̇: \"\\u004A\",\n į̇: \"\\u012E\",\n i̇̀: \"\\u00CC\",\n i̇́: \"\\u00CD\",\n i̇̃: \"\\u0128\",\n },\n },\n};\n\n/**\n * Localized upper case.\n */\nexport function localeUpperCase(str: string, locale: string) {\n const lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang) return upperCase(str.replace(lang.regexp, (m) => lang.map[m]));\n return upperCase(str);\n}\n\n/**\n * Upper case as a function.\n */\nexport function upperCase(str: string) {\n return str.toUpperCase();\n}\n","import { noCase, Options } from \"no-case\";\nimport { upperCase } from \"upper-case\";\n\nexport { Options };\n\nexport function constantCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \"_\",\n transform: upperCase,\n ...options,\n });\n}\n","\"use strict\";\n\nimport { AbiCoder, checkResultErrors, ConstructorFragment, defaultAbiCoder, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, Indexed, Interface, LogDescription, ParamType, Result, TransactionDescription }from \"@ethersproject/abi\";\nimport { getAddress, getCreate2Address, getContractAddress, getIcapAddress, isAddress } from \"@ethersproject/address\";\nimport * as base64 from \"@ethersproject/base64\";\nimport { Base58 as base58 } from \"@ethersproject/basex\";\nimport { arrayify, concat, hexConcat, hexDataSlice, hexDataLength, hexlify, hexStripZeros, hexValue, hexZeroPad, isBytes, isBytesLike, isHexString, joinSignature, zeroPad, splitSignature, stripZeros } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder, dnsEncode, hashMessage, id, isValidName, namehash } from \"@ethersproject/hash\";\nimport { defaultPath, entropyToMnemonic, getAccountPath, HDNode, isValidMnemonic, mnemonicToEntropy, mnemonicToSeed } from \"@ethersproject/hdnode\";\nimport { getJsonWalletAddress } from \"@ethersproject/json-wallets\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { computeHmac, ripemd160, sha256, sha512 } from \"@ethersproject/sha2\";\nimport { keccak256 as solidityKeccak256, pack as solidityPack, sha256 as soliditySha256 } from \"@ethersproject/solidity\";\nimport { randomBytes, shuffled } from \"@ethersproject/random\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey, SigningKey } from \"@ethersproject/signing-key\";\nimport { formatBytes32String, nameprep, parseBytes32String, _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs } from \"@ethersproject/strings\";\nimport { accessListify, computeAddress, parse as parseTransaction, recoverAddress, serialize as serializeTransaction, TransactionTypes } from \"@ethersproject/transactions\";\nimport { commify, formatEther, parseEther, formatUnits, parseUnits } from \"@ethersproject/units\";\nimport { verifyMessage, verifyTypedData } from \"@ethersproject/wallet\";\nimport { _fetchData, fetchJson, poll } from \"@ethersproject/web\";\n\n////////////////////////\n// Enums\n\nimport { SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { UnicodeNormalizationForm, Utf8ErrorReason } from \"@ethersproject/strings\";\nimport { UnsignedTransaction } from \"@ethersproject/transactions\";\n\n////////////////////////\n// Types and Interfaces\n\nimport { CoerceFunc } from \"@ethersproject/abi\";\nimport { Bytes, BytesLike, Hexable } from \"@ethersproject/bytes\"\nimport { Mnemonic } from \"@ethersproject/hdnode\";\nimport { EncryptOptions, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { Deferrable } from \"@ethersproject/properties\";\nimport { Utf8ErrorFunc } from \"@ethersproject/strings\";\nimport { AccessList, AccessListish } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, FetchJsonResponse, OnceBlockable, OncePollable, PollOptions } from \"@ethersproject/web\";\n\n////////////////////////\n// Exports\n\nexport {\n AbiCoder,\n defaultAbiCoder,\n\n Fragment,\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n FunctionFragment,\n ParamType,\n FormatTypes,\n\n checkResultErrors,\n Result,\n\n Logger,\n\n RLP,\n\n _fetchData,\n fetchJson,\n poll,\n\n checkProperties,\n deepCopy,\n defineReadOnly,\n getStatic,\n resolveProperties,\n shallowCopy,\n\n arrayify,\n\n concat,\n stripZeros,\n zeroPad,\n\n isBytes,\n isBytesLike,\n\n defaultPath,\n HDNode,\n SigningKey,\n\n Interface,\n\n LogDescription,\n TransactionDescription,\n\n base58,\n base64,\n\n hexlify,\n isHexString,\n hexConcat,\n hexStripZeros,\n hexValue,\n hexZeroPad,\n hexDataLength,\n hexDataSlice,\n\n nameprep,\n _toEscapedUtf8String,\n toUtf8Bytes,\n toUtf8CodePoints,\n toUtf8String,\n Utf8ErrorFuncs,\n\n formatBytes32String,\n parseBytes32String,\n\n dnsEncode,\n hashMessage,\n namehash,\n isValidName,\n id,\n\n _TypedDataEncoder,\n\n getAddress,\n getIcapAddress,\n getContractAddress,\n getCreate2Address,\n isAddress,\n\n formatEther,\n parseEther,\n\n formatUnits,\n parseUnits,\n\n commify,\n\n computeHmac,\n keccak256,\n ripemd160,\n sha256,\n sha512,\n\n randomBytes,\n shuffled,\n\n solidityPack,\n solidityKeccak256,\n soliditySha256,\n\n splitSignature,\n joinSignature,\n\n accessListify,\n parseTransaction,\n serializeTransaction,\n TransactionTypes,\n\n getJsonWalletAddress,\n\n computeAddress,\n recoverAddress,\n\n computePublicKey,\n recoverPublicKey,\n\n verifyMessage,\n verifyTypedData,\n\n getAccountPath,\n mnemonicToEntropy,\n entropyToMnemonic,\n isValidMnemonic,\n mnemonicToSeed,\n\n\n ////////////////////////\n // Enums\n\n SupportedAlgorithm,\n\n UnicodeNormalizationForm,\n Utf8ErrorReason,\n\n ////////////////////////\n // Types\n\n Bytes,\n BytesLike,\n Hexable,\n\n AccessList,\n AccessListish,\n UnsignedTransaction,\n\n CoerceFunc,\n\n Indexed,\n\n Mnemonic,\n\n Deferrable,\n\n Utf8ErrorFunc,\n\n ConnectionInfo,\n OnceBlockable,\n OncePollable,\n PollOptions,\n FetchJsonResponse,\n\n EncryptOptions,\n ProgressCallback\n}\n\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","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\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","\"use strict\";\n// Strictly manage what we export as the public API.\n// Users can expect the calls exported from here to be maintaned across the\n// minor/patch updates of a single major version without breaking changes.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadNonProduction = exports.loadProduction = exports.load = exports.default = void 0;\nvar load_1 = require(\"./load\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return load_1.load; } });\nObject.defineProperty(exports, \"load\", { enumerable: true, get: function () { return load_1.load; } });\nObject.defineProperty(exports, \"loadProduction\", { enumerable: true, get: function () { return load_1.loadProduction; } });\nObject.defineProperty(exports, \"loadNonProduction\", { enumerable: true, get: function () { return load_1.loadNonProduction; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.load = exports.loadNonProduction = exports.loadProduction = void 0;\nvar formatEnvKeyWithPrefix_1 = __importDefault(require(\"./utils/formatEnvKeyWithPrefix\"));\nvar loadRemoteConfig_1 = __importDefault(require(\"./utils/loadRemoteConfig\"));\nvar mergeFromEnv_1 = __importDefault(require(\"./utils/mergeFromEnv\"));\n// For production we just return remote config, we're not interested in using\n// *build-time* env variables, since we're solving the *runtime*\n// configuration problem.\nvar loadProduction = function (_a) {\n var remoteConfigPath = _a.remoteConfigPath;\n return (0, loadRemoteConfig_1.default)(remoteConfigPath);\n};\nexports.loadProduction = loadProduction;\n// For non-production environments we assume development mode of some kind,\n// so want we do is to load the remote config (that contains the defaults),\n// and apply some manual overrides.\nvar loadNonProduction = function (_a) {\n var remoteConfigPath = _a.remoteConfigPath, envKeyPrefix = _a.envKeyPrefix;\n var formatEnvKey = (0, formatEnvKeyWithPrefix_1.default)(envKeyPrefix);\n return (0, loadRemoteConfig_1.default)(remoteConfigPath).then(function (cfg) {\n return (0, mergeFromEnv_1.default)(cfg, formatEnvKey);\n });\n};\nexports.loadNonProduction = loadNonProduction;\nvar detectEnv = function () {\n try {\n return process.env.NODE_ENV;\n }\n catch (_a) {\n return undefined;\n }\n};\nvar env = detectEnv();\nexports.load = !env || env === \"production\" ? exports.loadProduction : exports.loadNonProduction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar fillFromEnv = function (config, keys, formatEnvKey) {\n return keys.forEach(function (key) {\n var envKey = formatEnvKey(key);\n var value = process.env[envKey];\n if (value) {\n config[key] = value;\n }\n });\n};\nexports.default = fillFromEnv;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constant_case_1 = require(\"constant-case\");\nvar formatEnvKeyWithPrefix = function (prefix) {\n return function (configKey) { return prefix + (0, constant_case_1.constantCase)(configKey); };\n};\nexports.default = formatEnvKeyWithPrefix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar loadRemoteConfig = function (path) {\n return fetch(path).then(function (data) { return data.json(); });\n};\nexports.default = loadRemoteConfig;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar fillFromEnv_1 = __importDefault(require(\"./fillFromEnv\"));\nvar mergeFromEnv = function (base, formatEnvKey) {\n // Prepare result.\n var result = __assign({}, base);\n // Go through over all config fields and overwrite anything we find in\n // the environment.\n var keys = Object.keys(result);\n (0, fillFromEnv_1.default)(result, keys, formatEnvKey);\n // Return result.\n return result;\n};\nexports.default = mergeFromEnv;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (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}\n","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(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&128))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 Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ]);\n\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3);\n\n w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^\n ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n\n t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^\n ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n\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\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n","var engine = require('../src/store-engine')\n\nvar storages = require('../storages/all')\nvar plugins = [require('../plugins/json2')]\n\nmodule.exports = engine.createStore(storages, plugins)\n","module.exports = json2Plugin\n\nfunction json2Plugin() {\n\trequire('./lib/json2')\n\treturn {}\n}\n","/* eslint-disable */\n\n// json2.js\n// 2016-10-28\n// Public Domain.\n// NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n// See http://www.JSON.org/js.html\n// This code should be minified before deployment.\n// See http://javascript.crockford.com/jsmin.html\n\n// USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n// NOT CONTROL.\n\n// This file creates a global JSON object containing two methods: stringify\n// and parse. This file provides the ES5 JSON capability to ES3 systems.\n// If a project might run on IE8 or earlier, then this file should be included.\n// This file does nothing on ES5 systems.\n\n// JSON.stringify(value, replacer, space)\n// value any JavaScript value, usually an object or array.\n// replacer an optional parameter that determines how object\n// values are stringified for objects. It can be a\n// function or an array of strings.\n// space an optional parameter that specifies the indentation\n// of nested structures. If it is omitted, the text will\n// be packed without extra whitespace. If it is a number,\n// it will specify the number of spaces to indent at each\n// level. If it is a string (such as \"\\t\" or \" \"),\n// it contains the characters used to indent at each level.\n// This method produces a JSON text from a JavaScript value.\n// When an object value is found, if the object contains a toJSON\n// method, its toJSON method will be called and the result will be\n// stringified. A toJSON method does not serialize: it returns the\n// value represented by the name/value pair that should be serialized,\n// or undefined if nothing should be serialized. The toJSON method\n// will be passed the key associated with the value, and this will be\n// bound to the value.\n\n// For example, this would serialize Dates as ISO strings.\n\n// Date.prototype.toJSON = function (key) {\n// function f(n) {\n// // Format integers to have at least two digits.\n// return (n < 10)\n// ? \"0\" + n\n// : n;\n// }\n// return this.getUTCFullYear() + \"-\" +\n// f(this.getUTCMonth() + 1) + \"-\" +\n// f(this.getUTCDate()) + \"T\" +\n// f(this.getUTCHours()) + \":\" +\n// f(this.getUTCMinutes()) + \":\" +\n// f(this.getUTCSeconds()) + \"Z\";\n// };\n\n// You can provide an optional replacer method. It will be passed the\n// key and value of each member, with this bound to the containing\n// object. The value that is returned from your method will be\n// serialized. If your method returns undefined, then the member will\n// be excluded from the serialization.\n\n// If the replacer parameter is an array of strings, then it will be\n// used to select the members to be serialized. It filters the results\n// such that only members with keys listed in the replacer array are\n// stringified.\n\n// Values that do not have JSON representations, such as undefined or\n// functions, will not be serialized. Such values in objects will be\n// dropped; in arrays they will be replaced with null. You can use\n// a replacer function to replace those with JSON values.\n\n// JSON.stringify(undefined) returns undefined.\n\n// The optional space parameter produces a stringification of the\n// value that is filled with line breaks and indentation to make it\n// easier to read.\n\n// If the space parameter is a non-empty string, then that string will\n// be used for indentation. If the space parameter is a number, then\n// the indentation will be that many spaces.\n\n// Example:\n\n// text = JSON.stringify([\"e\", {pluribus: \"unum\"}]);\n// // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n// text = JSON.stringify([\"e\", {pluribus: \"unum\"}], null, \"\\t\");\n// // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n// text = JSON.stringify([new Date()], function (key, value) {\n// return this[key] instanceof Date\n// ? \"Date(\" + this[key] + \")\"\n// : value;\n// });\n// // text is '[\"Date(---current time---)\"]'\n\n// JSON.parse(text, reviver)\n// This method parses a JSON text to produce an object or array.\n// It can throw a SyntaxError exception.\n\n// The optional reviver parameter is a function that can filter and\n// transform the results. It receives each of the keys and values,\n// and its return value is used instead of the original value.\n// If it returns what it received, then the structure is not modified.\n// If it returns undefined then the member is deleted.\n\n// Example:\n\n// // Parse the text. Values that look like ISO date strings will\n// // be converted to Date objects.\n\n// myData = JSON.parse(text, function (key, value) {\n// var a;\n// if (typeof value === \"string\") {\n// a =\n// /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n// if (a) {\n// return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n// +a[5], +a[6]));\n// }\n// }\n// return value;\n// });\n\n// myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n// var d;\n// if (typeof value === \"string\" &&\n// value.slice(0, 5) === \"Date(\" &&\n// value.slice(-1) === \")\") {\n// d = new Date(value.slice(5, -1));\n// if (d) {\n// return d;\n// }\n// }\n// return value;\n// });\n\n// This is a reference implementation. You are free to copy, modify, or\n// redistribute.\n\n/*jslint\n eval, for, this\n*/\n\n/*property\n JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\n test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nif (typeof JSON !== \"object\") {\n JSON = {};\n}\n\n(function () {\n \"use strict\";\n\n var rx_one = /^[\\],:{}\\s]*$/;\n var rx_two = /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g;\n var rx_three = /\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g;\n var rx_four = /(?:^|:|,)(?:\\s*\\[)+/g;\n var rx_escapable = /[\\\\\"\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n var rx_dangerous = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10\n ? \"0\" + n\n : n;\n }\n\n function this_value() {\n return this.valueOf();\n }\n\n if (typeof Date.prototype.toJSON !== \"function\") {\n\n Date.prototype.toJSON = function () {\n\n return isFinite(this.valueOf())\n ? this.getUTCFullYear() + \"-\" +\n f(this.getUTCMonth() + 1) + \"-\" +\n f(this.getUTCDate()) + \"T\" +\n f(this.getUTCHours()) + \":\" +\n f(this.getUTCMinutes()) + \":\" +\n f(this.getUTCSeconds()) + \"Z\"\n : null;\n };\n\n Boolean.prototype.toJSON = this_value;\n Number.prototype.toJSON = this_value;\n String.prototype.toJSON = this_value;\n }\n\n var gap;\n var indent;\n var meta;\n var rep;\n\n\n function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n rx_escapable.lastIndex = 0;\n return rx_escapable.test(string)\n ? \"\\\"\" + string.replace(rx_escapable, function (a) {\n var c = meta[a];\n return typeof c === \"string\"\n ? c\n : \"\\\\u\" + (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4);\n }) + \"\\\"\"\n : \"\\\"\" + string + \"\\\"\";\n }\n\n\n function str(key, holder) {\n\n// Produce a string from holder[key].\n\n var i; // The loop counter.\n var k; // The member key.\n var v; // The member value.\n var length;\n var mind = gap;\n var partial;\n var value = holder[key];\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n if (value && typeof value === \"object\" &&\n typeof value.toJSON === \"function\") {\n value = value.toJSON(key);\n }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n if (typeof rep === \"function\") {\n value = rep.call(holder, key, value);\n }\n\n// What happens next depends on the value's type.\n\n switch (typeof value) {\n case \"string\":\n return quote(value);\n\n case \"number\":\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n return isFinite(value)\n ? String(value)\n : \"null\";\n\n case \"boolean\":\n case \"null\":\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce \"null\". The case is included here in\n// the remote chance that this gets fixed someday.\n\n return String(value);\n\n// If the type is \"object\", we might be dealing with an object or an array or\n// null.\n\n case \"object\":\n\n// Due to a specification blunder in ECMAScript, typeof null is \"object\",\n// so watch out for that case.\n\n if (!value) {\n return \"null\";\n }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n gap += indent;\n partial = [];\n\n// Is the value an array?\n\n if (Object.prototype.toString.apply(value) === \"[object Array]\") {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || \"null\";\n }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n v = partial.length === 0\n ? \"[]\"\n : gap\n ? \"[\\n\" + gap + partial.join(\",\\n\" + gap) + \"\\n\" + mind + \"]\"\n : \"[\" + partial.join(\",\") + \"]\";\n gap = mind;\n return v;\n }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n if (rep && typeof rep === \"object\") {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === \"string\") {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (\n gap\n ? \": \"\n : \":\"\n ) + v);\n }\n }\n }\n } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (\n gap\n ? \": \"\n : \":\"\n ) + v);\n }\n }\n }\n }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n v = partial.length === 0\n ? \"{}\"\n : gap\n ? \"{\\n\" + gap + partial.join(\",\\n\" + gap) + \"\\n\" + mind + \"}\"\n : \"{\" + partial.join(\",\") + \"}\";\n gap = mind;\n return v;\n }\n }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n if (typeof JSON.stringify !== \"function\") {\n meta = { // table of character substitutions\n \"\\b\": \"\\\\b\",\n \"\\t\": \"\\\\t\",\n \"\\n\": \"\\\\n\",\n \"\\f\": \"\\\\f\",\n \"\\r\": \"\\\\r\",\n \"\\\"\": \"\\\\\\\"\",\n \"\\\\\": \"\\\\\\\\\"\n };\n JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n var i;\n gap = \"\";\n indent = \"\";\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n if (typeof space === \"number\") {\n for (i = 0; i < space; i += 1) {\n indent += \" \";\n }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n } else if (typeof space === \"string\") {\n indent = space;\n }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n rep = replacer;\n if (replacer && typeof replacer !== \"function\" &&\n (typeof replacer !== \"object\" ||\n typeof replacer.length !== \"number\")) {\n throw new Error(\"JSON.stringify\");\n }\n\n// Make a fake root object containing our value under the key of \"\".\n// Return the result of stringifying the value.\n\n return str(\"\", {\"\": value});\n };\n }\n\n\n// If the JSON object does not yet have a parse method, give it one.\n\n if (typeof JSON.parse !== \"function\") {\n JSON.parse = function (text, reviver) {\n\n// The parse method takes a text and an optional reviver function, and returns\n// a JavaScript value if the text is a valid JSON text.\n\n var j;\n\n function walk(holder, key) {\n\n// The walk method is used to recursively walk the resulting structure so\n// that modifications can be made.\n\n var k;\n var v;\n var value = holder[key];\n if (value && typeof value === \"object\") {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n }\n }\n }\n return reviver.call(holder, key, value);\n }\n\n\n// Parsing happens in four stages. In the first stage, we replace certain\n// Unicode characters with escape sequences. JavaScript handles many characters\n// incorrectly, either silently deleting them, or treating them as line endings.\n\n text = String(text);\n rx_dangerous.lastIndex = 0;\n if (rx_dangerous.test(text)) {\n text = text.replace(rx_dangerous, function (a) {\n return \"\\\\u\" +\n (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4);\n });\n }\n\n// In the second stage, we run the text against regular expressions that look\n// for non-JSON patterns. We are especially concerned with \"()\" and \"new\"\n// because they can cause invocation, and \"=\" because it can cause mutation.\n// But just to be safe, we want to reject all unexpected forms.\n\n// We split the second stage into 4 regexp operations in order to work around\n// crippling inefficiencies in IE's and Safari's regexp engines. First we\n// replace the JSON backslash pairs with \"@\" (a non-JSON character). Second, we\n// replace all simple value tokens with \"]\" characters. Third, we delete all\n// open brackets that follow a colon or comma or that begin the text. Finally,\n// we look to see that the remaining characters are only whitespace or \"]\" or\n// \",\" or \":\" or \"{\" or \"}\". If that is so, then the text is safe for eval.\n\n if (\n rx_one.test(\n text\n .replace(rx_two, \"@\")\n .replace(rx_three, \"]\")\n .replace(rx_four, \"\")\n )\n ) {\n\n// In the third stage we use the eval function to compile the text into a\n// JavaScript structure. The \"{\" operator is subject to a syntactic ambiguity\n// in JavaScript: it can begin a block or an object literal. We wrap the text\n// in parens to eliminate the ambiguity.\n\n j = eval(\"(\" + text + \")\");\n\n// In the optional fourth stage, we recursively walk the new structure, passing\n// each name/value pair to a reviver function for possible transformation.\n\n return (typeof reviver === \"function\")\n ? walk({\"\": j}, \"\")\n : j;\n }\n\n// If the text is not JSON parseable, then a SyntaxError is thrown.\n\n throw new SyntaxError(\"JSON.parse\");\n };\n }\n}());","var util = require('./util')\nvar slice = util.slice\nvar pluck = util.pluck\nvar each = util.each\nvar bind = util.bind\nvar create = util.create\nvar isList = util.isList\nvar isFunction = util.isFunction\nvar isObject = util.isObject\n\nmodule.exports = {\n\tcreateStore: createStore\n}\n\nvar storeAPI = {\n\tversion: '2.0.12',\n\tenabled: false,\n\t\n\t// get returns the value of the given key. If that value\n\t// is undefined, it returns optionalDefaultValue instead.\n\tget: function(key, optionalDefaultValue) {\n\t\tvar data = this.storage.read(this._namespacePrefix + key)\n\t\treturn this._deserialize(data, optionalDefaultValue)\n\t},\n\n\t// set will store the given value at key and returns value.\n\t// Calling set with value === undefined is equivalent to calling remove.\n\tset: function(key, value) {\n\t\tif (value === undefined) {\n\t\t\treturn this.remove(key)\n\t\t}\n\t\tthis.storage.write(this._namespacePrefix + key, this._serialize(value))\n\t\treturn value\n\t},\n\n\t// remove deletes the key and value stored at the given key.\n\tremove: function(key) {\n\t\tthis.storage.remove(this._namespacePrefix + key)\n\t},\n\n\t// each will call the given callback once for each key-value pair\n\t// in this store.\n\teach: function(callback) {\n\t\tvar self = this\n\t\tthis.storage.each(function(val, namespacedKey) {\n\t\t\tcallback.call(self, self._deserialize(val), (namespacedKey || '').replace(self._namespaceRegexp, ''))\n\t\t})\n\t},\n\n\t// clearAll will remove all the stored key-value pairs in this store.\n\tclearAll: function() {\n\t\tthis.storage.clearAll()\n\t},\n\n\t// additional functionality that can't live in plugins\n\t// ---------------------------------------------------\n\n\t// hasNamespace returns true if this store instance has the given namespace.\n\thasNamespace: function(namespace) {\n\t\treturn (this._namespacePrefix == '__storejs_'+namespace+'_')\n\t},\n\n\t// createStore creates a store.js instance with the first\n\t// functioning storage in the list of storage candidates,\n\t// and applies the the given mixins to the instance.\n\tcreateStore: function() {\n\t\treturn createStore.apply(this, arguments)\n\t},\n\t\n\taddPlugin: function(plugin) {\n\t\tthis._addPlugin(plugin)\n\t},\n\t\n\tnamespace: function(namespace) {\n\t\treturn createStore(this.storage, this.plugins, namespace)\n\t}\n}\n\nfunction _warn() {\n\tvar _console = (typeof console == 'undefined' ? null : console)\n\tif (!_console) { return }\n\tvar fn = (_console.warn ? _console.warn : _console.log)\n\tfn.apply(_console, arguments)\n}\n\nfunction createStore(storages, plugins, namespace) {\n\tif (!namespace) {\n\t\tnamespace = ''\n\t}\n\tif (storages && !isList(storages)) {\n\t\tstorages = [storages]\n\t}\n\tif (plugins && !isList(plugins)) {\n\t\tplugins = [plugins]\n\t}\n\n\tvar namespacePrefix = (namespace ? '__storejs_'+namespace+'_' : '')\n\tvar namespaceRegexp = (namespace ? new RegExp('^'+namespacePrefix) : null)\n\tvar legalNamespaces = /^[a-zA-Z0-9_\\-]*$/ // alpha-numeric + underscore and dash\n\tif (!legalNamespaces.test(namespace)) {\n\t\tthrow new Error('store.js namespaces can only have alphanumerics + underscores and dashes')\n\t}\n\t\n\tvar _privateStoreProps = {\n\t\t_namespacePrefix: namespacePrefix,\n\t\t_namespaceRegexp: namespaceRegexp,\n\n\t\t_testStorage: function(storage) {\n\t\t\ttry {\n\t\t\t\tvar testStr = '__storejs__test__'\n\t\t\t\tstorage.write(testStr, testStr)\n\t\t\t\tvar ok = (storage.read(testStr) === testStr)\n\t\t\t\tstorage.remove(testStr)\n\t\t\t\treturn ok\n\t\t\t} catch(e) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\t_assignPluginFnProp: function(pluginFnProp, propName) {\n\t\t\tvar oldFn = this[propName]\n\t\t\tthis[propName] = function pluginFn() {\n\t\t\t\tvar args = slice(arguments, 0)\n\t\t\t\tvar self = this\n\n\t\t\t\t// super_fn calls the old function which was overwritten by\n\t\t\t\t// this mixin.\n\t\t\t\tfunction super_fn() {\n\t\t\t\t\tif (!oldFn) { return }\n\t\t\t\t\teach(arguments, function(arg, i) {\n\t\t\t\t\t\targs[i] = arg\n\t\t\t\t\t})\n\t\t\t\t\treturn oldFn.apply(self, args)\n\t\t\t\t}\n\n\t\t\t\t// Give mixing function access to super_fn by prefixing all mixin function\n\t\t\t\t// arguments with super_fn.\n\t\t\t\tvar newFnArgs = [super_fn].concat(args)\n\n\t\t\t\treturn pluginFnProp.apply(self, newFnArgs)\n\t\t\t}\n\t\t},\n\n\t\t_serialize: function(obj) {\n\t\t\treturn JSON.stringify(obj)\n\t\t},\n\n\t\t_deserialize: function(strVal, defaultVal) {\n\t\t\tif (!strVal) { return defaultVal }\n\t\t\t// It is possible that a raw string value has been previously stored\n\t\t\t// in a storage without using store.js, meaning it will be a raw\n\t\t\t// string value instead of a JSON serialized string. By defaulting\n\t\t\t// to the raw string value in case of a JSON parse error, we allow\n\t\t\t// for past stored values to be forwards-compatible with store.js\n\t\t\tvar val = ''\n\t\t\ttry { val = JSON.parse(strVal) }\n\t\t\tcatch(e) { val = strVal }\n\n\t\t\treturn (val !== undefined ? val : defaultVal)\n\t\t},\n\t\t\n\t\t_addStorage: function(storage) {\n\t\t\tif (this.enabled) { return }\n\t\t\tif (this._testStorage(storage)) {\n\t\t\t\tthis.storage = storage\n\t\t\t\tthis.enabled = true\n\t\t\t}\n\t\t},\n\n\t\t_addPlugin: function(plugin) {\n\t\t\tvar self = this\n\n\t\t\t// If the plugin is an array, then add all plugins in the array.\n\t\t\t// This allows for a plugin to depend on other plugins.\n\t\t\tif (isList(plugin)) {\n\t\t\t\teach(plugin, function(plugin) {\n\t\t\t\t\tself._addPlugin(plugin)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Keep track of all plugins we've seen so far, so that we\n\t\t\t// don't add any of them twice.\n\t\t\tvar seenPlugin = pluck(this.plugins, function(seenPlugin) {\n\t\t\t\treturn (plugin === seenPlugin)\n\t\t\t})\n\t\t\tif (seenPlugin) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.plugins.push(plugin)\n\n\t\t\t// Check that the plugin is properly formed\n\t\t\tif (!isFunction(plugin)) {\n\t\t\t\tthrow new Error('Plugins must be function values that return objects')\n\t\t\t}\n\n\t\t\tvar pluginProperties = plugin.call(this)\n\t\t\tif (!isObject(pluginProperties)) {\n\t\t\t\tthrow new Error('Plugins must return an object of function properties')\n\t\t\t}\n\n\t\t\t// Add the plugin function properties to this store instance.\n\t\t\teach(pluginProperties, function(pluginFnProp, propName) {\n\t\t\t\tif (!isFunction(pluginFnProp)) {\n\t\t\t\t\tthrow new Error('Bad plugin property: '+propName+' from plugin '+plugin.name+'. Plugins should only return functions.')\n\t\t\t\t}\n\t\t\t\tself._assignPluginFnProp(pluginFnProp, propName)\n\t\t\t})\n\t\t},\n\t\t\n\t\t// Put deprecated properties in the private API, so as to not expose it to accidential\n\t\t// discovery through inspection of the store object.\n\t\t\n\t\t// Deprecated: addStorage\n\t\taddStorage: function(storage) {\n\t\t\t_warn('store.addStorage(storage) is deprecated. Use createStore([storages])')\n\t\t\tthis._addStorage(storage)\n\t\t}\n\t}\n\n\tvar store = create(_privateStoreProps, storeAPI, {\n\t\tplugins: []\n\t})\n\tstore.raw = {}\n\teach(store, function(prop, propName) {\n\t\tif (isFunction(prop)) {\n\t\t\tstore.raw[propName] = bind(store, prop)\t\t\t\n\t\t}\n\t})\n\teach(storages, function(storage) {\n\t\tstore._addStorage(storage)\n\t})\n\teach(plugins, function(plugin) {\n\t\tstore._addPlugin(plugin)\n\t})\n\treturn store\n}\n","var assign = make_assign()\nvar create = make_create()\nvar trim = make_trim()\nvar Global = (typeof window !== 'undefined' ? window : global)\n\nmodule.exports = {\n\tassign: assign,\n\tcreate: create,\n\ttrim: trim,\n\tbind: bind,\n\tslice: slice,\n\teach: each,\n\tmap: map,\n\tpluck: pluck,\n\tisList: isList,\n\tisFunction: isFunction,\n\tisObject: isObject,\n\tGlobal: Global\n}\n\nfunction make_assign() {\n\tif (Object.assign) {\n\t\treturn Object.assign\n\t} else {\n\t\treturn function shimAssign(obj, props1, props2, etc) {\n\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\teach(Object(arguments[i]), function(val, key) {\n\t\t\t\t\tobj[key] = val\n\t\t\t\t})\n\t\t\t}\t\t\t\n\t\t\treturn obj\n\t\t}\n\t}\n}\n\nfunction make_create() {\n\tif (Object.create) {\n\t\treturn function create(obj, assignProps1, assignProps2, etc) {\n\t\t\tvar assignArgsList = slice(arguments, 1)\n\t\t\treturn assign.apply(this, [Object.create(obj)].concat(assignArgsList))\n\t\t}\n\t} else {\n\t\tfunction F() {} // eslint-disable-line no-inner-declarations\n\t\treturn function create(obj, assignProps1, assignProps2, etc) {\n\t\t\tvar assignArgsList = slice(arguments, 1)\n\t\t\tF.prototype = obj\n\t\t\treturn assign.apply(this, [new F()].concat(assignArgsList))\n\t\t}\n\t}\n}\n\nfunction make_trim() {\n\tif (String.prototype.trim) {\n\t\treturn function trim(str) {\n\t\t\treturn String.prototype.trim.call(str)\n\t\t}\n\t} else {\n\t\treturn function trim(str) {\n\t\t\treturn str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n\t\t}\n\t}\n}\n\nfunction bind(obj, fn) {\n\treturn function() {\n\t\treturn fn.apply(obj, Array.prototype.slice.call(arguments, 0))\n\t}\n}\n\nfunction slice(arr, index) {\n\treturn Array.prototype.slice.call(arr, index || 0)\n}\n\nfunction each(obj, fn) {\n\tpluck(obj, function(val, key) {\n\t\tfn(val, key)\n\t\treturn false\n\t})\n}\n\nfunction map(obj, fn) {\n\tvar res = (isList(obj) ? [] : {})\n\tpluck(obj, function(v, k) {\n\t\tres[k] = fn(v, k)\n\t\treturn false\n\t})\n\treturn res\n}\n\nfunction pluck(obj, fn) {\n\tif (isList(obj)) {\n\t\tfor (var i=0; i= 0; i--) {\n\t\tif (!trim(cookies[i])) {\n\t\t\tcontinue\n\t\t}\n\t\tvar kvp = cookies[i].split('=')\n\t\tvar key = unescape(kvp[0])\n\t\tvar val = unescape(kvp[1])\n\t\tcallback(val, key)\n\t}\n}\n\nfunction write(key, data) {\n\tif(!key) { return }\n\tdoc.cookie = escape(key) + \"=\" + escape(data) + \"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/\"\n}\n\nfunction remove(key) {\n\tif (!key || !_has(key)) {\n\t\treturn\n\t}\n\tdoc.cookie = escape(key) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/\"\n}\n\nfunction clearAll() {\n\teach(function(_, key) {\n\t\tremove(key)\n\t})\n}\n\nfunction _has(key) {\n\treturn (new RegExp(\"(?:^|;\\\\s*)\" + escape(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(doc.cookie)\n}\n","var util = require('../src/util')\nvar Global = util.Global\n\nmodule.exports = {\n\tname: 'localStorage',\n\tread: read,\n\twrite: write,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll,\n}\n\nfunction localStorage() {\n\treturn Global.localStorage\n}\n\nfunction read(key) {\n\treturn localStorage().getItem(key)\n}\n\nfunction write(key, data) {\n\treturn localStorage().setItem(key, data)\n}\n\nfunction each(fn) {\n\tfor (var i = localStorage().length - 1; i >= 0; i--) {\n\t\tvar key = localStorage().key(i)\n\t\tfn(read(key), key)\n\t}\n}\n\nfunction remove(key) {\n\treturn localStorage().removeItem(key)\n}\n\nfunction clearAll() {\n\treturn localStorage().clear()\n}\n","// memoryStorage is a useful last fallback to ensure that the store\n// is functions (meaning store.get(), store.set(), etc will all function).\n// However, stored values will not persist when the browser navigates to\n// a new page or reloads the current page.\n\nmodule.exports = {\n\tname: 'memoryStorage',\n\tread: read,\n\twrite: write,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll,\n}\n\nvar memoryStorage = {}\n\nfunction read(key) {\n\treturn memoryStorage[key]\n}\n\nfunction write(key, data) {\n\tmemoryStorage[key] = data\n}\n\nfunction each(callback) {\n\tfor (var key in memoryStorage) {\n\t\tif (memoryStorage.hasOwnProperty(key)) {\n\t\t\tcallback(memoryStorage[key], key)\n\t\t}\n\t}\n}\n\nfunction remove(key) {\n\tdelete memoryStorage[key]\n}\n\nfunction clearAll(key) {\n\tmemoryStorage = {}\n}\n","// oldFF-globalStorage provides storage for Firefox\n// versions 6 and 7, where no localStorage, etc\n// is available.\n\nvar util = require('../src/util')\nvar Global = util.Global\n\nmodule.exports = {\n\tname: 'oldFF-globalStorage',\n\tread: read,\n\twrite: write,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll,\n}\n\nvar globalStorage = Global.globalStorage\n\nfunction read(key) {\n\treturn globalStorage[key]\n}\n\nfunction write(key, data) {\n\tglobalStorage[key] = data\n}\n\nfunction each(fn) {\n\tfor (var i = globalStorage.length - 1; i >= 0; i--) {\n\t\tvar key = globalStorage.key(i)\n\t\tfn(globalStorage[key], key)\n\t}\n}\n\nfunction remove(key) {\n\treturn globalStorage.removeItem(key)\n}\n\nfunction clearAll() {\n\teach(function(key, _) {\n\t\tdelete globalStorage[key]\n\t})\n}\n","// oldIE-userDataStorage provides storage for Internet Explorer\n// versions 6 and 7, where no localStorage, sessionStorage, etc\n// is available.\n\nvar util = require('../src/util')\nvar Global = util.Global\n\nmodule.exports = {\n\tname: 'oldIE-userDataStorage',\n\twrite: write,\n\tread: read,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll,\n}\n\nvar storageName = 'storejs'\nvar doc = Global.document\nvar _withStorageEl = _makeIEStorageElFunction()\nvar disable = (Global.navigator ? Global.navigator.userAgent : '').match(/ (MSIE 8|MSIE 9|MSIE 10)\\./) // MSIE 9.x, MSIE 10.x\n\nfunction write(unfixedKey, data) {\n\tif (disable) { return }\n\tvar fixedKey = fixKey(unfixedKey)\n\t_withStorageEl(function(storageEl) {\n\t\tstorageEl.setAttribute(fixedKey, data)\n\t\tstorageEl.save(storageName)\n\t})\n}\n\nfunction read(unfixedKey) {\n\tif (disable) { return }\n\tvar fixedKey = fixKey(unfixedKey)\n\tvar res = null\n\t_withStorageEl(function(storageEl) {\n\t\tres = storageEl.getAttribute(fixedKey)\n\t})\n\treturn res\n}\n\nfunction each(callback) {\n\t_withStorageEl(function(storageEl) {\n\t\tvar attributes = storageEl.XMLDocument.documentElement.attributes\n\t\tfor (var i=attributes.length-1; i>=0; i--) {\n\t\t\tvar attr = attributes[i]\n\t\t\tcallback(storageEl.getAttribute(attr.name), attr.name)\n\t\t}\n\t})\n}\n\nfunction remove(unfixedKey) {\n\tvar fixedKey = fixKey(unfixedKey)\n\t_withStorageEl(function(storageEl) {\n\t\tstorageEl.removeAttribute(fixedKey)\n\t\tstorageEl.save(storageName)\n\t})\n}\n\nfunction clearAll() {\n\t_withStorageEl(function(storageEl) {\n\t\tvar attributes = storageEl.XMLDocument.documentElement.attributes\n\t\tstorageEl.load(storageName)\n\t\tfor (var i=attributes.length-1; i>=0; i--) {\n\t\t\tstorageEl.removeAttribute(attributes[i].name)\n\t\t}\n\t\tstorageEl.save(storageName)\n\t})\n}\n\n// Helpers\n//////////\n\n// In IE7, keys cannot start with a digit or contain certain chars.\n// See https://github.com/marcuswestin/store.js/issues/40\n// See https://github.com/marcuswestin/store.js/issues/83\nvar forbiddenCharsRegex = new RegExp(\"[!\\\"#$%&'()*+,/\\\\\\\\:;<=>?@[\\\\]^`{|}~]\", \"g\")\nfunction fixKey(key) {\n\treturn key.replace(/^\\d/, '___$&').replace(forbiddenCharsRegex, '___')\n}\n\nfunction _makeIEStorageElFunction() {\n\tif (!doc || !doc.documentElement || !doc.documentElement.addBehavior) {\n\t\treturn null\n\t}\n\tvar scriptTag = 'script',\n\t\tstorageOwner,\n\t\tstorageContainer,\n\t\tstorageEl\n\n\t// Since #userData storage applies only to specific paths, we need to\n\t// somehow link our data to a specific path. We choose /favicon.ico\n\t// as a pretty safe option, since all browsers already make a request to\n\t// this URL anyway and being a 404 will not hurt us here. We wrap an\n\t// iframe pointing to the favicon in an ActiveXObject(htmlfile) object\n\t// (see: http://msdn.microsoft.com/en-us/library/aa752574(v=VS.85).aspx)\n\t// since the iframe access rules appear to allow direct access and\n\t// manipulation of the document element, even for a 404 page. This\n\t// document can be used instead of the current document (which would\n\t// have been limited to the current path) to perform #userData storage.\n\ttry {\n\t\t/* global ActiveXObject */\n\t\tstorageContainer = new ActiveXObject('htmlfile')\n\t\tstorageContainer.open()\n\t\tstorageContainer.write('<'+scriptTag+'>document.w=window')\n\t\tstorageContainer.close()\n\t\tstorageOwner = storageContainer.w.frames[0].document\n\t\tstorageEl = storageOwner.createElement('div')\n\t} catch(e) {\n\t\t// somehow ActiveXObject instantiation failed (perhaps some special\n\t\t// security settings or otherwse), fall back to per-path storage\n\t\tstorageEl = doc.createElement('div')\n\t\tstorageOwner = doc.body\n\t}\n\n\treturn function(storeFunction) {\n\t\tvar args = [].slice.call(arguments, 0)\n\t\targs.unshift(storageEl)\n\t\t// See http://msdn.microsoft.com/en-us/library/ms531081(v=VS.85).aspx\n\t\t// and http://msdn.microsoft.com/en-us/library/ms531424(v=VS.85).aspx\n\t\tstorageOwner.appendChild(storageEl)\n\t\tstorageEl.addBehavior('#default#userData')\n\t\tstorageEl.load(storageName)\n\t\tstoreFunction.apply(this, args)\n\t\tstorageOwner.removeChild(storageEl)\n\t\treturn\n\t}\n}\n","var util = require('../src/util')\nvar Global = util.Global\n\nmodule.exports = {\n\tname: 'sessionStorage',\n\tread: read,\n\twrite: write,\n\teach: each,\n\tremove: remove,\n\tclearAll: clearAll\n}\n\nfunction sessionStorage() {\n\treturn Global.sessionStorage\n}\n\nfunction read(key) {\n\treturn sessionStorage().getItem(key)\n}\n\nfunction write(key, data) {\n\treturn sessionStorage().setItem(key, data)\n}\n\nfunction each(fn) {\n\tfor (var i = sessionStorage().length - 1; i >= 0; i--) {\n\t\tvar key = sessionStorage().key(i)\n\t\tfn(read(key), key)\n\t}\n}\n\nfunction remove(key) {\n\treturn sessionStorage().removeItem(key)\n}\n\nfunction clearAll() {\n\treturn sessionStorage().clear()\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// Copyright 2019-2022 @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\nconst lenIn = 171116;\nconst lenOut = 339508;\nconst bytes = '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';\n\nmodule.exports = { bytes, lenIn, lenOut };\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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\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\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\n return target;\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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\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\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\n return target;\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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"4baeadd7\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"token-claims-web:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\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\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[\"webpackChunktoken_claims_web\"] = self[\"webpackChunktoken_claims_web\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import * as React from 'react';\nimport { createElement, useLayoutEffect, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, u as useInsertionEffectMaybe } from './emotion-element-cbed451f.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, b as ThemeProvider, _ as __unsafe_useEmotionCache, a as useTheme, w as withEmotionCache, d as withTheme } from './emotion-element-cbed451f.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.10.0\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": \"./macro.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-hnrs\",\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: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.10.0\",\n\t\t\"@emotion/cache\": \"^11.10.0\",\n\t\t\"@emotion/serialize\": \"^1.1.0\",\n\t\t\"@emotion/utils\": \"^1.2.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.0\",\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.18.5\",\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.10.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.0\",\n\t\t\"@emotion/server\": \"11.10.0\",\n\t\t\"@emotion/styled\": \"11.10.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\ttypescript: \"^4.5.5\"\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-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": \"./macro.js\"\n\t\t\t}\n\t\t}\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 useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : useLayoutEffect;\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, useContext(ThemeContext));\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 useInsertionEffect(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\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 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 useInsertionEffect(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 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 Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectMaybe(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\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 serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\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 return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), 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 // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : 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 * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\n\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as SystemGlobalStyles } from '@mui/system';\nimport defaultTheme from '../styles/defaultTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction GlobalStyles(props) {\n return /*#__PURE__*/_jsx(SystemGlobalStyles, _extends({}, props, {\n defaultTheme: defaultTheme\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The styles you want to apply globally.\n */\n styles: PropTypes.oneOfType([PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.shape({\n __emotion_styles: PropTypes.any.isRequired\n }), PropTypes.string, PropTypes.bool])\n} : void 0;\nexport default GlobalStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useThemeProps from '../styles/useThemeProps';\nimport GlobalStyles from '../GlobalStyles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const html = (theme, enableColorScheme) => _extends({\n WebkitFontSmoothing: 'antialiased',\n // Antialiasing.\n MozOsxFontSmoothing: 'grayscale',\n // Antialiasing.\n // Change from `box-sizing: content-box` so that `width`\n // is not affected by `padding` or `border`.\n boxSizing: 'border-box',\n // Fix font resize problem in iOS\n WebkitTextSizeAdjust: '100%'\n}, enableColorScheme && {\n colorScheme: theme.palette.mode\n});\nexport const body = theme => _extends({\n color: (theme.vars || theme).palette.text.primary\n}, theme.typography.body1, {\n backgroundColor: (theme.vars || theme).palette.background.default,\n '@media print': {\n // Save printer ink.\n backgroundColor: (theme.vars || theme).palette.common.white\n }\n});\nexport const styles = (theme, enableColorScheme = false) => {\n var _theme$components, _theme$components$Mui;\n\n let defaultStyles = {\n html: html(theme, enableColorScheme),\n '*, *::before, *::after': {\n boxSizing: 'inherit'\n },\n 'strong, b': {\n fontWeight: theme.typography.fontWeightBold\n },\n body: _extends({\n margin: 0\n }, body(theme), {\n // Add support for document.body.requestFullScreen().\n // Other elements, if background transparent, are not supported.\n '&::backdrop': {\n backgroundColor: (theme.vars || theme).palette.background.default\n }\n })\n };\n const themeOverrides = (_theme$components = theme.components) == null ? void 0 : (_theme$components$Mui = _theme$components.MuiCssBaseline) == null ? void 0 : _theme$components$Mui.styleOverrides;\n\n if (themeOverrides) {\n defaultStyles = [defaultStyles, themeOverrides];\n }\n\n return defaultStyles;\n};\n/**\n * Kickstart an elegant, consistent, and simple baseline to build upon.\n */\n\nfunction CssBaseline(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCssBaseline'\n });\n const {\n children,\n enableColorScheme = false\n } = props;\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(GlobalStyles, {\n styles: theme => styles(theme, enableColorScheme)\n }), children]\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? CssBaseline.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * You can wrap a node.\n */\n children: PropTypes.node,\n\n /**\n * Enable `color-scheme` CSS property to use `theme.palette.mode`.\n * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme\n * For browser support, check out https://caniuse.com/?search=color-scheme\n * @default false\n */\n enableColorScheme: PropTypes.bool\n} : void 0;\nexport default CssBaseline;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache'; // prepend: true moves MUI styles to the top of the so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst cache = createCache({\n key: 'css',\n prepend: true\n});\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n children\n } = props;\n return injectFirst ? /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n }) : children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","const hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested'; // To support composition of theme.\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['MUI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, localTheme);\n}\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\n\n\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n const outerTheme = useTheme();\n\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n\n const theme = React.useMemo(() => {\n const output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/_jsx(ThemeContext.Provider, {\n value: theme,\n children: children\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\n\nexport default ThemeProvider;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as MuiThemeProvider } from '@mui/private-theming';\nimport { exactProp } from '@mui/utils';\nimport { ThemeContext as StyledEngineThemeContext } from '@mui/styled-engine';\nimport useTheme from '../useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction InnerThemeProvider(props) {\n const theme = useTheme();\n return /*#__PURE__*/_jsx(StyledEngineThemeContext.Provider, {\n value: typeof theme === 'object' ? theme : {},\n children: props.children\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? InnerThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node\n} : void 0;\n/**\n * This component makes the `theme` available down the React tree.\n * It should preferably be used at **the root of your component tree**.\n */\n\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n return /*#__PURE__*/_jsx(MuiThemeProvider, {\n theme: localTheme,\n children: /*#__PURE__*/_jsx(InnerThemeProvider, {\n children: children\n })\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\n\nexport default ThemeProvider;","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\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\n return target;\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n var _style$transitionDura, _style$transitionTimi;\n\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,\n delay: style.transitionDelay\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"container\", \"direction\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { elementAcceptingRef, HTMLElementType, chainPropTypes } from '@mui/utils';\nimport debounce from '../utils/debounce';\nimport useForkRef from '../utils/useForkRef';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport { ownerWindow } from '../utils'; // Translate the node so it can't be seen on the screen.\n// Later, we're going to translate the node back to its original location with `none`.\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction getTranslateValue(direction, node, resolvedContainer) {\n const rect = node.getBoundingClientRect();\n const containerRect = resolvedContainer && resolvedContainer.getBoundingClientRect();\n const containerWindow = ownerWindow(node);\n let transform;\n\n if (node.fakeTransform) {\n transform = node.fakeTransform;\n } else {\n const computedStyle = containerWindow.getComputedStyle(node);\n transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n }\n\n let offsetX = 0;\n let offsetY = 0;\n\n if (transform && transform !== 'none' && typeof transform === 'string') {\n const transformValues = transform.split('(')[1].split(')')[0].split(',');\n offsetX = parseInt(transformValues[4], 10);\n offsetY = parseInt(transformValues[5], 10);\n }\n\n if (direction === 'left') {\n if (containerRect) {\n return `translateX(${containerRect.right + offsetX - rect.left}px)`;\n }\n\n return `translateX(${containerWindow.innerWidth + offsetX - rect.left}px)`;\n }\n\n if (direction === 'right') {\n if (containerRect) {\n return `translateX(-${rect.right - containerRect.left - offsetX}px)`;\n }\n\n return `translateX(-${rect.left + rect.width - offsetX}px)`;\n }\n\n if (direction === 'up') {\n if (containerRect) {\n return `translateY(${containerRect.bottom + offsetY - rect.top}px)`;\n }\n\n return `translateY(${containerWindow.innerHeight + offsetY - rect.top}px)`;\n } // direction === 'down'\n\n\n if (containerRect) {\n return `translateY(-${rect.top - containerRect.top + rect.height - offsetY}px)`;\n }\n\n return `translateY(-${rect.top + rect.height - offsetY}px)`;\n}\n\nfunction resolveContainer(containerPropProp) {\n return typeof containerPropProp === 'function' ? containerPropProp() : containerPropProp;\n}\n\nexport function setTranslateValue(direction, node, containerProp) {\n const resolvedContainer = resolveContainer(containerProp);\n const transform = getTranslateValue(direction, node, resolvedContainer);\n\n if (transform) {\n node.style.webkitTransform = transform;\n node.style.transform = transform;\n }\n}\n/**\n * The Slide transition is used by the [Drawer](/material-ui/react-drawer/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nconst Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {\n const theme = useTheme();\n const defaultEasing = {\n enter: theme.transitions.easing.easeOut,\n exit: theme.transitions.easing.sharp\n };\n const defaultTimeout = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n\n const {\n addEndListener,\n appear = true,\n children,\n container: containerProp,\n direction = 'down',\n easing: easingProp = defaultEasing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const childrenRef = React.useRef(null);\n const handleRefIntermediary = useForkRef(children.ref, childrenRef);\n const handleRef = useForkRef(handleRefIntermediary, ref);\n\n const normalizedTransitionCallback = callback => isAppearing => {\n if (callback) {\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (isAppearing === undefined) {\n callback(childrenRef.current);\n } else {\n callback(childrenRef.current, isAppearing);\n }\n }\n };\n\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n setTranslateValue(direction, node, containerProp);\n reflow(node);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', _extends({}, transitionProps));\n node.style.transition = theme.transitions.create('transform', _extends({}, transitionProps));\n node.style.webkitTransform = 'none';\n node.style.transform = 'none';\n\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', transitionProps);\n node.style.transition = theme.transitions.create('transform', transitionProps);\n setTranslateValue(direction, node, containerProp);\n\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(node => {\n // No need for transitions when the component is hidden\n node.style.webkitTransition = '';\n node.style.transition = '';\n\n if (onExited) {\n onExited(node);\n }\n });\n\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(childrenRef.current, next);\n }\n };\n\n const updatePosition = React.useCallback(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n }, [direction, containerProp]);\n React.useEffect(() => {\n // Skip configuration where the position is screen size invariant.\n if (inProp || direction === 'down' || direction === 'right') {\n return undefined;\n }\n\n const handleResize = debounce(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n });\n const containerWindow = ownerWindow(childrenRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [direction, inProp, containerProp]);\n React.useEffect(() => {\n if (!inProp) {\n // We need to update the position of the drawer when the direction change and\n // when it's hidden.\n updatePosition();\n }\n }, [inProp, updatePosition]);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n nodeRef: childrenRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n appear: appear,\n in: inProp,\n timeout: timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n ref: handleRef,\n style: _extends({\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, style, children.props.style)\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slide.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n\n /**\n * An HTML element, or a function that returns one.\n * It's used to set the container the Slide is transitioning from.\n */\n container: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), props => {\n if (props.open) {\n const resolvedContainer = resolveContainer(props.container);\n\n if (resolvedContainer && resolvedContainer.nodeType === 1) {\n const box = resolvedContainer.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedContainer || typeof resolvedContainer.getBoundingClientRect !== 'function' || resolvedContainer.contextElement != null && resolvedContainer.contextElement.nodeType !== 1) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'It should be an HTML element instance.'].join('\\n'));\n }\n }\n\n return null;\n }),\n\n /**\n * Direction the child node will enter from.\n * @default 'down'\n */\n direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n * @default {\n * enter: theme.transitions.easing.easeOut,\n * exit: theme.transitions.easing.sharp,\n * }\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Slide;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils'; // TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase : never` once generatePropTypes runs with TS 4.1\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\n\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click away listener](https://mui.com/base/react-click-away-listener/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/base/api/click-away-listener/)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef( // @ts-expect-error TODO upstream fix\n children.ref, nodeRef); // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n\n const handleClickAway = useEventCallback(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current); // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n } // Do not act if user performed touchmove\n\n\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n\n let insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains( // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains( // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n\n const childrenProps = {\n ref: handleRef\n };\n\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n\n return undefined;\n }, [handleClickAway, touchEvent]);\n\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\n\nexport default ClickAwayListener;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef } from '@mui/utils';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { getTransitionProps, reflow } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction getScale(value) {\n return `scale(${value}, ${value ** 2})`;\n}\n\nconst styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n/*\n TODO v6: remove\n Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.\n */\n\nconst isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\\/)15(.|_)4/i.test(navigator.userAgent);\n/**\n * The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and\n * [Popover](/material-ui/react-popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nconst Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = 'auto',\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const timer = React.useRef();\n const autoTimeout = React.useRef();\n const theme = useTheme();\n const nodeRef = React.useRef(null);\n const foreignRef = useForkRef(children.ref, ref);\n const handleRef = useForkRef(nodeRef, foreignRef);\n\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n let duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay,\n easing: transitionTimingFunction\n })].join(',');\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n let duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay: isWebKit154 ? delay : delay || duration * 0.333,\n easing: transitionTimingFunction\n })].join(',');\n node.style.opacity = 0;\n node.style.transform = getScale(0.75);\n\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.current || 0);\n }\n\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n\n React.useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: appear,\n in: inProp,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getPaperUtilityClass(slot) {\n return generateUtilityClass('MuiPaper', slot);\n}\nconst paperClasses = generateUtilityClasses('MuiPaper', ['root', 'rounded', 'outlined', 'elevation', 'elevation0', 'elevation1', 'elevation2', 'elevation3', 'elevation4', 'elevation5', 'elevation6', 'elevation7', 'elevation8', 'elevation9', 'elevation10', 'elevation11', 'elevation12', 'elevation13', 'elevation14', 'elevation15', 'elevation16', 'elevation17', 'elevation18', 'elevation19', 'elevation20', 'elevation21', 'elevation22', 'elevation23', 'elevation24']);\nexport default paperClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"elevation\", \"square\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes, integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport { getPaperUtilityClass } from './paperClasses'; // Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const getOverlayAlpha = elevation => {\n let alphaValue;\n\n if (elevation < 1) {\n alphaValue = 5.11916 * elevation ** 2;\n } else {\n alphaValue = 4.5 * Math.log(elevation + 1) + 2;\n }\n\n return (alphaValue / 100).toFixed(2);\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n square,\n elevation,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, !square && 'rounded', variant === 'elevation' && `elevation${elevation}`]\n };\n return composeClasses(slots, getPaperUtilityClass, classes);\n};\n\nconst PaperRoot = styled('div', {\n name: 'MuiPaper',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], !ownerState.square && styles.rounded, ownerState.variant === 'elevation' && styles[`elevation${ownerState.elevation}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$vars$overlays;\n\n return _extends({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n color: (theme.vars || theme).palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n }, !ownerState.square && {\n borderRadius: theme.shape.borderRadius\n }, ownerState.variant === 'outlined' && {\n border: `1px solid ${(theme.vars || theme).palette.divider}`\n }, ownerState.variant === 'elevation' && _extends({\n boxShadow: (theme.vars || theme).shadows[ownerState.elevation]\n }, !theme.vars && theme.palette.mode === 'dark' && {\n backgroundImage: `linear-gradient(${alpha('#fff', getOverlayAlpha(ownerState.elevation))}, ${alpha('#fff', getOverlayAlpha(ownerState.elevation))})`\n }, theme.vars && {\n backgroundImage: (_theme$vars$overlays = theme.vars.overlays) == null ? void 0 : _theme$vars$overlays[ownerState.elevation]\n }));\n});\nconst Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPaper'\n });\n\n const {\n className,\n component = 'div',\n elevation = 1,\n square = false,\n variant = 'elevation'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component,\n elevation,\n square,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const theme = useTheme();\n\n if (theme.shadows[elevation] === undefined) {\n console.error([`MUI: The elevation provided is not available in the theme.`, `Please make sure that \\`theme.shadows[${elevation}]\\` is defined.`].join('\\n'));\n }\n }\n\n return /*#__PURE__*/_jsx(PaperRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n * @default 1\n */\n elevation: chainPropTypes(integerPropType, props => {\n const {\n elevation,\n variant\n } = props;\n\n if (elevation > 0 && variant === 'outlined') {\n return new Error(`MUI: Combining \\`elevation={${elevation}}\\` with \\`variant=\"${variant}\"\\` has no effect. Either use \\`elevation={0}\\` or use a different \\`variant\\`.`);\n }\n\n return null;\n }),\n\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * @default 'elevation'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['elevation', 'outlined']), PropTypes.string])\n} : void 0;\nexport default Paper;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getSnackbarContentUtilityClass(slot) {\n return generateUtilityClass('MuiSnackbarContent', slot);\n}\nconst snackbarContentClasses = generateUtilityClasses('MuiSnackbarContent', ['root', 'message', 'action']);\nexport default snackbarContentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"action\", \"className\", \"message\", \"role\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { emphasize } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Paper from '../Paper';\nimport { getSnackbarContentUtilityClass } from './snackbarContentClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n action: ['action'],\n message: ['message']\n };\n return composeClasses(slots, getSnackbarContentUtilityClass, classes);\n};\n\nconst SnackbarContentRoot = styled(Paper, {\n name: 'MuiSnackbarContent',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => {\n const emphasis = theme.palette.mode === 'light' ? 0.8 : 0.98;\n const backgroundColor = emphasize(theme.palette.background.default, emphasis);\n return _extends({}, theme.typography.body2, {\n color: theme.vars ? theme.vars.palette.SnackbarContent.color : theme.palette.getContrastText(backgroundColor),\n backgroundColor: theme.vars ? theme.vars.palette.SnackbarContent.bg : backgroundColor,\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n padding: '6px 16px',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n flexGrow: 1,\n [theme.breakpoints.up('sm')]: {\n flexGrow: 'initial',\n minWidth: 288\n }\n });\n});\nconst SnackbarContentMessage = styled('div', {\n name: 'MuiSnackbarContent',\n slot: 'Message',\n overridesResolver: (props, styles) => styles.message\n})({\n padding: '8px 0'\n});\nconst SnackbarContentAction = styled('div', {\n name: 'MuiSnackbarContent',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8\n});\nconst SnackbarContent = /*#__PURE__*/React.forwardRef(function SnackbarContent(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSnackbarContent'\n });\n\n const {\n action,\n className,\n message,\n role = 'alert'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SnackbarContentRoot, _extends({\n role: role,\n square: true,\n elevation: 6,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SnackbarContentMessage, {\n className: classes.message,\n ownerState: ownerState,\n children: message\n }), action ? /*#__PURE__*/_jsx(SnackbarContentAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SnackbarContent.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The action to display. It renders after the message, at the end of the snackbar.\n */\n action: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The message to display.\n */\n message: PropTypes.node,\n\n /**\n * The ARIA role attribute of the element.\n * @default 'alert'\n */\n role: PropTypes\n /* @typescript-to-proptypes-ignore */\n .string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default SnackbarContent;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getSnackbarUtilityClass(slot) {\n return generateUtilityClass('MuiSnackbar', slot);\n}\nconst snackbarClasses = generateUtilityClasses('MuiSnackbar', ['root', 'anchorOriginTopCenter', 'anchorOriginBottomCenter', 'anchorOriginTopRight', 'anchorOriginBottomRight', 'anchorOriginTopLeft', 'anchorOriginBottomLeft']);\nexport default snackbarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"onEnter\", \"onExited\"],\n _excluded2 = [\"action\", \"anchorOrigin\", \"autoHideDuration\", \"children\", \"className\", \"ClickAwayListenerProps\", \"ContentProps\", \"disableWindowBlurListener\", \"message\", \"onBlur\", \"onClose\", \"onFocus\", \"onMouseEnter\", \"onMouseLeave\", \"open\", \"resumeHideDuration\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport ClickAwayListener from '@mui/base/ClickAwayListener';\nimport styled from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport useEventCallback from '../utils/useEventCallback';\nimport capitalize from '../utils/capitalize';\nimport Grow from '../Grow';\nimport SnackbarContent from '../SnackbarContent';\nimport { getSnackbarUtilityClass } from './snackbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n anchorOrigin\n } = ownerState;\n const slots = {\n root: ['root', `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`]\n };\n return composeClasses(slots, getSnackbarUtilityClass, classes);\n};\n\nconst SnackbarRoot = styled('div', {\n name: 'MuiSnackbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n const center = {\n left: '50%',\n right: 'auto',\n transform: 'translateX(-50%)'\n };\n return _extends({\n zIndex: (theme.vars || theme).zIndex.snackbar,\n position: 'fixed',\n display: 'flex',\n left: 8,\n right: 8,\n justifyContent: 'center',\n alignItems: 'center'\n }, ownerState.anchorOrigin.vertical === 'top' ? {\n top: 8\n } : {\n bottom: 8\n }, ownerState.anchorOrigin.horizontal === 'left' && {\n justifyContent: 'flex-start'\n }, ownerState.anchorOrigin.horizontal === 'right' && {\n justifyContent: 'flex-end'\n }, {\n [theme.breakpoints.up('sm')]: _extends({}, ownerState.anchorOrigin.vertical === 'top' ? {\n top: 24\n } : {\n bottom: 24\n }, ownerState.anchorOrigin.horizontal === 'center' && center, ownerState.anchorOrigin.horizontal === 'left' && {\n left: 24,\n right: 'auto'\n }, ownerState.anchorOrigin.horizontal === 'right' && {\n right: 24,\n left: 'auto'\n })\n });\n});\nconst Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSnackbar'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n\n const {\n action,\n anchorOrigin: {\n vertical,\n horizontal\n } = {\n vertical: 'bottom',\n horizontal: 'left'\n },\n autoHideDuration = null,\n children,\n className,\n ClickAwayListenerProps,\n ContentProps,\n disableWindowBlurListener = false,\n message,\n onBlur,\n onClose,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n open,\n resumeHideDuration,\n TransitionComponent = Grow,\n transitionDuration = defaultTransitionDuration,\n TransitionProps: {\n onEnter,\n onExited\n } = {}\n } = props,\n TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n\n const ownerState = _extends({}, props, {\n anchorOrigin: {\n vertical,\n horizontal\n }\n });\n\n const classes = useUtilityClasses(ownerState);\n const timerAutoHide = React.useRef();\n const [exited, setExited] = React.useState(true);\n const handleClose = useEventCallback((...args) => {\n if (onClose) {\n onClose(...args);\n }\n });\n const setAutoHideTimer = useEventCallback(autoHideDurationParam => {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(() => {\n handleClose(null, 'timeout');\n }, autoHideDurationParam);\n });\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, autoHideDuration, setAutoHideTimer]); // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n\n const handlePause = () => {\n clearTimeout(timerAutoHide.current);\n }; // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n\n\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n\n handlePause();\n };\n\n const handleMouseEnter = event => {\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n\n handlePause();\n };\n\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n\n handleResume();\n };\n\n const handleMouseLeave = event => {\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n\n handleResume();\n };\n\n const handleClickAway = event => {\n if (onClose) {\n onClose(event, 'clickaway');\n }\n };\n\n const handleExited = node => {\n setExited(true);\n\n if (onExited) {\n onExited(node);\n }\n };\n\n const handleEnter = (node, isAppearing) => {\n setExited(false);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n };\n\n React.useEffect(() => {\n // TODO: window global should be refactored here\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n\n return undefined;\n }, [disableWindowBlurListener, handleResume, open]);\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n /**\n * @param {KeyboardEvent} nativeEvent\n */\n\n\n function handleKeyDown(nativeEvent) {\n if (!nativeEvent.defaultPrevented) {\n // IE11, Edge (prior to using Bink?) use 'Esc'\n if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n // not calling `preventDefault` since we don't know if people may ignore this event e.g. a permanently open snackbar\n if (onClose) {\n onClose(nativeEvent, 'escapeKeyDown');\n }\n }\n }\n }\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [exited, open, onClose]); // So we only render active snackbars.\n\n if (!open && exited) {\n return null;\n }\n\n return /*#__PURE__*/_jsx(ClickAwayListener, _extends({\n onClickAway: handleClickAway\n }, ClickAwayListenerProps, {\n children: /*#__PURE__*/_jsx(SnackbarRoot, _extends({\n className: clsx(classes.root, className),\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n ownerState: ownerState,\n ref: ref // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.\n // See https://github.com/mui/material-ui/issues/29080\n ,\n role: \"presentation\"\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n direction: vertical === 'top' ? 'down' : 'up',\n onEnter: handleEnter,\n onExited: handleExited\n }, TransitionProps, {\n children: children || /*#__PURE__*/_jsx(SnackbarContent, _extends({\n message: message,\n action: action\n }, ContentProps))\n }))\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Snackbar.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The action to display. It renders after the message, at the end of the snackbar.\n */\n action: PropTypes.node,\n\n /**\n * The anchor of the `Snackbar`.\n * On smaller screens, the component grows to occupy all the available width,\n * the horizontal alignment is ignored.\n * @default { vertical: 'bottom', horizontal: 'left' }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['center', 'left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The number of milliseconds to wait before automatically calling the\n * `onClose` function. `onClose` should then set the state of the `open`\n * prop to hide the Snackbar. This behavior is disabled by default with\n * the `null` value.\n * @default null\n */\n autoHideDuration: PropTypes.number,\n\n /**\n * Replace the `SnackbarContent` component.\n */\n children: PropTypes.element,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Props applied to the `ClickAwayListener` element.\n */\n ClickAwayListenerProps: PropTypes.object,\n\n /**\n * Props applied to the [`SnackbarContent`](/material-ui/api/snackbar-content/) element.\n */\n ContentProps: PropTypes.object,\n\n /**\n * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n * @default false\n */\n disableWindowBlurListener: PropTypes.bool,\n\n /**\n * When displaying multiple consecutive Snackbars from a parent rendering a single\n * , add the key prop to ensure independent treatment of each message.\n * e.g. , otherwise, the message may update-in-place and\n * features such as autoHideDuration may be canceled.\n */\n key: () => null,\n\n /**\n * The message to display.\n */\n message: PropTypes.node,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * Callback fired when the component requests to be closed.\n * Typically `onClose` is used to set state in the parent component,\n * which is used to control the `Snackbar` `open` prop.\n * The `reason` parameter can optionally be used to control the response to `onClose`,\n * for example ignoring `clickaway`.\n *\n * @param {React.SyntheticEvent | Event} event The event source of the callback.\n * @param {string} reason Can be: `\"timeout\"` (`autoHideDuration` expired), `\"clickaway\"`, or `\"escapeKeyDown\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n\n /**\n * The number of milliseconds to wait before dismissing after user interaction.\n * If `autoHideDuration` prop isn't specified, it does nothing.\n * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,\n * we default to `autoHideDuration / 2` ms.\n */\n resumeHideDuration: PropTypes.number,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Grow\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Snackbar;","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\n\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n}); // This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\n\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n const ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n\n const startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n React.useEffect(() => {\n return () => {\n clearTimeout(startTimer.current);\n };\n }, []);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n\n } = options;\n\n if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n\n if ((event == null ? void 0 : event.type) === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }; // Get the size of the ripple\n\n let rippleX;\n let rippleY;\n let rippleSize;\n\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3); // For some reason the animation is broken on Mobile Chrome if the size is even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n } // Touche devices\n\n\n if (event != null && event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }; // Delay the execution of the ripple effect.\n\n\n startTimer.current = setTimeout(() => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n\n if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(() => {\n stop(event, cb);\n });\n return;\n }\n\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n className: clsx(touchRippleClasses.root, classes.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@mui/utils';\nimport composeClasses from '@mui/base/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n\n return composedClasses;\n};\n\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const buttonRef = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRippleRef = useForkRef(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = React.useState(false);\n React.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n\n const ignore = skipRippleAction;\n\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n\n return true;\n });\n }\n\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n\n handleFocusVisible(event);\n\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n\n if (onFocus) {\n onFocus(event);\n }\n });\n\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n\n\n const keydownRef = React.useRef(false);\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a \n \n \n \n \n \n {children}\n \n );\n};\n\nexport default ApiConnectionSettingLayer;\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { createUnarySpacing, getValue, handleBreakpoints, mergeBreakpointsInOrder, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { deepmerge } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n\n return output;\n }, []);\n}\n\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\n\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex',\n flexDirection: 'column'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n\n const styleFromPropValue = (propValue, breakpoint) => {\n return {\n '& > :not(style) + :not(style)': {\n margin: 0,\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nconst StackRoot = styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [styles.root];\n }\n})(style);\nconst Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiStack'\n });\n const props = extendSxProp(themeProps);\n\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = {\n direction,\n spacing\n };\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stack;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getStepperUtilityClass(slot) {\n return generateUtilityClass('MuiStepper', slot);\n}\nconst stepperClasses = generateUtilityClasses('MuiStepper', ['root', 'horizontal', 'vertical', 'alternativeLabel']);\nexport default stepperClasses;","import * as React from 'react';\n\n/**\n * Provides information about the current step in Stepper.\n */\nconst StepperContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n StepperContext.displayName = 'StepperContext';\n}\n/**\n * Returns the current StepperContext or an empty object if no StepperContext\n * has been defined in the component tree.\n */\n\n\nexport function useStepperContext() {\n return React.useContext(StepperContext);\n}\nexport default StepperContext;","import * as React from 'react';\n\n/**\n * Provides information about the current step in Stepper.\n */\nconst StepContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n StepContext.displayName = 'StepContext';\n}\n/**\n * Returns the current StepContext or an empty object if no StepContext\n * has been defined in the component tree.\n */\n\n\nexport function useStepContext() {\n return React.useContext(StepContext);\n}\nexport default StepContext;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getStepConnectorUtilityClass(slot) {\n return generateUtilityClass('MuiStepConnector', slot);\n}\nconst stepConnectorClasses = generateUtilityClasses('MuiStepConnector', ['root', 'horizontal', 'vertical', 'alternativeLabel', 'active', 'completed', 'disabled', 'line', 'lineHorizontal', 'lineVertical']);\nexport default stepConnectorClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport StepperContext from '../Stepper/StepperContext';\nimport StepContext from '../Step/StepContext';\nimport { getStepConnectorUtilityClass } from './stepConnectorClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n alternativeLabel,\n active,\n completed,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, alternativeLabel && 'alternativeLabel', active && 'active', completed && 'completed', disabled && 'disabled'],\n line: ['line', `line${capitalize(orientation)}`]\n };\n return composeClasses(slots, getStepConnectorUtilityClass, classes);\n};\n\nconst StepConnectorRoot = styled('div', {\n name: 'MuiStepConnector',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.alternativeLabel && styles.alternativeLabel, ownerState.completed && styles.completed];\n }\n})(({\n ownerState\n}) => _extends({\n flex: '1 1 auto'\n}, ownerState.orientation === 'vertical' && {\n marginLeft: 12 // half icon\n\n}, ownerState.alternativeLabel && {\n position: 'absolute',\n top: 8 + 4,\n left: 'calc(-50% + 20px)',\n right: 'calc(50% + 20px)'\n}));\nconst StepConnectorLine = styled('span', {\n name: 'MuiStepConnector',\n slot: 'Line',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.line, styles[`line${capitalize(ownerState.orientation)}`]];\n }\n})(({\n ownerState,\n theme\n}) => {\n const borderColor = theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[600];\n return _extends({\n display: 'block',\n borderColor: theme.vars ? theme.vars.palette.StepConnector.border : borderColor\n }, ownerState.orientation === 'horizontal' && {\n borderTopStyle: 'solid',\n borderTopWidth: 1\n }, ownerState.orientation === 'vertical' && {\n borderLeftStyle: 'solid',\n borderLeftWidth: 1,\n minHeight: 24\n });\n});\nconst StepConnector = /*#__PURE__*/React.forwardRef(function StepConnector(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiStepConnector'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n alternativeLabel,\n orientation = 'horizontal'\n } = React.useContext(StepperContext);\n const {\n active,\n disabled,\n completed\n } = React.useContext(StepContext);\n\n const ownerState = _extends({}, props, {\n alternativeLabel,\n orientation,\n active,\n completed,\n disabled\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(StepConnectorRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(StepConnectorLine, {\n className: classes.line,\n ownerState: ownerState\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StepConnector.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default StepConnector;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"activeStep\", \"alternativeLabel\", \"children\", \"className\", \"connector\", \"nonLinear\", \"orientation\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getStepperUtilityClass } from './stepperClasses';\nimport StepConnector from '../StepConnector';\nimport StepperContext from './StepperContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n orientation,\n alternativeLabel,\n classes\n } = ownerState;\n const slots = {\n root: ['root', orientation, alternativeLabel && 'alternativeLabel']\n };\n return composeClasses(slots, getStepperUtilityClass, classes);\n};\n\nconst StepperRoot = styled('div', {\n name: 'MuiStepper',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.alternativeLabel && styles.alternativeLabel];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex'\n}, ownerState.orientation === 'horizontal' && {\n flexDirection: 'row',\n alignItems: 'center'\n}, ownerState.orientation === 'vertical' && {\n flexDirection: 'column'\n}, ownerState.alternativeLabel && {\n alignItems: 'flex-start'\n}));\n\nconst defaultConnector = /*#__PURE__*/_jsx(StepConnector, {});\n\nconst Stepper = /*#__PURE__*/React.forwardRef(function Stepper(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiStepper'\n });\n\n const {\n activeStep = 0,\n alternativeLabel = false,\n children,\n className,\n connector = defaultConnector,\n nonLinear = false,\n orientation = 'horizontal'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n alternativeLabel,\n orientation\n });\n\n const classes = useUtilityClasses(ownerState);\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n const steps = childrenArray.map((step, index) => {\n return /*#__PURE__*/React.cloneElement(step, _extends({\n index,\n last: index + 1 === childrenArray.length\n }, step.props));\n });\n const contextValue = React.useMemo(() => ({\n activeStep,\n alternativeLabel,\n connector,\n nonLinear,\n orientation\n }), [activeStep, alternativeLabel, connector, nonLinear, orientation]);\n return /*#__PURE__*/_jsx(StepperContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(StepperRoot, _extends({\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: steps\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Stepper.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Set the active step (zero based index).\n * Set to -1 to disable all the steps.\n * @default 0\n */\n activeStep: integerPropType,\n\n /**\n * If set to 'true' and orientation is horizontal,\n * then the step label will be positioned under the icon.\n * @default false\n */\n alternativeLabel: PropTypes.bool,\n\n /**\n * Two or more `` components.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * An element to be placed between each step.\n * @default \n */\n connector: PropTypes.element,\n\n /**\n * If set the `Stepper` will not assist in controlling steps for linear flow.\n * @default false\n */\n nonLinear: PropTypes.bool,\n\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Stepper;","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @name objectSpread\n * @summary Concats all sources into the destination\n */\nexport function objectSpread(dest, ...sources) {\n for (let i = 0; i < sources.length; i++) {\n const src = sources[i];\n\n if (src) {\n if (typeof src.entries === 'function') {\n for (const [key, value] of src.entries()) {\n dest[key] = value;\n }\n } else {\n Object.assign(dest, src);\n }\n }\n }\n\n return dest;\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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 *
\n *\n * ```javascript\n * import { isHex } from '@polkadot/util';\n *\n * isHex('0x1234'); // => true\n * isHex('0x1234', 8); // => false\n * ```\n */\n\nexport function isHex(value, bitLength = -1, ignoreLength) {\n return typeof value === 'string' && (value === '0x' || REGEX_HEX_PREFIXED.test(value)) && (bitLength === -1 ? ignoreLength || value.length % 2 === 0 : value.length === 2 + Math.ceil(bitLength / 4));\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * import { hexStripPrefix } from '@polkadot/util';\n *\n * console.log('stripped', hexStripPrefix('0x1234')); // => 1234\n * ```\n */\n\nexport function hexStripPrefix(value) {\n if (!value || value === '0x') {\n return '';\n } else if (REGEX_HEX_PREFIXED.test(value)) {\n return value.substring(2);\n } else if (REGEX_HEX_NOPREFIX.test(value)) {\n return value;\n }\n\n throw new Error(`Expected hex value to convert, found '${value}'`);\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * import { hexToBn } from '@polkadot/util';\n *\n * hexToBn('0x123480001f'); // => BN(0x123480001f)\n * ```\n */\n\nexport function hexToBn(value, {\n isLe = false,\n isNegative = false\n} = {}) {\n if (!value || value === '0x') {\n return new BN(0);\n }\n\n const stripped = hexStripPrefix(value);\n const bn = new BN(stripped, 16, isLe ? 'le' : 'be'); // fromTwos takes as parameter the number of bits, which is the hex length\n // multiplied by 4 (2 bytes being 8 bits)\n\n return isNegative ? bn.fromTwos(stripped.length * 4) : bn;\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 *
\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}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// eslint-disable-next-line @typescript-eslint/ban-types\n\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 *
\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}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 *
\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}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isFunction } from \"./function.js\";\nimport { isObject } from \"./object.js\";\nexport function isOn(...fns) {\n return value => (isObject(value) || isFunction(value)) && fns.every(f => isFunction(value[f]));\n}\nexport function isOnObject(...fns) {\n return value => isObject(value) && fns.every(f => isFunction(value[f]));\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isOn } from \"./helpers.js\";\nexport const isToBigInt = isOn('toBigInt');","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isOn } from \"./helpers.js\";\nexport const isToBn = isOn('toBn');","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\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 */\n\nexport function bnToBn(value) {\n return value ? BN.isBN(value) ? value : isHex(value) ? hexToBn(value.toString()) : isBigInt(value) ? new BN(value.toString()) : isToBn(value) ? value.toBn() : isToBigInt(value) ? new BN(value.toBigInt().toString()) : new BN(value) : new BN(0);\n}","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// Type overrides based on specific nodes\nconst typesChain = {};\nexport default typesChain;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable sort-keys */\nimport { objectSpread } from '@polkadot/util';\nconst 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',\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',\n staticHashes: '[Hash; 3]'\n },\n Proof: {\n leafHash: 'H256',\n sortedHashes: 'H256'\n },\n ProofMint: {\n hashes: 'Vec',\n property: 'Bytes',\n salt: '[u8; 32]',\n value: 'Bytes'\n },\n RegistryInfo: {\n fields: 'Vec',\n ownerCanBurn: 'bool'\n },\n ProxyType: {\n _enum: ['Any', 'NonTransfer', 'Governance', 'Staking', 'NonProxy']\n }\n};\nconst standaloneTypes = objectSpread({}, sharedTypes, {\n AccountInfo: 'AccountInfoWithRefCount',\n Address: 'LookupSource',\n LookupSource: 'IndicesLookupSource',\n Multiplier: 'Fixed64',\n RefCount: 'RefCountTo259'\n});\nconst versioned = [{\n minmax: [240, 243],\n types: objectSpread({}, standaloneTypes, {\n ProxyType: {\n _enum: ['Any', 'NonTransfer', 'Governance', 'Staking', 'Vesting']\n }\n })\n}, {\n minmax: [244, 999],\n types: objectSpread({}, standaloneTypes)\n}, {\n minmax: [1000, undefined],\n types: objectSpread({}, sharedTypes)\n}];\nexport default versioned;","// Copyright 2017-2022 @polkadot/types-create authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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, {\n [key]: `${key}${version}`\n }), {});\n}","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable sort-keys */\nimport { mapXcmTypes } from '@polkadot/types-create';\nimport { objectSpread } from '@polkadot/util';\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: 'u64'\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};\nconst versioned = [{\n // 1020 is first CC3\n minmax: [1019, 1031],\n types: objectSpread({}, 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 SlashingSpans: 'SlashingSpansTo204',\n StakingLedger: 'StakingLedgerTo223',\n Votes: 'VotesTo230',\n Weight: 'u32'\n })\n}, {\n minmax: [1032, 1042],\n types: objectSpread({}, 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 SlashingSpans: 'SlashingSpansTo204',\n StakingLedger: 'StakingLedgerTo223',\n Votes: 'VotesTo230',\n Weight: 'u32'\n })\n}, {\n // actual at 1045 (1043-1044 is dev)\n minmax: [1043, 1045],\n types: objectSpread({}, 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 StakingLedger: 'StakingLedgerTo223',\n Votes: 'VotesTo230',\n Weight: 'u32'\n })\n}, {\n minmax: [1046, 1049],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n DispatchInfo: 'DispatchInfoTo244',\n Heartbeat: 'HeartbeatTo244',\n Multiplier: 'Fixed64',\n OpenTip: 'OpenTipTo225',\n RefCount: 'RefCountTo259',\n ReferendumInfo: 'ReferendumInfoTo239',\n StakingLedger: 'StakingLedgerTo223',\n Weight: 'u32'\n })\n}, {\n minmax: [1050, 1054],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n DispatchInfo: 'DispatchInfoTo244',\n Heartbeat: 'HeartbeatTo244',\n Multiplier: 'Fixed64',\n OpenTip: 'OpenTipTo225',\n RefCount: 'RefCountTo259',\n ReferendumInfo: 'ReferendumInfoTo239',\n StakingLedger: 'StakingLedgerTo240',\n Weight: 'u32'\n })\n}, {\n minmax: [1055, 1056],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n DispatchInfo: 'DispatchInfoTo244',\n Heartbeat: 'HeartbeatTo244',\n Multiplier: 'Fixed64',\n OpenTip: 'OpenTipTo225',\n RefCount: 'RefCountTo259',\n StakingLedger: 'StakingLedgerTo240',\n Weight: 'u32'\n })\n}, {\n minmax: [1057, 1061],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n DispatchInfo: 'DispatchInfoTo244',\n Heartbeat: 'HeartbeatTo244',\n OpenTip: 'OpenTipTo225',\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [1062, 2012],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n OpenTip: 'OpenTipTo225',\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [2013, 2022],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [2023, 2024],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [2025, 2027],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes)\n}, {\n minmax: [2028, 2029],\n types: objectSpread({}, sharedTypes, {\n AccountInfo: 'AccountInfoWithDualRefCount',\n CompactAssignments: 'CompactAssignmentsWith16',\n RawSolution: 'RawSolutionWith16'\n })\n}, {\n minmax: [2030, 9000],\n types: objectSpread({}, sharedTypes, {\n CompactAssignments: 'CompactAssignmentsWith16',\n RawSolution: 'RawSolutionWith16'\n })\n}, {\n minmax: [9010, 9099],\n types: objectSpread({}, sharedTypes, mapXcmTypes('V0'))\n}, {\n // jump from 9100 to 9110, however align with Rococo\n minmax: [9100, 9105],\n types: objectSpread({}, sharedTypes, mapXcmTypes('V1'))\n}, {\n // metadata v14\n minmax: [9106, undefined],\n types: {}\n}];\nexport default versioned;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable sort-keys */\nconst versioned = [{\n minmax: [0, undefined],\n types: {// nothing, API tracks master\n }\n}];\nexport default versioned;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable sort-keys */\nconst versioned = [{\n minmax: [0, undefined],\n types: {// nothing, API tracks master\n }\n}];\nexport default versioned;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable sort-keys */\nimport { objectSpread } from '@polkadot/util';\nconst 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: 'u64'\n};\nconst addrAccountIdTypes = {\n AccountInfo: 'AccountInfoWithRefCount',\n Address: 'AccountId',\n DispatchErrorModule: 'DispatchErrorModuleU8',\n Keys: 'SessionKeys5',\n LookupSource: 'AccountId',\n ValidatorPrefs: 'ValidatorPrefsWithCommission'\n}; // these are override types for Polkadot\n\nconst versioned = [{\n minmax: [0, 12],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n OpenTip: 'OpenTipTo225',\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [13, 22],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [23, 24],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [25, 27],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes)\n}, {\n minmax: [28, 29],\n types: objectSpread({}, sharedTypes, {\n AccountInfo: 'AccountInfoWithDualRefCount'\n })\n}, {\n minmax: [30, 9109],\n types: objectSpread({}, sharedTypes)\n}, {\n // metadata v14\n minmax: [9110, undefined],\n types: {}\n}];\nexport default versioned;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable sort-keys */\nimport { mapXcmTypes } from '@polkadot/types-create';\nimport { objectSpread } from '@polkadot/util'; // structs need to be in order\n\n/* eslint-disable sort-keys */\n\nconst sharedTypes = {\n DispatchErrorModule: 'DispatchErrorModuleU8',\n FullIdentification: '()',\n // No staking, only session (as per config)\n Keys: 'SessionKeys7B',\n Weight: 'u64'\n};\nconst versioned = [{\n minmax: [0, 200],\n types: objectSpread({}, sharedTypes, {\n AccountInfo: 'AccountInfoWithDualRefCount',\n Address: 'AccountId',\n LookupSource: 'AccountId'\n })\n}, {\n minmax: [201, 214],\n types: objectSpread({}, sharedTypes, {\n AccountInfo: 'AccountInfoWithDualRefCount'\n })\n}, {\n minmax: [215, 228],\n types: objectSpread({}, sharedTypes, {\n Keys: 'SessionKeys6'\n })\n}, {\n minmax: [229, 9099],\n types: objectSpread({}, sharedTypes, mapXcmTypes('V0'))\n}, {\n minmax: [9100, 9105],\n types: objectSpread({}, sharedTypes, mapXcmTypes('V1'))\n}, {\n // metadata v14\n minmax: [9106, undefined],\n types: {}\n}];\nexport default versioned;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable sort-keys */\nconst versioned = [{\n minmax: [0, undefined],\n types: {// nothing, limited runtime\n }\n}];\nexport default versioned;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable sort-keys */\nimport { mapXcmTypes } from '@polkadot/types-create';\nimport { objectSpread } from '@polkadot/util';\nconst sharedTypes = {\n DispatchErrorModule: 'DispatchErrorModuleU8',\n TAssetBalance: 'u128',\n ProxyType: {\n _enum: ['Any', 'NonTransfer', 'CancelProxy', 'Assets', 'AssetOwner', 'AssetManager', 'Staking']\n },\n Weight: 'u64'\n}; // these are override types for Statemine, Statemint, Westmint\n\nconst versioned = [{\n minmax: [0, 3],\n types: objectSpread({\n // Enum was modified mid-flight -\n // https://github.com/paritytech/substrate/pull/10382/files#diff-e4e016b33a82268b6208dc974eea841bad47597865a749fee2f937eb6fdf67b4R498\n DispatchError: 'DispatchErrorPre6First'\n }, sharedTypes, mapXcmTypes('V0'))\n}, {\n minmax: [4, 5],\n types: objectSpread({}, sharedTypes, mapXcmTypes('V1'))\n}, {\n // metadata V14\n minmax: [500, undefined],\n types: {}\n}];\nexport default versioned;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable sort-keys */\nimport { mapXcmTypes } from '@polkadot/types-create';\nimport { objectSpread } from '@polkadot/util';\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: 'u64'\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};\nconst versioned = [{\n minmax: [1, 2],\n types: objectSpread({}, sharedTypes, 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 minmax: [3, 22],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n DispatchInfo: 'DispatchInfoTo244',\n Heartbeat: 'HeartbeatTo244',\n OpenTip: 'OpenTipTo225',\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [23, 42],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n CompactAssignments: 'CompactAssignmentsTo257',\n DispatchInfo: 'DispatchInfoTo244',\n Heartbeat: 'HeartbeatTo244',\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [43, 44],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes, {\n DispatchInfo: 'DispatchInfoTo244',\n Heartbeat: 'HeartbeatTo244',\n RefCount: 'RefCountTo259'\n })\n}, {\n minmax: [45, 47],\n types: objectSpread({}, sharedTypes, addrAccountIdTypes)\n}, {\n minmax: [48, 49],\n types: objectSpread({}, sharedTypes, {\n AccountInfo: 'AccountInfoWithDualRefCount'\n })\n}, {\n minmax: [50, 9099],\n types: objectSpread({}, sharedTypes, mapXcmTypes('V0'))\n}, {\n minmax: [9100, 9105],\n types: objectSpread({}, sharedTypes, mapXcmTypes('V1'))\n}, {\n // metadata v14\n minmax: [9106, undefined],\n types: {}\n}];\nexport default versioned;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport centrifugeChain from \"./centrifuge-chain.js\";\nimport kusama from \"./kusama.js\";\nimport node from \"./node.js\";\nimport nodeTemplate from \"./node-template.js\";\nimport polkadot from \"./polkadot.js\";\nimport rococo from \"./rococo.js\";\nimport shell from \"./shell.js\";\nimport statemint from \"./statemint.js\";\nimport westend from \"./westend.js\"; // Type overrides for specific spec types & versions as given in runtimeVersion\n\nconst 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};\nexport default typesSpec;","// Copyright 2017-2022 @polkadot/networks authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// These match up with the keys of the ledgerApps object in the @polkadot/hw-ledger/defaults.ts\n// and maps to the known slip44 (minus the `0x8` hard derivation flag)\n//\n// NOTE: Any network here needs to have a genesisHash attached in the ./genesis.ts config\nexport const knownLedger = {\n acala: 0x00000313,\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 equilibrium: 0x05f5e0fd,\n genshiro: 0x05f5e0fc,\n hydradx: 0x00000162,\n 'interlay-parachain': 0x00000162,\n karura: 0x000002ae,\n khala: 0x000001b2,\n kusama: 0x000001b2,\n 'nodle-para': 0x000003eb,\n parallel: 0x00000162,\n phala: 0x00000162,\n polkadex: 0x0000031f,\n polkadot: 0x00000162,\n polymesh: 0x00000253,\n sora: 0x00000269,\n stafi: 0x0000038b,\n statemine: 0x000001b2,\n // common-good on Kusama, shares derivation\n statemint: 0x00000162,\n // common-good on Polkadot, shares derivation\n unique: 0x00000162,\n xxnetwork: 0x000007a3\n};","// Copyright 2017-2022 @polkadot/networks authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// NOTE: In the case where the network was hard-spooned and multiple genesisHashes\n// are provided, it needs to be in reverse order, i.e. most-recent first, oldest\n// last. This make lookups for the current a simple genesisHash[0]\n// (See Kusama as an example)\nexport const knownGenesis = {\n acala: ['0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c'],\n 'aleph-node': ['0x70255b4d28de0fc4e1a193d7e175ad1ccef431598211c55538f1018651a0344e'],\n astar: ['0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6'],\n basilisk: ['0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755'],\n bifrost: ['0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b'],\n 'bifrost-kusama': ['0x9f28c6a68e0fc9646eff64935684f6eeeece527e37bbe1f213d22caa1d9d6bed'],\n centrifuge: ['0xb3db41421702df9a7fcac62b53ffeac85f7853cc4e689e0b93aeb3db18c09d82', '0x67dddf2673b69e5f875f6f25277495834398eafd67f492e09f3f3345e003d1b5'],\n composable: ['0xdaab8df776eb52ec604a5df5d388bb62a050a0aaec4556a64265b9d42755552d'],\n darwinia: ['0xe71578b37a7c799b0ab4ee87ffa6f059a6b98f71f06fb8c84a8d88013a548ad6'],\n 'dock-mainnet': ['0x6bfe24dca2a3be10f22212678ac13a6446ec764103c0f3471c71609eac384aae', '0xf73467c6544aa68df2ee546b135f955c46b90fa627e9b5d7935f41061bb8a5a9'],\n edgeware: ['0x742a2ca70c2fda6cee4f8df98d64c4c670a052d9568058982dad9d5a7a135c5b'],\n equilibrium: ['0x6f1a800de3daff7f5e037ddf66ab22ce03ab91874debeddb1086f5f7dbd48925'],\n genshiro: ['0x9b8cefc0eb5c568b527998bdd76c184e2b76ae561be76e4667072230217ea243'],\n hydradx: ['0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d', // HydraDX Parachain\n '0xd2a620c27ec5cbc5621ff9a522689895074f7cca0d08e7134a7804e1a3ba86fc', // Snakenet Gen3-1\n '0x10af6e84234477d84dc572bac0789813b254aa490767ed06fb9591191d1073f9', // Snakenet Gen3\n '0x3d75507dd46301767e601265791da1d9cb47b6ebc94e87347b635e5bf58bd047', // Snakenet Gen2\n '0x0ed32bfcab4a83517fac88f2aa7cbc2f88d3ab93be9a12b6188a036bf8a943c2' // Snakenet Gen1\n ],\n 'interlay-parachain': ['0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72'],\n karura: ['0xbaf5aabe40646d11f0ee8abbdc64f4a4b7674925cba08e4a05ff9ebed6e2126b'],\n khala: ['0xd43540ba6d3eb4897c28a77d48cb5b729fea37603cbbfc7a86a73b72adb3be8d'],\n kulupu: ['0xf7a99d3cb92853d00d5275c971c132c074636256583fee53b3bbe60d7b8769ba'],\n kusama: ['0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe', // Kusama CC3,\n '0xe3777fa922cafbff200cadeaea1a76bd7898ad5b89f7848999058b50e715f636', // Kusama CC2\n '0x3fd7b9eb6a00376e5be61f01abb429ffb0b104be05eaff4d458da48fcd425baf' // Kusama CC1\n ],\n 'nodle-para': ['0x97da7ede98d7bad4e36b4d734b6055425a3be036da2a332ea5a7037656427a21'],\n parallel: ['0xe61a41c53f5dcd0beb09df93b34402aada44cb05117b71059cce40a2723a4e97'],\n phala: ['0x1bb969d85965e4bb5a651abbedf21a54b6b31a21f66b5401cc3f1e286268d736'],\n picasso: ['0xe8e7f0f4c4f5a00720b4821dbfddefea7490bcf0b19009961cc46957984e2c1c'],\n polkadex: ['0x3920bcb4960a1eef5580cd5367ff3f430eef052774f78468852f7b9cb39f8a3c'],\n polkadot: ['0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3'],\n polymesh: ['0x6fbd74e5e1d0a61d52ccfe9d4adaed16dd3a7caa37c6bc4d0c2fa12e8b2f4063'],\n rococo: ['0x6408de7737c59c238890533af25896a2c20608d8b380bb01029acb392781063e', '0xaaf2cd1b74b5f726895921259421b534124726263982522174147046b8827897', '0x037f5f3c8e67b314062025fc886fcd6238ea25a4a9b45dce8d246815c9ebe770', '0xc196f81260cf1686172b47a79cf002120735d7cb0eb1474e8adce56618456fff', '0xf6e9983c37baf68846fedafe21e56718790e39fb1c582abc408b81bc7b208f9a', '0x5fce687da39305dfe682b117f0820b319348e8bb37eb16cf34acbf6a202de9d9', '0xe7c3d5edde7db964317cd9b51a3a059d7cd99f81bdbce14990047354334c9779', '0x1611e1dbf0405379b861e2e27daa90f480b2e6d3682414a80835a52e8cb8a215', '0x343442f12fa715489a8714e79a7b264ea88c0d5b8c66b684a7788a516032f6b9', '0x78bcd530c6b3a068bc17473cf5d2aff9c287102bed9af3ae3c41c33b9d6c6147', '0x47381ee0697153d64404fc578392c8fd5cba9073391908f46c888498415647bd', '0x19c0e4fa8ab75f5ac7865e0b8f74ff91eb9a100d336f423cd013a8befba40299'],\n sora: ['0x7e4e32d0feafd4f9c9414b0be86373f9a1efa904809b683453a9af6856d38ad5'],\n stafi: ['0x290a4149f09ea0e402c74c1c7e96ae4239588577fe78932f94f5404c68243d80'],\n statemine: ['0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a'],\n statemint: ['0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f'],\n subsocial: ['0x0bd72c1c305172e1275278aaeb3f161e02eccb7a819e63f62d47bd53a28189f8'],\n unique: ['0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31'],\n westend: ['0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e'],\n xxnetwork: ['0x50dd5d206917bf10502c68fb4d18a59fc8aa31586f4e8856b493e43544aa82aa']\n};","// Copyright 2017-2022 @polkadot/networks authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// these are icon overrides\nexport const knownIcon = {\n centrifuge: 'polkadot',\n kusama: 'polkadot',\n polkadot: 'polkadot',\n sora: 'polkadot',\n statemine: 'polkadot',\n statemint: 'polkadot',\n westmint: 'polkadot'\n};","// Copyright 2017-2022 @polkadot/networks authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// testnets should not allow selection\nexport const knownTestnet = {\n '': true,\n // this is the default non-network entry\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};","// Copyright 2017-2022 @polkadot/networks authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport knownSubstrate from '@substrate/ss58-registry';\nimport { knownGenesis, knownIcon, knownLedger, knownTestnet } from \"./defaults/index.js\"; // These are known prefixes that are not sorted\n\nconst UNSORTED = [0, 2, 42];\nconst TESTNETS = ['testnet'];\n\nfunction toExpanded(o) {\n const network = o.network || '';\n const nameParts = network.replace(/_/g, '-').split('-');\n const n = o; // ledger additions\n\n n.slip44 = knownLedger[network];\n n.hasLedgerSupport = !!n.slip44; // general items\n\n n.genesisHash = knownGenesis[network] || [];\n n.icon = knownIcon[network] || 'substrate'; // filtering\n\n n.isTestnet = !!knownTestnet[network] || TESTNETS.includes(nameParts[nameParts.length - 1]);\n n.isIgnored = n.isTestnet || !(o.standardAccount && o.decimals && o.decimals.length && o.symbols && o.symbols.length) && o.prefix !== 42;\n return n;\n}\n\nfunction filterSelectable({\n genesisHash,\n prefix\n}) {\n return !!genesisHash.length || prefix === 42;\n}\n\nfunction filterAvailable(n) {\n return !n.isIgnored && !!n.network;\n}\n\nfunction sortNetworks(a, b) {\n const isUnSortedA = UNSORTED.includes(a.prefix);\n const isUnSortedB = UNSORTED.includes(b.prefix);\n return isUnSortedA === isUnSortedB ? isUnSortedA ? 0 : a.displayName.localeCompare(b.displayName) : isUnSortedA ? -1 : 1;\n} // This is all the Substrate networks with our additional information\n\n\nexport const allNetworks = knownSubstrate.map(toExpanded); // The list of available/claimed prefixes\n// - no testnets\n// - we only include those where we have a standardAccount\n// - sort by name, however we keep 0, 2, 42 first in the list\n\nexport const availableNetworks = allNetworks.filter(filterAvailable).sort(sortNetworks); // A filtered list of those chains we have details about (genesisHashes)\n\nexport const selectableNetworks = availableNetworks.filter(filterSelectable);","// Copyright (C) 2021-2022 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\t\"KTON\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9,\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\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\": 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\": \"poli\",\n\t\t\"displayName\": \"Polimec Chain\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polimec.io/\"\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\",\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\": 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\": \"AvN 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\": 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\": 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\": 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\": 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\": 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\": \"apex\",\n\t\t\"displayName\": \"Apex Network\",\n\t\t\"symbols\": [\n\t\t\t\"APEX\"\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\": 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\": 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\": 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\": 2114,\n\t\t\"network\": \"Turing\",\n\t\t\"displayName\": \"Turing Network\",\n\t\t\"symbols\": [\n\t\t\t\"TUR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://oak.tech/turing/home/\"\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\": 2208,\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\": 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\": 3000,\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\": 4000,\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\": 4006,\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.webb.tools/\"\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\": 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\": 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\": 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\": 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\": 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\": 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\": 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];\n","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isBigInt } from \"./is/bigInt.js\";\n/** @internal */\n\nfunction replacer(_, v) {\n return isBigInt(v) ? v.toString() : 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 */\n\n\nexport function stringify(value, space) {\n return JSON.stringify(value, replacer, space);\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nconst CHR = '0123456789abcdef';\nconst U8 = new Array(256);\nconst U16 = new Array(256 * 256);\n\nfor (let i = 0; i < CHR.length; i++) {\n U8[CHR[i].charCodeAt(0) | 0] = i | 0;\n\n if (i > 9) {\n U8[CHR[i].toUpperCase().charCodeAt(0) | 0] = i | 0;\n }\n}\n\nfor (let i = 0; i < 256; i++) {\n const s = i << 8;\n\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 *
\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 */\n\n\nexport function hexToU8a(value, bitLength = -1) {\n if (!value) {\n return new Uint8Array();\n }\n\n let s = value.startsWith('0x') ? 2 : 0;\n const decLength = Math.ceil((value.length - s) / 2);\n const endLength = Math.ceil(bitLength === -1 ? decLength : bitLength / 8);\n const result = new Uint8Array(endLength);\n const offset = endLength > decLength ? endLength - decLength : 0;\n\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\n return result;\n}","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// Auto-generated from on-chain data & manual definitions, do not edit\n\n/* eslint-disable quotes, comma-spacing */\nconst upgrades = [[0, 1020, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [26669, 1021, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [38245, 1022, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [54248, 1023, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [59659, 1024, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [67651, 1025, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [82191, 1027, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [83238, 1028, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [101503, 1029, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [203466, 1030, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [295787, 1031, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [461692, 1032, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [504329, 1033, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [569327, 1038, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 1], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [587687, 1039, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [653183, 1040, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [693488, 1042, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [901442, 1045, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1375086, 1050, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1445458, 1051, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1472960, 1052, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1475648, 1053, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1491596, 1054, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1574408, 1055, [[\"0xdf6acb689907609b\", 2], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 1], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2064961, 1058, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2201991, 1062, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2671528, 2005, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2704202, 2007, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2728002, 2008, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2832534, 2011, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2962294, 2012, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [3240000, 2013, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [3274408, 2015, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [3323565, 2019, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [3534175, 2022, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [3860281, 2023, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [4143129, 2024, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [4401242, 2025, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [4841367, 2026, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5961600, 2027, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [6137912, 2028, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [6561855, 2029, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7100891, 2030, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7468792, 9010, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7668600, 9030, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7812476, 9040, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [8010981, 9050, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [8073833, 9070, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [8555825, 9080, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [8945245, 9090, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [9611377, 9100, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [9625129, 9111, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [9866422, 9122, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10403784, 9130, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10960765, 9150, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11006614, 9151, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11404482, 9160, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11601803, 9170, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [12008022, 9180, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [12405451, 9190, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [12665416, 9200, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [12909508, 9220, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [13109752, 9230, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [13555777, 9250, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [13727747, 9260, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [14248044, 9271, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1], [\"0x17a6bc0d0062aeb3\", 1]]], [14433840, 9280, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1], [\"0xf3ff14d5ab527059\", 1], [\"0x17a6bc0d0062aeb3\", 1]]]];\nexport default upgrades;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// Auto-generated from on-chain data & manual definitions, do not edit\n\n/* eslint-disable quotes, comma-spacing */\nconst upgrades = [[0, 0, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [29231, 1, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [188836, 5, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [199405, 6, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [214264, 7, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [244358, 8, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [303079, 9, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [314201, 10, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [342400, 11, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [443963, 12, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [528470, 13, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [687751, 14, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [746085, 15, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [787923, 16, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [799302, 17, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1205128, 18, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1603423, 23, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1733218, 24, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2005673, 25, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2436698, 26, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [3613564, 27, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [3899547, 28, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [4345767, 29, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [4876134, 30, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5661442, 9050, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [6321619, 9080, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [6713249, 9090, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7217907, 9100, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7229126, 9110, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7560558, 9122, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [8115869, 9140, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [8638103, 9151, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [9280179, 9170, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [9738717, 9180, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10156856, 9190, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10458576, 9200, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10655116, 9220, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10879371, 9230, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11328884, 9250, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11532856, 9260, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11933818, 9270, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]]];\nexport default upgrades;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// Auto-generated from on-chain data & manual definitions, do not edit\n\n/* eslint-disable quotes, comma-spacing */\nconst upgrades = [[214356, 4, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 1], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [392764, 7, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [409740, 8, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [809976, 20, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [877581, 24, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [879238, 25, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [889472, 26, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [902937, 27, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [932751, 28, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [991142, 29, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1030162, 31, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1119657, 32, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1199282, 33, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1342534, 34, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1392263, 35, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1431703, 36, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1433369, 37, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [1490972, 41, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2087397, 43, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2316688, 44, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 3], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [2549864, 45, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [3925782, 46, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [3925843, 47, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [4207800, 48, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [4627944, 49, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5124076, 50, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5478664, 900, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5482450, 9000, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 4], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5584305, 9010, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5784566, 9030, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5879822, 9031, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5896856, 9032, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [5897316, 9033, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [6117927, 9050, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [6210274, 9070, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 2], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [6379314, 9080, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 2], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [6979141, 9090, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7568453, 9100, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7766394, 9111, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7911691, 9120, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7968866, 9121, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [7982889, 9122, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [8514322, 9130, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [9091726, 9140, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [9091774, 9150, [[\"0xdf6acb689907609b\", 3], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 1], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [9406726, 9160, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [9921066, 9170, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10007115, 9180, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 5], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10480973, 9190, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10578091, 9200, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10678509, 9210, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [10811001, 9220, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11096116, 9230, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11409279, 9250, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11584820, 9251, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11716837, 9260, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11876919, 9261, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1]]], [11987927, 9270, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1], [\"0x17a6bc0d0062aeb3\", 1]]], [12077324, 9271, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1], [\"0x17a6bc0d0062aeb3\", 1]]], [12301871, 9280, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1], [\"0xf3ff14d5ab527059\", 1], [\"0x17a6bc0d0062aeb3\", 1]]], [12604343, 9290, [[\"0xdf6acb689907609b\", 4], [\"0x37e397fc7c91f5e4\", 1], [\"0x40fe3ad401f8959a\", 6], [\"0xd2bc9897eed08f15\", 3], [\"0xf78b278be53f454c\", 2], [\"0xaf2c0297a23e6d3d\", 2], [\"0x49eaaf1b548a0cb0\", 1], [\"0x91d5df18b0d2cf58\", 1], [\"0xed99c5acb25eedf5\", 3], [\"0xcbca25e39f142387\", 2], [\"0x687ad44ad37f03c2\", 1], [\"0xab3c0572291feb8b\", 1], [\"0xbc9d89904f5b923f\", 1], [\"0x37c8bb1350a9a2a8\", 1], [\"0xf3ff14d5ab527059\", 1], [\"0x17a6bc0d0062aeb3\", 1]]]];\nexport default upgrades;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { selectableNetworks } from '@polkadot/networks';\nimport { BN, hexToU8a, stringify } from '@polkadot/util';\nimport * as allKnown from \"./e2e/index.js\"; // testnets are not available in the networks map\n\nconst NET_EXTRA = {\n westend: {\n genesisHash: ['0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e']\n }\n};\n/** @internal */\n\nfunction checkOrder(network, versions) {\n const ooo = versions.filter((curr, index) => {\n const prev = versions[index - 1];\n return index === 0 ? false : curr[0] <= prev[0] || curr[1] <= prev[1];\n });\n\n if (ooo.length) {\n throw new Error(`${network}: Mismatched upgrade ordering: ${stringify(ooo)}`);\n }\n\n return versions;\n}\n/** @internal */\n\n\nfunction mapRaw([network, versions]) {\n const chain = selectableNetworks.find(n => n.network === network) || NET_EXTRA[network];\n\n if (!chain) {\n throw new Error(`Unable to find info for chain ${network}`);\n }\n\n return {\n genesisHash: hexToU8a(chain.genesisHash[0]),\n network,\n versions: checkOrder(network, versions).map(([blockNumber, specVersion, apis]) => ({\n apis,\n blockNumber: new BN(blockNumber),\n specVersion: new BN(specVersion)\n }))\n };\n} // Type overrides for specific spec types & versions as given in runtimeVersion\n\n\nconst upgrades = Object.entries(allKnown).map(mapRaw);\nexport default upgrades;","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { bnToBn, objectSpread } from '@polkadot/util';\nimport typesChain from \"./chain/index.js\";\nimport typesSpec from \"./spec/index.js\";\nimport upgrades from \"./upgrades/index.js\";\n\nfunction withNames(chainName, specName, fn) {\n return fn(chainName.toString(), specName.toString());\n} // flatten a VersionedType[] into a Record\n\n/** @internal */\n\n\nfunction filterVersions(versions = [], specVersion) {\n return versions.filter(({\n minmax: [min, max]\n }) => (min === undefined || min === null || specVersion >= min) && (max === undefined || max === null || specVersion <= max)).reduce((result, {\n types\n }) => objectSpread(result, types), {});\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable signed extensions (ready for registration)\n */\n\n\nexport function getSpecExtensions({\n knownTypes\n}, chainName, specName) {\n return withNames(chainName, specName, (c, s) => {\n var _knownTypes$typesBund, _knownTypes$typesBund2, _knownTypes$typesBund3, _knownTypes$typesBund4, _knownTypes$typesBund5, _knownTypes$typesBund6;\n\n return objectSpread({}, (_knownTypes$typesBund = knownTypes.typesBundle) === null || _knownTypes$typesBund === void 0 ? void 0 : (_knownTypes$typesBund2 = _knownTypes$typesBund.spec) === null || _knownTypes$typesBund2 === void 0 ? void 0 : (_knownTypes$typesBund3 = _knownTypes$typesBund2[s]) === null || _knownTypes$typesBund3 === void 0 ? void 0 : _knownTypes$typesBund3.signedExtensions, (_knownTypes$typesBund4 = knownTypes.typesBundle) === null || _knownTypes$typesBund4 === void 0 ? void 0 : (_knownTypes$typesBund5 = _knownTypes$typesBund4.chain) === null || _knownTypes$typesBund5 === void 0 ? void 0 : (_knownTypes$typesBund6 = _knownTypes$typesBund5[c]) === null || _knownTypes$typesBund6 === void 0 ? void 0 : _knownTypes$typesBund6.signedExtensions);\n });\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable types (ready for registration)\n */\n\nexport function getSpecTypes({\n knownTypes\n}, chainName, specName, specVersion) {\n const _specVersion = bnToBn(specVersion).toNumber();\n\n return withNames(chainName, specName, (c, s) => {\n var _knownTypes$typesBund7, _knownTypes$typesBund8, _knownTypes$typesBund9, _knownTypes$typesBund10, _knownTypes$typesBund11, _knownTypes$typesBund12, _knownTypes$typesSpec, _knownTypes$typesChai;\n\n return (// 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 objectSpread({}, filterVersions(typesSpec[s], _specVersion), filterVersions(typesChain[c], _specVersion), filterVersions((_knownTypes$typesBund7 = knownTypes.typesBundle) === null || _knownTypes$typesBund7 === void 0 ? void 0 : (_knownTypes$typesBund8 = _knownTypes$typesBund7.spec) === null || _knownTypes$typesBund8 === void 0 ? void 0 : (_knownTypes$typesBund9 = _knownTypes$typesBund8[s]) === null || _knownTypes$typesBund9 === void 0 ? void 0 : _knownTypes$typesBund9.types, _specVersion), filterVersions((_knownTypes$typesBund10 = knownTypes.typesBundle) === null || _knownTypes$typesBund10 === void 0 ? void 0 : (_knownTypes$typesBund11 = _knownTypes$typesBund10.chain) === null || _knownTypes$typesBund11 === void 0 ? void 0 : (_knownTypes$typesBund12 = _knownTypes$typesBund11[c]) === null || _knownTypes$typesBund12 === void 0 ? void 0 : _knownTypes$typesBund12.types, _specVersion), (_knownTypes$typesSpec = knownTypes.typesSpec) === null || _knownTypes$typesSpec === void 0 ? void 0 : _knownTypes$typesSpec[s], (_knownTypes$typesChai = knownTypes.typesChain) === null || _knownTypes$typesChai === void 0 ? void 0 : _knownTypes$typesChai[c], knownTypes.types)\n );\n });\n}\nexport function getSpecHasher({\n knownTypes\n}, chainName, specName) {\n return withNames(chainName, specName, (c, s) => {\n var _knownTypes$typesBund13, _knownTypes$typesBund14, _knownTypes$typesBund15, _knownTypes$typesBund16, _knownTypes$typesBund17, _knownTypes$typesBund18;\n\n return knownTypes.hasher || ((_knownTypes$typesBund13 = knownTypes.typesBundle) === null || _knownTypes$typesBund13 === void 0 ? void 0 : (_knownTypes$typesBund14 = _knownTypes$typesBund13.chain) === null || _knownTypes$typesBund14 === void 0 ? void 0 : (_knownTypes$typesBund15 = _knownTypes$typesBund14[c]) === null || _knownTypes$typesBund15 === void 0 ? void 0 : _knownTypes$typesBund15.hasher) || ((_knownTypes$typesBund16 = knownTypes.typesBundle) === null || _knownTypes$typesBund16 === void 0 ? void 0 : (_knownTypes$typesBund17 = _knownTypes$typesBund16.spec) === null || _knownTypes$typesBund17 === void 0 ? void 0 : (_knownTypes$typesBund18 = _knownTypes$typesBund17[s]) === null || _knownTypes$typesBund18 === void 0 ? void 0 : _knownTypes$typesBund18.hasher) || null;\n });\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable rpc definitions (ready for registration)\n */\n\nexport function getSpecRpc({\n knownTypes\n}, chainName, specName) {\n return withNames(chainName, specName, (c, s) => {\n var _knownTypes$typesBund19, _knownTypes$typesBund20, _knownTypes$typesBund21, _knownTypes$typesBund22, _knownTypes$typesBund23, _knownTypes$typesBund24;\n\n return objectSpread({}, (_knownTypes$typesBund19 = knownTypes.typesBundle) === null || _knownTypes$typesBund19 === void 0 ? void 0 : (_knownTypes$typesBund20 = _knownTypes$typesBund19.spec) === null || _knownTypes$typesBund20 === void 0 ? void 0 : (_knownTypes$typesBund21 = _knownTypes$typesBund20[s]) === null || _knownTypes$typesBund21 === void 0 ? void 0 : _knownTypes$typesBund21.rpc, (_knownTypes$typesBund22 = knownTypes.typesBundle) === null || _knownTypes$typesBund22 === void 0 ? void 0 : (_knownTypes$typesBund23 = _knownTypes$typesBund22.chain) === null || _knownTypes$typesBund23 === void 0 ? void 0 : (_knownTypes$typesBund24 = _knownTypes$typesBund23[c]) === null || _knownTypes$typesBund24 === void 0 ? void 0 : _knownTypes$typesBund24.rpc);\n });\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable runtime definitions (ready for registration)\n */\n\nexport function getSpecRuntime({\n knownTypes\n}, chainName, specName) {\n return withNames(chainName, specName, (c, s) => {\n var _knownTypes$typesBund25, _knownTypes$typesBund26, _knownTypes$typesBund27, _knownTypes$typesBund28, _knownTypes$typesBund29, _knownTypes$typesBund30;\n\n return objectSpread({}, (_knownTypes$typesBund25 = knownTypes.typesBundle) === null || _knownTypes$typesBund25 === void 0 ? void 0 : (_knownTypes$typesBund26 = _knownTypes$typesBund25.spec) === null || _knownTypes$typesBund26 === void 0 ? void 0 : (_knownTypes$typesBund27 = _knownTypes$typesBund26[s]) === null || _knownTypes$typesBund27 === void 0 ? void 0 : _knownTypes$typesBund27.runtime, (_knownTypes$typesBund28 = knownTypes.typesBundle) === null || _knownTypes$typesBund28 === void 0 ? void 0 : (_knownTypes$typesBund29 = _knownTypes$typesBund28.chain) === null || _knownTypes$typesBund29 === void 0 ? void 0 : (_knownTypes$typesBund30 = _knownTypes$typesBund29[c]) === null || _knownTypes$typesBund30 === void 0 ? void 0 : _knownTypes$typesBund30.runtime);\n });\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable alias definitions (ready for registration)\n */\n\nexport function getSpecAlias({\n knownTypes\n}, chainName, specName) {\n return withNames(chainName, specName, (c, s) => {\n var _knownTypes$typesBund31, _knownTypes$typesBund32, _knownTypes$typesBund33, _knownTypes$typesBund34, _knownTypes$typesBund35, _knownTypes$typesBund36;\n\n return (// as per versions, first spec, then chain then finally non-versioned\n objectSpread({}, (_knownTypes$typesBund31 = knownTypes.typesBundle) === null || _knownTypes$typesBund31 === void 0 ? void 0 : (_knownTypes$typesBund32 = _knownTypes$typesBund31.spec) === null || _knownTypes$typesBund32 === void 0 ? void 0 : (_knownTypes$typesBund33 = _knownTypes$typesBund32[s]) === null || _knownTypes$typesBund33 === void 0 ? void 0 : _knownTypes$typesBund33.alias, (_knownTypes$typesBund34 = knownTypes.typesBundle) === null || _knownTypes$typesBund34 === void 0 ? void 0 : (_knownTypes$typesBund35 = _knownTypes$typesBund34.chain) === null || _knownTypes$typesBund35 === void 0 ? void 0 : (_knownTypes$typesBund36 = _knownTypes$typesBund35[c]) === null || _knownTypes$typesBund36 === void 0 ? void 0 : _knownTypes$typesBund36.alias, knownTypes.typesAlias)\n );\n });\n}\n/**\n * @description Returns a version record for known chains where upgrades are being tracked\n */\n\nexport function getUpgradeVersion(genesisHash, blockNumber) {\n const known = upgrades.find(u => genesisHash.eq(u.genesisHash));\n return known ? [known.versions.reduce((last, version) => {\n return blockNumber.gt(version.blockNumber) ? version : last;\n }, undefined), known.versions.find(version => blockNumber.lte(version.blockNumber))] : [undefined, undefined];\n}","/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nexport function assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nfunction chain(...args) {\n const wrap = (a, b) => (c) => a(b(c));\n const encode = Array.from(args)\n .reverse()\n .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);\n const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);\n return { encode, decode };\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}\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}\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}\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}\nfunction convertRadix(data, from, to) {\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 digits[i] = Math.floor(digitBase / to);\n if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!digits[i])\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 = (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = (from, to) => from + (to - gcd(from, to));\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;\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;\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}\nfunction radix(num) {\n assertNumber(num);\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\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 strings');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n },\n };\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 (!(bytes instanceof Uint8Array))\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 strings');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\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}\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 (!(data instanceof Uint8Array))\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 (!(data instanceof Uint8Array))\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}\nexport const utils = { alphabet, chain, checksum, radix, radix2, join, padding };\nexport const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexport const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexport const base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexport const base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexport const base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexport const base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexport const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexport const base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexport const base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\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 base58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\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}\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}\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 prefix = prefix.toLowerCase();\n return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`;\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 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 = genBech32('bech32');\nexport const bech32m = genBech32('bech32m');\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexport const hex = 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}));\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = `Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`;\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!(bytes instanceof Uint8Array))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\nexport const str = bytesToString;\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","// Copyright 2017-2022 @polkadot/x-global authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport { packageInfo } from \"./packageInfo.js\"; // Ensure that we are able to run this without any @types/node definitions\n// and without having lib: ['dom'] in our TypeScript configuration\n// (may not be available in all environments, e.g. Deno springs to mind)\n\nfunction evaluateThis(fn) {\n return fn('return this');\n}\n\nexport const xglobal = typeof globalThis !== 'undefined' ? globalThis : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : evaluateThis(Function);\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' ? fallback : xglobal[name];\n}\nexport function exposeGlobal(name, fallback) {\n if (typeof xglobal[name] === 'undefined') {\n xglobal[name] = fallback;\n }\n}","// Copyright 2017-2022 @polkadot/x-bigint authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { xglobal } from '@polkadot/x-global';\nexport { packageInfo } from \"./packageInfo.js\";\nexport const BigInt = typeof xglobal.BigInt === 'function' && typeof xglobal.BigInt.asIntN === 'function' ? xglobal.BigInt : () => Number.NaN;","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BigInt } from '@polkadot/x-bigint'; // Since we run in very different environments, we have to ensure we have all\n// the types used here for detection (some of these may require Node definitions,\n// which are not available in Deno/browser)\n\n/** true if the environment has proper BigInt support */\nexport const hasBigInt = typeof BigInt === 'function' && typeof BigInt.asIntN === 'function';\n/** true if the environment has support for Buffer */\n\nexport const hasBuffer = typeof Buffer !== 'undefined';\n/** true if the environment is CJS */\n\nexport const hasCjs = typeof require === 'function' && typeof module !== 'undefined';\n/** true if the environment has __dirname available */\n\nexport const hasDirname = typeof __dirname !== 'undefined';\n/** true if the environment is ESM */\n\nexport const hasEsm = !hasCjs;\n/** true if the environment has process available (typically Node.js) */\n\nexport const hasProcess = typeof process === 'object';\n/** true if the environment has WebAssembly available */\n\nexport const hasWasm = typeof WebAssembly !== 'undefined';","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 *
\n *\n * ```javascript\n * import { isBuffer } from '@polkadot/util';\n *\n * console.log('isBuffer', isBuffer(Buffer.from([]))); // => true\n * ```\n */\n\nexport function isBuffer(value) {\n // we do check a function first, since it is slightly faster than isBuffer itself\n return hasBuffer && isFunction(value && value.readDoubleLE) && Buffer.isBuffer(value);\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 *
\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 || value instanceof Uint8Array;\n}","// Copyright 2017-2022 @polkadot/x-textencoder authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { extractGlobal } from '@polkadot/x-global';\nimport { TextEncoder as Fallback } from \"./fallback.js\";\nexport { packageInfo } from \"./packageInfo.js\";\nexport const TextEncoder = extractGlobal('TextEncoder', Fallback);","// Copyright 2017-2022 @polkadot/x-textencoder authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// This is very limited, only handling Ascii values\nexport class TextEncoder {\n encode(value) {\n const u8a = new Uint8Array(value.length);\n\n for (let i = 0; i < value.length; i++) {\n u8a[i] = value.charCodeAt(i);\n }\n\n return u8a;\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * import { stringToU8a } from '@polkadot/util';\n *\n * stringToU8a('hello'); // [0x68, 0x65, 0x6c, 0x6c, 0x6f]\n * ```\n */\n\nexport function stringToU8a(value) {\n return value ? encoder.encode(value.toString()) : new Uint8Array();\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\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 */\n\nexport function u8aToU8a(value) {\n return isU8a(value) ? value : isHex(value) ? hexToU8a(value) : isBuffer(value) || Array.isArray(value) ? new Uint8Array(value) : stringToU8a(value);\n}","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { u8aToU8a } from '@polkadot/util'; // re-export the type so *.d.ts files don't have ../src imports\n\n/** @internal */\nexport function createDecode({\n coder,\n ipfs\n}, validate) {\n return (value, ipfsCompat) => {\n validate(value, ipfsCompat);\n return coder.decode(ipfs && ipfsCompat ? value.substring(1) : value);\n };\n}\n/** @internal */\n\nexport function createEncode({\n coder,\n ipfs\n}) {\n return (value, ipfsCompat) => {\n const out = coder.encode(u8aToU8a(value));\n return ipfs && ipfsCompat ? `${ipfs}${out}` : out;\n };\n}\n/** @internal */\n\nexport function createIs(validate) {\n return (value, ipfsCompat) => {\n try {\n return validate(value, ipfsCompat);\n } catch (error) {\n return false;\n }\n };\n}\n/** @internal */\n\nexport function createValidate({\n chars,\n ipfs,\n type\n}) {\n return (value, ipfsCompat) => {\n if (!value || typeof value !== 'string') {\n throw new Error(`Expected non-null, non-empty ${type} string input`);\n }\n\n if (ipfs && ipfsCompat && value[0] !== ipfs) {\n throw new Error(`Expected ipfs-compatible ${type} to start with '${ipfs}'`);\n }\n\n for (let i = ipfsCompat ? 1 : 0; i < value.length; i++) {\n if (!(chars.includes(value[i]) || value[i] === '=' && (i === value.length - 1 || !chars.includes(value[i + 1])))) {\n throw new Error(`Invalid ${type} character \"${value[i]}\" (0x${value.charCodeAt(i).toString(16)}) at index ${i}`);\n }\n }\n\n return true;\n };\n}","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { base64 } from '@scure/base';\nimport { createDecode, createEncode, createIs, createValidate } from \"../base32/helpers.js\";\nconst config = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n coder: base64,\n type: 'base64'\n};\n/**\n * @name base64Validate\n * @summary Validates a base64 value.\n * @description\n * Validates that the supplied value is valid base64\n */\n\nexport const base64Validate = createValidate(config);\n/**\n * @name isBase64\n * @description Checks if the input is in base64, returning true/false\n */\n\nexport const isBase64 = createIs(base64Validate);\n/**\n * @name base64Decode\n * @summary Decodes a base64 value.\n * @description\n * From the provided input, decode the base64 and return the result as an `Uint8Array`.\n */\n\nexport const base64Decode = createDecode(config, base64Validate);\n/**\n * @name base64Encode\n * @summary Creates a base64 value.\n * @description\n * From the provided input, create the base64 and return the result as a string.\n */\n\nexport const base64Encode = createEncode(config);","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import clone from 'lodash/clone';\nimport toPath from 'lodash/toPath';\nimport * as React from 'react';\n\n// Assertions\n\n/** @private is the value an empty array? */\nexport const isEmptyArray = (value?: any) =>\n Array.isArray(value) && value.length === 0;\n\n/** @private is the given object a Function? */\nexport const isFunction = (obj: any): obj is Function =>\n typeof obj === 'function';\n\n/** @private is the given object an Object? */\nexport const isObject = (obj: any): obj is Object =>\n obj !== null && typeof obj === 'object';\n\n/** @private is the given object an integer? */\nexport const isInteger = (obj: any): boolean =>\n String(Math.floor(Number(obj))) === obj;\n\n/** @private is the given object a string? */\nexport const isString = (obj: any): obj is string =>\n Object.prototype.toString.call(obj) === '[object String]';\n\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\nexport const isNaN = (obj: any): boolean => obj !== obj;\n\n/** @private Does a React component have exactly 0 children? */\nexport const isEmptyChildren = (children: any): boolean =>\n React.Children.count(children) === 0;\n\n/** @private is the given object/value a promise? */\nexport const isPromise = (value: any): value is PromiseLike =>\n isObject(value) && isFunction(value.then);\n\n/** @private is the given object/value a type of synthetic event? */\nexport const isInputEvent = (value: any): value is React.SyntheticEvent =>\n value && isObject(value) && isObject(value.target);\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?Document} doc Defaults to current document.\n * @return {Element | null}\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\n */\nexport function getActiveElement(doc?: Document): Element | null {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\n/**\n * Deeply get a value from an object via its path.\n */\nexport function getIn(\n obj: any,\n key: string | string[],\n def?: any,\n p: number = 0\n) {\n const path = toPath(key);\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n return obj === undefined ? def : obj;\n}\n\n/**\n * Deeply set a value from in object via it's path. If the value at `path`\n * has changed, return a shallow copy of obj with `value` set at `path`.\n * If `value` has not changed, return the original `obj`.\n *\n * Existing objects / arrays along `path` are also shallow copied. Sibling\n * objects along path retain the same internal js reference. Since new\n * objects / arrays are only created along `path`, we can test if anything\n * changed in a nested structure by comparing the object's reference in\n * the old and new object, similar to how russian doll cache invalidation\n * works.\n *\n * In earlier versions of this function, which used cloneDeep, there were\n * issues whereby settings a nested value would mutate the parent\n * instead of creating a new object. `clone` avoids that bug making a\n * shallow copy of the objects along the update path\n * so no object is mutated in place.\n *\n * Before changing this function, please read through the following\n * discussions.\n *\n * @see https://github.com/developit/linkstate\n * @see https://github.com/jaredpalmer/formik/pull/123\n */\nexport function setIn(obj: any, path: string, value: any): any {\n let res: any = clone(obj); // this keeps inheritance when obj is a class\n let resVal: any = res;\n let i = 0;\n let pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n const currentPath: string = pathArray[i];\n let currentObj: any = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n const nextPath: string = pathArray[i + 1];\n resVal = resVal[currentPath] =\n isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n }\n\n // Return original object if new value is the same as current\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n }\n\n // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n\n/**\n * Recursively a set the same value for all keys and arrays nested object, cloning\n * @param object\n * @param value\n * @param visited\n * @param response\n */\nexport function setNestedObjectValues(\n object: any,\n value: any,\n visited: any = new WeakMap(),\n response: any = {}\n): T {\n for (let k of Object.keys(object)) {\n const val = object[k];\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true);\n // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n","import * as React from 'react';\nimport { FormikContextType } from './types';\nimport invariant from 'tiny-warning';\n\nexport const FormikContext = React.createContext>(\n undefined as any\n);\nFormikContext.displayName = 'FormikContext';\n\nexport const FormikProvider = FormikContext.Provider;\nexport const FormikConsumer = FormikContext.Consumer;\n\nexport function useFormikContext() {\n const formik = React.useContext>(FormikContext);\n\n invariant(\n !!formik,\n `Formik context is undefined, please verify you are calling useFormikContext() as child of a component.`\n );\n\n return formik;\n}\n","import * as React from 'react';\nimport isEqual from 'react-fast-compare';\nimport deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {\n FormikConfig,\n FormikErrors,\n FormikState,\n FormikTouched,\n FormikValues,\n FormikProps,\n FieldMetaProps,\n FieldHelperProps,\n FieldInputProps,\n FormikHelpers,\n FormikHandlers,\n} from './types';\nimport {\n isFunction,\n isString,\n setIn,\n isEmptyChildren,\n isPromise,\n setNestedObjectValues,\n getActiveElement,\n getIn,\n isObject,\n} from './utils';\nimport { FormikProvider } from './FormikContext';\nimport invariant from 'tiny-warning';\n\ntype FormikMessage =\n | { type: 'SUBMIT_ATTEMPT' }\n | { type: 'SUBMIT_FAILURE' }\n | { type: 'SUBMIT_SUCCESS' }\n | { type: 'SET_ISVALIDATING'; payload: boolean }\n | { type: 'SET_ISSUBMITTING'; payload: boolean }\n | { type: 'SET_VALUES'; payload: Values }\n | { type: 'SET_FIELD_VALUE'; payload: { field: string; value?: any } }\n | { type: 'SET_FIELD_TOUCHED'; payload: { field: string; value?: boolean } }\n | { type: 'SET_FIELD_ERROR'; payload: { field: string; value?: string } }\n | { type: 'SET_TOUCHED'; payload: FormikTouched }\n | { type: 'SET_ERRORS'; payload: FormikErrors }\n | { type: 'SET_STATUS'; payload: any }\n | {\n type: 'SET_FORMIK_STATE';\n payload: (s: FormikState) => FormikState;\n }\n | {\n type: 'RESET_FORM';\n payload: FormikState;\n };\n\n// State reducer\nfunction formikReducer(\n state: FormikState,\n msg: FormikMessage\n) {\n switch (msg.type) {\n case 'SET_VALUES':\n return { ...state, values: msg.payload };\n case 'SET_TOUCHED':\n return { ...state, touched: msg.payload };\n case 'SET_ERRORS':\n if (isEqual(state.errors, msg.payload)) {\n return state;\n }\n\n return { ...state, errors: msg.payload };\n case 'SET_STATUS':\n return { ...state, status: msg.payload };\n case 'SET_ISSUBMITTING':\n return { ...state, isSubmitting: msg.payload };\n case 'SET_ISVALIDATING':\n return { ...state, isValidating: msg.payload };\n case 'SET_FIELD_VALUE':\n return {\n ...state,\n values: setIn(state.values, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_TOUCHED':\n return {\n ...state,\n touched: setIn(state.touched, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_ERROR':\n return {\n ...state,\n errors: setIn(state.errors, msg.payload.field, msg.payload.value),\n };\n case 'RESET_FORM':\n return { ...state, ...msg.payload };\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n case 'SUBMIT_ATTEMPT':\n return {\n ...state,\n touched: setNestedObjectValues>(\n state.values,\n true\n ),\n isSubmitting: true,\n submitCount: state.submitCount + 1,\n };\n case 'SUBMIT_FAILURE':\n return {\n ...state,\n isSubmitting: false,\n };\n case 'SUBMIT_SUCCESS':\n return {\n ...state,\n isSubmitting: false,\n };\n default:\n return state;\n }\n}\n\n// Initial empty states // objects\nconst emptyErrors: FormikErrors = {};\nconst emptyTouched: FormikTouched = {};\n\n// This is an object that contains a map of all registered fields\n// and their validate functions\ninterface FieldRegistry {\n [field: string]: {\n validate: (value: any) => string | Promise | undefined;\n };\n}\n\nexport function useFormik({\n validateOnChange = true,\n validateOnBlur = true,\n validateOnMount = false,\n isInitialValid,\n enableReinitialize = false,\n onSubmit,\n ...rest\n}: FormikConfig) {\n const props = {\n validateOnChange,\n validateOnBlur,\n validateOnMount,\n onSubmit,\n ...rest,\n };\n const initialValues = React.useRef(props.initialValues);\n const initialErrors = React.useRef(props.initialErrors || emptyErrors);\n const initialTouched = React.useRef(props.initialTouched || emptyTouched);\n const initialStatus = React.useRef(props.initialStatus);\n const isMounted = React.useRef(false);\n const fieldRegistry = React.useRef({});\n if (__DEV__) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n invariant(\n typeof isInitialValid === 'undefined',\n 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.'\n );\n // eslint-disable-next-line\n }, []);\n }\n\n React.useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n const [state, dispatch] = React.useReducer<\n React.Reducer, FormikMessage>\n >(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0,\n });\n\n const runValidateHandler = React.useCallback(\n (values: Values, field?: string): Promise> => {\n return new Promise((resolve, reject) => {\n const maybePromisedErrors = (props.validate as any)(values, field);\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n (maybePromisedErrors as Promise).then(\n errors => {\n resolve(errors || emptyErrors);\n },\n actualException => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in `,\n actualException\n );\n }\n\n reject(actualException);\n }\n );\n } else {\n resolve(maybePromisedErrors);\n }\n });\n },\n [props.validate]\n );\n\n /**\n * Run validation against a Yup schema and optionally run a function if successful\n */\n const runValidationSchema = React.useCallback(\n (values: Values, field?: string): Promise> => {\n const validationSchema = props.validationSchema;\n const schema = isFunction(validationSchema)\n ? validationSchema(field)\n : validationSchema;\n const promise =\n field && schema.validateAt\n ? schema.validateAt(field, values)\n : validateYupSchema(values, schema);\n return new Promise((resolve, reject) => {\n promise.then(\n () => {\n resolve(emptyErrors);\n },\n (err: any) => {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in `,\n err\n );\n }\n\n reject(err);\n }\n }\n );\n });\n },\n [props.validationSchema]\n );\n\n const runSingleFieldLevelValidation = React.useCallback(\n (field: string, value: void | string): Promise => {\n return new Promise(resolve =>\n resolve(fieldRegistry.current[field].validate(value) as string)\n );\n },\n []\n );\n\n const runFieldLevelValidations = React.useCallback(\n (values: Values): Promise> => {\n const fieldKeysWithValidation: string[] = Object.keys(\n fieldRegistry.current\n ).filter(f => isFunction(fieldRegistry.current[f].validate));\n\n // Construct an array with all of the field validation functions\n const fieldValidations: Promise[] =\n fieldKeysWithValidation.length > 0\n ? fieldKeysWithValidation.map(f =>\n runSingleFieldLevelValidation(f, getIn(values, f))\n )\n : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then((fieldErrorsList: string[]) =>\n fieldErrorsList.reduce((prev, curr, index) => {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n return prev;\n }, {})\n );\n },\n [runSingleFieldLevelValidation]\n );\n\n // Run all validations and return the result\n const runAllValidations = React.useCallback(\n (values: Values) => {\n return Promise.all([\n runFieldLevelValidations(values),\n props.validationSchema ? runValidationSchema(values) : {},\n props.validate ? runValidateHandler(values) : {},\n ]).then(([fieldErrors, schemaErrors, validateErrors]) => {\n const combinedErrors = deepmerge.all>(\n [fieldErrors, schemaErrors, validateErrors],\n { arrayMerge }\n );\n return combinedErrors;\n });\n },\n [\n props.validate,\n props.validationSchema,\n runFieldLevelValidations,\n runValidateHandler,\n runValidationSchema,\n ]\n );\n\n // Run all validations methods and update state accordingly\n const validateFormWithHighPriority = useEventCallback(\n (values: Values = state.values) => {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runAllValidations(values).then(combinedErrors => {\n if (!!isMounted.current) {\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n dispatch({ type: 'SET_ERRORS', payload: combinedErrors });\n }\n return combinedErrors;\n });\n }\n );\n\n React.useEffect(() => {\n if (\n validateOnMount &&\n isMounted.current === true &&\n isEqual(initialValues.current, props.initialValues)\n ) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n\n const resetForm = React.useCallback(\n (nextState?: Partial>) => {\n const values =\n nextState && nextState.values\n ? nextState.values\n : initialValues.current;\n const errors =\n nextState && nextState.errors\n ? nextState.errors\n : initialErrors.current\n ? initialErrors.current\n : props.initialErrors || {};\n const touched =\n nextState && nextState.touched\n ? nextState.touched\n : initialTouched.current\n ? initialTouched.current\n : props.initialTouched || {};\n const status =\n nextState && nextState.status\n ? nextState.status\n : initialStatus.current\n ? initialStatus.current\n : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n const dispatchFn = () => {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors,\n touched,\n status,\n values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount:\n !!nextState &&\n !!nextState.submitCount &&\n typeof nextState.submitCount === 'number'\n ? nextState.submitCount\n : 0,\n },\n });\n };\n\n if (props.onReset) {\n const maybePromisedOnReset = (props.onReset as any)(\n state.values,\n imperativeMethods\n );\n\n if (isPromise(maybePromisedOnReset)) {\n (maybePromisedOnReset as Promise).then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n },\n [props.initialErrors, props.initialStatus, props.initialTouched]\n );\n\n React.useEffect(() => {\n if (\n isMounted.current === true &&\n !isEqual(initialValues.current, props.initialValues)\n ) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [\n enableReinitialize,\n props.initialValues,\n resetForm,\n validateOnMount,\n validateFormWithHighPriority,\n ]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialErrors.current, props.initialErrors)\n ) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors,\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialTouched.current, props.initialTouched)\n ) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched,\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialStatus.current, props.initialStatus)\n ) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus,\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n\n const validateField = useEventCallback((name: string) => {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n\n if (\n fieldRegistry.current[name] &&\n isFunction(fieldRegistry.current[name].validate)\n ) {\n const value = getIn(state.values, name);\n const maybePromise = fieldRegistry.current[name].validate(value);\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return maybePromise\n .then((x: any) => x)\n .then((error: string) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise as string | undefined,\n },\n });\n return Promise.resolve(maybePromise as string | undefined);\n }\n } else if (props.validationSchema) {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runValidationSchema(state.values, name)\n .then((x: any) => x)\n .then((error: any) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error[name] },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n }\n\n return Promise.resolve();\n });\n\n const registerField = React.useCallback((name: string, { validate }: any) => {\n fieldRegistry.current[name] = {\n validate,\n };\n }, []);\n\n const unregisterField = React.useCallback((name: string) => {\n delete fieldRegistry.current[name];\n }, []);\n\n const setTouched = useEventCallback(\n (touched: FormikTouched, shouldValidate?: boolean) => {\n dispatch({ type: 'SET_TOUCHED', payload: touched });\n const willValidate =\n shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(state.values)\n : Promise.resolve();\n }\n );\n\n const setErrors = React.useCallback((errors: FormikErrors) => {\n dispatch({ type: 'SET_ERRORS', payload: errors });\n }, []);\n\n const setValues = useEventCallback(\n (values: React.SetStateAction, shouldValidate?: boolean) => {\n const resolvedValues = isFunction(values) ? values(state.values) : values;\n\n dispatch({ type: 'SET_VALUES', payload: resolvedValues });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(resolvedValues)\n : Promise.resolve();\n }\n );\n\n const setFieldError = React.useCallback(\n (field: string, value: string | undefined) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field, value },\n });\n },\n []\n );\n\n const setFieldValue = useEventCallback(\n (field: string, value: any, shouldValidate?: boolean) => {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field,\n value,\n },\n });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(setIn(state.values, field, value))\n : Promise.resolve();\n }\n );\n\n const executeChange = React.useCallback(\n (eventOrTextValue: string | React.ChangeEvent, maybePath?: string) => {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n let field = maybePath;\n let val = eventOrTextValue;\n let parsed;\n // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if ((eventOrTextValue as any).persist) {\n (eventOrTextValue as React.ChangeEvent).persist();\n }\n const target = eventOrTextValue.target\n ? (eventOrTextValue as React.ChangeEvent).target\n : (eventOrTextValue as React.ChangeEvent).currentTarget;\n\n const {\n type,\n name,\n id,\n value,\n checked,\n outerHTML,\n options,\n multiple,\n } = target;\n\n field = maybePath ? maybePath : name ? name : id;\n if (!field && __DEV__) {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange',\n });\n }\n val = /number|range/.test(type)\n ? ((parsed = parseFloat(value)), isNaN(parsed) ? '' : parsed)\n : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field!), checked, value)\n : options && multiple // \n \n );\n};\n\nconst Label: React.FC = () => {\n const { values } = useFormikContext();\n\n return (\n \n {textsOnPage.form.steps[STEP_INDEX].defaultStepLabel}\n \n );\n};\n\nconst Completed: React.FC = () => {\n const { values, setFieldValue } = useFormikContext();\n\n const handleStep = useCallback(() => {\n setFieldValue(\"formParams.activeStep\", STEP_INDEX);\n }, [setFieldValue]);\n\n if (values.formParams.activeStep === STEP_INDEX) return null;\n\n return (\n \n \n {textsOnPage.form.steps[STEP_INDEX].completed.description}\n \n\n \n {textsOnPage.form.steps[STEP_INDEX].completed.getBackButtonText}\n \n ) : undefined\n }\n />\n \n );\n};\n\nconst Main: React.FC = () => {\n const { values } = useFormikContext();\n\n return (\n \n \n \n {textsOnPage.form.steps[STEP_INDEX].description}\n \n \n {values.substrate.hex && (\n \n )}\n \n {textsOnPage.form.steps[STEP_INDEX].buttonText}\n \n \n \n );\n};\n\nconst SubstrateStep: StepData = {\n main: Main,\n completed: Completed,\n label: Label,\n};\n\nexport default SubstrateStep;\n","import styled from \"@emotion/styled\";\n\nconst DashedBordered = styled(\"div\")({\n border: \"1px dashed #505050\",\n borderRadius: \"5px\",\n padding: \"16px\",\n});\n\nexport default DashedBordered;\n","import styled from \"@emotion/styled\";\n\nconst TabComponent = styled(\"div\")({\n borderLeft: \"0.25rem solid #505050\",\n padding: \"0px 0px 0px 1.75rem\",\n});\n\nexport default TabComponent;\n","import ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Alert,\n Link,\n Skeleton,\n Typography,\n} from \"@mui/material\";\nimport { Box, Stack } from \"@mui/system\";\nimport type { ApiRx } from \"@polkadot/api\";\nimport type { u128, Vec } from \"@polkadot/types-codec\";\nimport type { Codec } from \"@polkadot/types-codec/types\";\nimport type { AccountId32 } from \"@polkadot/types/interfaces/runtime\";\nimport type {\n DispatchInfo,\n EventRecord,\n} from \"@polkadot/types/interfaces/system\";\nimport type {\n FrameSupportWeightsDispatchInfo,\n VestingScheduleLinearLinearSchedule,\n} from \"@polkadot/types/lookup\";\nimport { useFormikContext } from \"formik\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport type { FormValues } from \"../components/Form\";\nimport DashedBordered from \"../lib/ui/DashedBordered\";\nimport Paper from \"../lib/ui/Paper\";\nimport TabComponent from \"../lib/ui/TabComponent\";\nimport { useApi } from \"../subsystem/api/state\";\nimport { useConfig } from \"../subsystem/config/state\";\nimport { toUnit } from \"../subsystem/utils/display\";\nimport { ExtrinsicFailedType, ExtrinsicType } from \"../subsystem/utils/types\";\n\ntype DetailsProps = {\n name: string;\n data: T;\n overrideRawType?: string;\n};\nconst Account32Details: React.FC> = (props) => {\n const { name, data, overrideRawType } = props;\n\n return (\n \n \n {name}: {overrideRawType || data.toRawType()}\n \n {data.toString()}\n \n );\n};\n\nconst U128Details: React.FC & { api: ApiRx }> = (props) => {\n const { api, name, data, overrideRawType } = props;\n\n return (\n \n \n {name}: {overrideRawType || data.toRawType()}\n \n \n {toUnit(\n data,\n api.registry.chainDecimals[0],\n api.registry.chainTokens[0]\n )}\n \n \n );\n};\n\nconst FrameSupportWeightsDispatchInfoDetails: React.FC<\n DetailsProps\n> = (props) => {\n const { name, data, overrideRawType } = props;\n return (\n \n \n {name}: {overrideRawType || data.toRawType()}\n \n
{JSON.stringify(data.toJSON(), null, 2)}
\n
\n );\n};\n\nconst VestingScheduleLinearLinearScheduleDetails: React.FC<\n DetailsProps>\n> = (props) => {\n const { name, data, overrideRawType } = props;\n\n return (\n <>\n \n {name}: {overrideRawType || data.toRawType()}\n \n \n \n {data.map((oneData, index) => (\n \n \n \n {index}: {\"VestingScheduleLinearLinearSchedule\"}\n \n
\n                  {JSON.stringify(\n                    {\n                      balance: oneData.balance.toHuman(),\n                      cliff: oneData.cliff.toHuman(),\n                      vesting: oneData.vesting.toHuman(),\n                    },\n                    null,\n                    2\n                  )}\n                
\n
\n
\n ))}\n
\n
\n \n );\n};\n\nconst PrimitivesEthereumEthereumAddressDetails: React.FC<\n DetailsProps\n> = (props) => {\n const { name, data, overrideRawType } = props;\n\n return (\n \n \n {name}: {overrideRawType || data.toRawType()}\n \n {data.toString()}\n \n );\n};\n\nconst ExtrinsicFailedDetails: React.FC<\n Omit, \"name\"> & { api: ApiRx }\n> = (props) => {\n const { data, api } = props;\n\n const mod = data.dispatchError.asModule;\n const { docs, section, method } = api.registry.findMetaError(mod);\n\n return (\n \n \n \n \n dispatchError: SpRuntimeDispatchError\n \n
\n            {JSON.stringify(\n              {\n                index: data.dispatchError.asModule.index,\n                error: data.dispatchError.asModule.error,\n              },\n              null,\n              2\n            )}\n          
\n
\n \n type\n \n {section}.{method}\n \n \n \n details\n {docs}\n \n \n
\n
\n );\n};\n\ntype ClaimingEventProps = {\n eventData: EventRecord;\n};\nconst ClaimingEvent: React.FC = (props) => {\n const { api } = useApi();\n const { eventData } = props;\n const [expanded, setExpanded] = useState(false);\n\n const expandHandler = useCallback(\n (event: React.SyntheticEvent, isExpanded: boolean) => {\n setExpanded(isExpanded);\n },\n []\n );\n\n const docs = useMemo(\n () => eventData.event.meta.docs.toHuman(),\n [eventData.event.meta.docs]\n );\n const type = useMemo(\n () => `${eventData.event.section}.${eventData.event.method}`,\n [eventData.event.method, eventData.event.section]\n );\n\n const details = useMemo(() => {\n if (type === \"system.ExtrinsicFailed\") {\n return (\n \n );\n }\n if (type === \"system.ExtrinsicSuccess\") {\n return (\n \n );\n }\n return eventData.event.data.map((data, index) => {\n const name = eventData.event.data.names?.[index];\n\n if (!name) return null;\n\n switch (data.toRawType()) {\n case \"AccountId\":\n return (\n \n );\n case \"[u8;20]\":\n return (\n \n );\n case \"u128\":\n return (\n \n );\n case \"FrameSupportWeightsDispatchInfo\":\n return (\n \n );\n case \"Vec\":\n return (\n }\n name={name}\n />\n );\n case \"PrimitivesEthereumEthereumAddress\":\n return (\n \n );\n default:\n return null;\n }\n });\n }, [api, eventData.event.data, type]);\n\n return (\n \n }\n aria-controls=\"content\"\n id=\"header\"\n >\n \n {type}\n {docs?.toString()}\n \n \n \n {details}\n \n \n );\n};\n\nconst ClaimingEventsView: React.FC = () => {\n const {\n values: { claimingEvents },\n } = useFormikContext();\n const { linkToExplorer } = useConfig();\n\n return !claimingEvents.length ? (\n \n Waiting for claiming events...\n \n \n If the loader gets stuck on this step, go directly to{\" \"}\n \n Polkadot apps\n \n .\n \n \n Most likely, your tokens were claimed successfully and now you can\n unlock them:{\" \"}\n \n Guide\n \n .\n \n \n \n \n \n \n ) : (\n <>\n {claimingEvents.map((eventData, index) => (\n \n ))}\n \n );\n};\n\nexport default ClaimingEventsView;\n","import { Button, StepContent, StepLabel } from \"@mui/material\";\nimport { useFormikContext } from \"formik\";\nimport textsOnPage from \"../textsOnPage\";\nimport ClaimingEventsView from \"./ClaimingEventsView\";\nimport type { FormValues } from \"./Form\";\nimport { StepData } from \"./Steps\";\n\nconst STEP_INDEX = 3;\n\nconst Label: React.FC = () => {\n const { values } = useFormikContext();\n\n return (\n \n {textsOnPage.form.steps[STEP_INDEX].defaultStepLabel}\n \n );\n};\n\nconst Completed: React.FC = () => {\n const { values, setFieldValue } = useFormikContext();\n\n if (values.formParams.activeStep <= STEP_INDEX) return null;\n\n return (\n <>\n \n setFieldValue(\"formParams.showLogs\", !values.formParams.showLogs)\n }\n sx={{ mb: 1 }}\n >\n {values.formParams.showLogs\n ? textsOnPage.form.steps[STEP_INDEX]?.completed.toggleText?.[1]\n : textsOnPage.form.steps[STEP_INDEX]?.completed.toggleText?.[0]}\n \n {values.formParams.showLogs && }\n \n );\n};\n\nconst Main: React.FC = () => (\n \n \n \n);\n\nconst TransactionProcessingStep: StepData = {\n main: Main,\n completed: Completed,\n label: Label,\n};\n\nexport default TransactionProcessingStep;\n","import { Step } from \"@mui/material\";\nimport Connector from \"../lib/ui/Connector\";\nimport ClaimStep from \"./ClaimStep\";\nimport CompleteStep from \"./CompleteStep\";\nimport EthereumStep from \"./EthereumStep\";\nimport SubstrateStep from \"./SubstrateStep\";\nimport TransactionProcessingStep from \"./TransactionProcessingStep\";\n\nexport type StepData = {\n main: React.FC;\n completed: React.FC;\n label: React.FC;\n};\n\nconst makeSteps = (steps: StepData[]) =>\n steps.map((stepData, index) => {\n const MainComponent = stepData.main;\n const Label = stepData.label;\n const CompletedComponent = steps[index - 1]?.completed;\n return (\n \n {CompletedComponent && (\n \n \n \n )}\n \n );\n });\n\nexport default makeSteps([\n SubstrateStep,\n EthereumStep,\n ClaimStep,\n TransactionProcessingStep,\n CompleteStep,\n]);\n","import { Stack, Stepper } from \"@mui/material\";\nimport type { InjectedAccountWithMeta } from \"@polkadot/extension-inject/types\";\nimport { getSpecTypes } from \"@polkadot/types-known\";\nimport type { EventRecord } from \"@polkadot/types/interfaces/system\";\nimport { base64Encode } from \"@polkadot/util-crypto\";\nimport {\n Form,\n Formik,\n FormikErrors,\n FormikHelpers,\n useFormikContext,\n} from \"formik\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { scan, takeWhile } from \"rxjs\";\nimport Section from \"../lib/ui/Section\";\nimport SubstrateConnect from \"../lib/wallet/substrate/connect\";\nimport { substrateUpdate } from \"../lib/wallet/substrate/provider\";\nimport Layout from \"../pages/Layout\";\nimport { useApi } from \"../subsystem/api/state\";\nimport {\n getClaims,\n getSystemChain,\n txTokenClaimsClaim,\n} from \"../subsystem/humanodePeerApi/wrappers\";\nimport { useSubstrateInjectedExtension } from \"../subsystem/requirements/state\";\nimport TokenClaimsInit from \"../subsystem/tokenClaims/TokenClaimsInit\";\nimport ApiConnectionSettingLayer from \"./ApiConnectionSettingLayer\";\nimport Steps from \"./Steps\";\n\ntype HexString = `0x${string}`;\n\nexport type FormValues = {\n ethereum: {\n address?: HexString;\n };\n substrate: {\n account?: InjectedAccountWithMeta;\n hex?: HexString;\n };\n manual: {\n ethereumAddress?: HexString;\n signature?: HexString;\n };\n eip712: {\n ethereumAddress?: HexString;\n signature?: HexString;\n };\n signature?: HexString;\n nothingToClaim: boolean;\n claimingEvents: EventRecord[];\n formParams: {\n activeStep: number;\n tabIndex: number;\n complete: boolean;\n showLogs: boolean;\n };\n claimButton?: {};\n};\n\nconst FormBody: React.FC = () => {\n const { values, setFieldValue } = useFormikContext();\n const { api } = useApi();\n const [systemChain, setSystemChain] = useState(\"\");\n const { extension } = useSubstrateInjectedExtension();\n\n const substrateSign = useCallback(\n () =>\n txTokenClaimsClaim(\n api,\n values.substrate.account!,\n values.ethereum.address!,\n values.signature!\n ).pipe(\n scan((acc, one) => {\n const events = acc.concat(one.events);\n setFieldValue(\"claimingEvents\", events);\n\n return events;\n }, [] as EventRecord[]),\n takeWhile(\n (eventRecords) =>\n eventRecords.every((eventRecord) => {\n return ![\"ExtrinsicFailed\", \"ExtrinsicSuccess\"].includes(\n eventRecord.event.method\n );\n }),\n true\n )\n ),\n [\n api,\n setFieldValue,\n values.ethereum.address,\n values.signature,\n values.substrate.account,\n ]\n );\n\n useEffect(() => {\n getSystemChain(api).then((systemChain) => {\n setSystemChain(systemChain);\n substrateUpdate(api, extension, {\n chain: systemChain,\n chainType: \"substrate\",\n genesisHash: api.genesisHash.toHex(),\n metaCalls: base64Encode(api.runtimeMetadata.asCallsOnly.toU8a()),\n specVersion: api.runtimeVersion.specVersion.toNumber(),\n ss58Format: Number(api.registry.chainSS58),\n tokenDecimals: api.registry.chainDecimals[0],\n tokenSymbol: api.registry.chainTokens[0],\n types: getSpecTypes(\n api.registry,\n systemChain,\n api.runtimeVersion.specName,\n api.runtimeVersion.specVersion\n ) as unknown as Record,\n icon: \"\",\n });\n });\n }, [api, extension]);\n\n const getClaimsHandler = useCallback(\n (address: HexString) => getClaims(api, address),\n [api]\n );\n\n return (\n \n \n
\n \n
\n \n {Steps}\n \n \n \n \n \n );\n};\n\ntype FormComponentProps = {\n initialFormValues: FormValues;\n validate: (values: FormValues) => FormikErrors | undefined;\n onSubmit: (\n values: FormValues,\n formikHelpers: FormikHelpers\n ) => Promise;\n};\nconst FormComponent: React.FC = (props) => {\n return (\n \n \n \n initialValues={props.initialFormValues}\n validate={props.validate}\n validateOnChange\n onSubmit={props.onSubmit}\n >\n \n \n \n \n );\n};\n\nexport default FormComponent;\n","import { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { scanInternals } from './scanInternals';\n\nexport function scan(accumulator: (acc: A | V, value: V, index: number) => A): OperatorFunction;\nexport function scan(accumulator: (acc: A, value: V, index: number) => A, seed: A): OperatorFunction;\nexport function scan(accumulator: (acc: A | S, value: V, index: number) => A, seed: S): OperatorFunction;\n\n// TODO: link to a \"redux pattern\" section in the guide (location TBD)\n\n/**\n * Useful for encapsulating and managing state. Applies an accumulator (or \"reducer function\")\n * to each value from the source after an initial state is established -- either via\n * a `seed` value (second argument), or from the first value from the source.\n *\n * It's like {@link reduce}, but emits the current\n * accumulation state after each update\n *\n * ![](scan.png)\n *\n * This operator maintains an internal state and emits it after processing each value as follows:\n *\n * 1. First value arrives\n * - If a `seed` value was supplied (as the second argument to `scan`), let `state = seed` and `value = firstValue`.\n * - If NO `seed` value was supplied (no second argument), let `state = firstValue` and go to 3.\n * 2. Let `state = accumulator(state, value)`.\n * - If an error is thrown by `accumulator`, notify the consumer of an error. The process ends.\n * 3. Emit `state`.\n * 4. Next value arrives, let `value = nextValue`, go to 2.\n *\n * ## Examples\n *\n * An average of previous numbers. This example shows how\n * not providing a `seed` can prime the stream with the\n * first value from the source.\n *\n * ```ts\n * import { of, scan, map } from 'rxjs';\n *\n * const numbers$ = of(1, 2, 3);\n *\n * numbers$\n * .pipe(\n * // Get the sum of the numbers coming in.\n * scan((total, n) => total + n),\n * // Get the average by dividing the sum by the total number\n * // received so var (which is 1 more than the zero-based index).\n * map((sum, index) => sum / (index + 1))\n * )\n * .subscribe(console.log);\n * ```\n *\n * The Fibonacci sequence. This example shows how you can use\n * a seed to prime accumulation process. Also... you know... Fibonacci.\n * So important to like, computers and stuff that its whiteboarded\n * in job interviews. Now you can show them the Rx version! (Please don't, haha)\n *\n * ```ts\n * import { interval, scan, map, startWith } from 'rxjs';\n *\n * const firstTwoFibs = [0, 1];\n * // An endless stream of Fibonacci numbers.\n * const fibonacci$ = interval(1000).pipe(\n * // Scan to get the fibonacci numbers (after 0, 1)\n * scan(([a, b]) => [b, a + b], firstTwoFibs),\n * // Get the second number in the tuple, it's the one you calculated\n * map(([, n]) => n),\n * // Start with our first two digits :)\n * startWith(...firstTwoFibs)\n * );\n *\n * fibonacci$.subscribe(console.log);\n * ```\n *\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link reduce}\n * @see {@link switchScan}\n *\n * @param accumulator A \"reducer function\". This will be called for each value after an initial state is\n * acquired.\n * @param seed The initial state. If this is not provided, the first value from the source will\n * be used as the initial state, and emitted without going through the accumulator. All subsequent values\n * will be processed by the accumulator function. If this is provided, all values will go through\n * the accumulator function.\n * @return A function that returns an Observable of the accumulated values.\n */\nexport function scan(accumulator: (acc: V | A | S, value: V, index: number) => A, seed?: S): OperatorFunction {\n // providing a seed of `undefined` *should* be valid and trigger\n // hasSeed! so don't use `seed !== undefined` checks!\n // For this reason, we have to check it here at the original call site\n // otherwise inside Operator/Subscriber we won't know if `undefined`\n // means they didn't provide anything or if they literally provided `undefined`\n return operate(scanInternals(accumulator, seed as S, arguments.length >= 2, true));\n}\n","import { OperatorFunction, MonoTypeOperatorFunction, TruthyTypesOf } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\nexport function takeWhile(predicate: BooleanConstructor, inclusive: true): MonoTypeOperatorFunction;\nexport function takeWhile(predicate: BooleanConstructor, inclusive: false): OperatorFunction>;\nexport function takeWhile(predicate: BooleanConstructor): OperatorFunction>;\nexport function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction;\nexport function takeWhile(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction;\nexport function takeWhile(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction;\n\n/**\n * Emits values emitted by the source Observable so long as each value satisfies\n * the given `predicate`, and then completes as soon as this `predicate` is not\n * satisfied.\n *\n * Takes values from the source only while they pass the\n * condition given. When the first value does not satisfy, it completes.\n *\n * ![](takeWhile.png)\n *\n * `takeWhile` subscribes and begins mirroring the source Observable. Each value\n * emitted on the source is given to the `predicate` function which returns a\n * boolean, representing a condition to be satisfied by the source values. The\n * output Observable emits the source values until such time as the `predicate`\n * returns false, at which point `takeWhile` stops mirroring the source\n * Observable and completes the output Observable.\n *\n * ## Example\n *\n * Emit click events only while the clientX property is greater than 200\n *\n * ```ts\n * import { fromEvent, takeWhile } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(takeWhile(ev => ev.clientX > 200));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates a value emitted by the source Observable and returns a boolean.\n * Also takes the (zero-based) index as the second argument.\n * @param {boolean} inclusive When set to `true` the value that caused\n * `predicate` to return `false` will also be emitted.\n * @return A function that returns an Observable that emits values from the\n * source Observable so long as each value satisfies the condition defined by\n * the `predicate`, then completes.\n */\nexport function takeWhile(predicate: (value: T, index: number) => boolean, inclusive = false): MonoTypeOperatorFunction {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(\n createOperatorSubscriber(subscriber, (value) => {\n const result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n })\n );\n });\n}\n","import { useEffect } from \"react\";\nimport { useConfig } from \"../subsystem/config/state\";\nimport * as typedLocalStorage from \"../subsystem/localStorage\";\n\nconst useSetupDefaultConnectionUrl = () => {\n const { baseUrl } = useConfig();\n\n useEffect(() => {\n const connectionUrl = typedLocalStorage.getItem(\"connectionUrl\");\n if (!connectionUrl) {\n typedLocalStorage.setItem(\"connectionUrl\", baseUrl);\n }\n }, [baseUrl]);\n\n return null;\n};\n\nexport default useSetupDefaultConnectionUrl;\n","import type { ProviderInterface } from \"@polkadot/rpc-provider/types\";\nimport type { StateProps } from \"@tagged-state/core\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { ApiContext, State } from \"./state\";\n\ntype Props = {\n children: React.ReactNode;\n setConnectionUrl: (connectionUrl: string) => void;\n builder: () => Omit[\"establishing\"], \"setConnectionUrl\"> & {\n provider: ProviderInterface;\n };\n};\n\nconst ApiInit: React.FC = (props) => {\n const { children, setConnectionUrl, builder } = props;\n\n const [value, setValue] = useState({\n tag: \"uninit\",\n data: { setConnectionUrl },\n });\n const providerRef = useRef(null!);\n\n useEffect(() => {\n const { provider, ...data } = builder();\n providerRef.current = provider;\n setValue({\n tag: \"establishing\",\n data: { api: data.api, setConnectionUrl },\n });\n\n let sub = data.api.subscribe({\n next: (api) =>\n setValue({ tag: \"ready\", data: { api, setConnectionUrl } }),\n error: (error) =>\n setValue({ tag: \"error\", data: { error, setConnectionUrl } }),\n });\n\n return () => {\n providerRef.current.disconnect();\n sub.unsubscribe();\n };\n }, [builder, setConnectionUrl]);\n\n useEffect(() => {\n const disconnectedHandler = () => {\n if (value.tag !== \"ready\") return;\n value.data.api.off(\"disconnected\", disconnectedHandler);\n setValue({ tag: \"disconnected\", data: value.data });\n };\n const connectedHandler = () => {\n if (value.tag !== \"disconnected\") return;\n value.data.api.off(\"connected\", connectedHandler);\n setValue({ tag: \"ready\", data: value.data });\n };\n\n if (value.tag === \"ready\") {\n value.data.api.on(\"disconnected\", disconnectedHandler);\n } else if (value.tag === \"disconnected\") {\n value.data.api.on(\"connected\", connectedHandler);\n }\n\n return () => {\n if (value.tag === \"ready\")\n value.data.api.off(\"disconnected\", disconnectedHandler);\n if (value.tag === \"disconnected\")\n value.data.api.off(\"connected\", connectedHandler);\n };\n }, [value.data, value.tag]);\n\n return {children};\n};\n\nexport default ApiInit;\n","export default function _classPrivateFieldBase(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError(\"attempted to use private field on non-instance\");\n }\n\n return receiver;\n}","var id = 0;\nexport default function _classPrivateFieldKey(name) {\n return \"__private_\" + id++ + \"_\" + name;\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 */\n\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}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\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 */\n\nexport function isBn(value) {\n return BN.isBN(value);\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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\";\nconst logTo = {\n debug: 'log',\n error: 'error',\n log: 'log',\n warn: 'warn'\n};\n\nfunction formatOther(value) {\n if (value && isObject(value) && value.constructor === Object) {\n const result = {};\n\n for (const k of Object.keys(value)) {\n result[k] = loggerFormat(value[k]);\n }\n\n return result;\n }\n\n return value;\n}\n\nexport function loggerFormat(value) {\n if (Array.isArray(value)) {\n return value.map(loggerFormat);\n } else if (isBn(value)) {\n return value.toString();\n } else if (isU8a(value) || isBuffer(value)) {\n return u8aToHex(u8aToU8a(value));\n }\n\n return formatOther(value);\n}\n\nfunction formatWithLength(maxLength) {\n return v => {\n if (maxLength <= 0) {\n return v;\n }\n\n const r = `${v}`;\n return r.length < maxLength ? v : `${r.substring(0, maxLength)} ...`;\n };\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\n console[logTo[log]](formatDate(new Date()), type, ...values.map(loggerFormat).map(formatWithLength(maxSize)));\n}\n\nfunction noop() {// noop\n}\n\nfunction isDebugOn(e, type) {\n return !!e && (e === '*' || type === e || e.endsWith('*') && type.startsWith(e.slice(0, -1)));\n}\n\nfunction isDebugOff(e, type) {\n return !!e && e.startsWith('-') && (type === e.slice(1) || e.endsWith('*') && type.startsWith(e.slice(1, -1)));\n}\n\nfunction getDebugFlag(env, type) {\n let flag = false;\n\n for (const e of env) {\n if (isDebugOn(e, type)) {\n flag = true;\n } else if (isDebugOff(e, type)) {\n flag = false;\n }\n }\n\n return flag;\n}\n\nfunction parseEnv(type) {\n const env = (hasProcess ? process : {}).env || {};\n const maxSize = parseInt(env.DEBUG_MAX || '-1', 10);\n return [getDebugFlag((env.DEBUG || '').toLowerCase().split(','), type), isNaN(maxSize) ? -1 : maxSize];\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 *
\n *\n * ```javascript\n * import { logger } from '@polkadot/util';\n *\n * const l = logger('test');\n * ```\n */\n\n\nexport function logger(_type) {\n const type = `${_type.toUpperCase()}:`.padStart(16);\n const [isDebug, maxSize] = parseEnv(_type.toLowerCase());\n return {\n debug: isDebug ? (...values) => apply('debug', type, values, maxSize) : 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}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 *
\n *\n * ```javascript\n * import { isUndefined } from '@polkadot/util';\n *\n * console.log('isUndefined', isUndefined(void(0))); // => true\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isUndefined(value) {\n return value === undefined;\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\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 *
\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}","// Copyright 2017-2022 @polkadot/x-ws authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { xglobal } from '@polkadot/x-global';\nexport { packageInfo } from \"./packageInfo.js\";\nexport const WebSocket = xglobal.WebSocket;","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\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 *
\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}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 *
\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}","// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isFunction } from '@polkadot/util/is/function';\nconst UNKNOWN = -99999;\n\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 *
\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 */\n\n\nexport default class 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\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n const {\n stack\n } = new Error(message);\n stack && extend(this, 'stack', stack);\n }\n }\n\n static CODES = {\n ASSERT: -90009,\n INVALID_JSONRPC: -99998,\n METHOD_NOT_FOUND: -32601,\n // Rust client\n UNKNOWN\n };\n}","// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isNumber, isString, isUndefined, stringify } from '@polkadot/util';\nimport RpcError from \"./error.js\";\n\nfunction formatErrorData(data) {\n if (isUndefined(data)) {\n return '';\n }\n\n const formatted = `: ${isString(data) ? data.replace(/Error\\(\"/g, '').replace(/\\(\"/g, '(').replace(/\"\\)/g, ')').replace(/\\(/g, ', ').replace(/\\)/g, '') : stringify(data)}`; // 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\n return formatted.length <= 256 ? formatted : `${formatted.substring(0, 255)}…`;\n}\n\nfunction checkError(error) {\n if (error) {\n const {\n code,\n data,\n message\n } = error;\n throw new RpcError(`${code}: ${message}${formatErrorData(data)}`, code, data);\n }\n}\n/** @internal */\n\n\nexport class RpcCoder {\n #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\n const isSubscription = !isUndefined(response.params) && !isUndefined(response.method);\n\n if (!isNumber(response.id) && (!isSubscription || !isNumber(response.params.subscription) && !isString(response.params.subscription))) {\n throw new Error('Invalid id field in decoded object');\n }\n\n checkError(response.error);\n\n if (response.result === undefined && !isSubscription) {\n throw new Error('No result found in jsonrpc response');\n }\n\n if (isSubscription) {\n checkError(response.params.error);\n return response.params.result;\n }\n\n return response.result;\n }\n\n encodeJson(method, params) {\n const [id, data] = this.encodeObject(method, params);\n return [id, stringify(data)];\n }\n\n encodeObject(method, params) {\n const id = ++this.#id;\n return [id, {\n id,\n jsonrpc: '2.0',\n method,\n params\n }];\n }\n\n}","// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nconst 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};","import _classPrivateFieldLooseBase from \"@babel/runtime/helpers/esm/classPrivateFieldLooseBase\";\nimport _classPrivateFieldLooseKey from \"@babel/runtime/helpers/esm/classPrivateFieldLooseKey\";\n// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// Assuming all 1.5MB responses, we apply a default allowing for 192MB\n// cache space (depending on the historic queries this would vary, metadata\n// for Kusama/Polkadot/Substrate falls between 600-750K, 2x for estimate)\nconst DEFAULT_CAPACITY = 128;\n\nclass LRUNode {\n constructor(key) {\n this.key = key;\n this.next = this.prev = this;\n }\n\n} // https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n\n\nvar _data = /*#__PURE__*/_classPrivateFieldLooseKey(\"data\");\n\nvar _refs = /*#__PURE__*/_classPrivateFieldLooseKey(\"refs\");\n\nvar _length = /*#__PURE__*/_classPrivateFieldLooseKey(\"length\");\n\nvar _head = /*#__PURE__*/_classPrivateFieldLooseKey(\"head\");\n\nvar _tail = /*#__PURE__*/_classPrivateFieldLooseKey(\"tail\");\n\nvar _toHead = /*#__PURE__*/_classPrivateFieldLooseKey(\"toHead\");\n\nexport class LRUCache {\n constructor(capacity = DEFAULT_CAPACITY) {\n Object.defineProperty(this, _toHead, {\n value: _toHead2\n });\n this.capacity = void 0;\n Object.defineProperty(this, _data, {\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, _refs, {\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, _length, {\n writable: true,\n value: 0\n });\n Object.defineProperty(this, _head, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _tail, {\n writable: true,\n value: void 0\n });\n this.capacity = capacity;\n _classPrivateFieldLooseBase(this, _head)[_head] = _classPrivateFieldLooseBase(this, _tail)[_tail] = new LRUNode('');\n }\n\n get length() {\n return _classPrivateFieldLooseBase(this, _length)[_length];\n }\n\n get lengthData() {\n return _classPrivateFieldLooseBase(this, _data)[_data].size;\n }\n\n get lengthRefs() {\n return _classPrivateFieldLooseBase(this, _refs)[_refs].size;\n }\n\n entries() {\n const keys = this.keys();\n const entries = new Array(keys.length);\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n entries[i] = [key, _classPrivateFieldLooseBase(this, _data)[_data].get(key)];\n }\n\n return entries;\n }\n\n keys() {\n const keys = [];\n\n if (_classPrivateFieldLooseBase(this, _length)[_length]) {\n let curr = _classPrivateFieldLooseBase(this, _head)[_head];\n\n while (curr !== _classPrivateFieldLooseBase(this, _tail)[_tail]) {\n keys.push(curr.key);\n curr = curr.next;\n }\n\n keys.push(curr.key);\n }\n\n return keys;\n }\n\n get(key) {\n const data = _classPrivateFieldLooseBase(this, _data)[_data].get(key);\n\n if (data) {\n _classPrivateFieldLooseBase(this, _toHead)[_toHead](key);\n\n return data;\n }\n\n return null;\n }\n\n set(key, value) {\n if (_classPrivateFieldLooseBase(this, _data)[_data].has(key)) {\n _classPrivateFieldLooseBase(this, _toHead)[_toHead](key);\n } else {\n const node = new LRUNode(key);\n\n _classPrivateFieldLooseBase(this, _refs)[_refs].set(node.key, node);\n\n if (this.length === 0) {\n _classPrivateFieldLooseBase(this, _head)[_head] = _classPrivateFieldLooseBase(this, _tail)[_tail] = node;\n } else {\n _classPrivateFieldLooseBase(this, _head)[_head].prev = node;\n node.next = _classPrivateFieldLooseBase(this, _head)[_head];\n _classPrivateFieldLooseBase(this, _head)[_head] = node;\n }\n\n if (_classPrivateFieldLooseBase(this, _length)[_length] === this.capacity) {\n _classPrivateFieldLooseBase(this, _data)[_data].delete(_classPrivateFieldLooseBase(this, _tail)[_tail].key);\n\n _classPrivateFieldLooseBase(this, _refs)[_refs].delete(_classPrivateFieldLooseBase(this, _tail)[_tail].key);\n\n _classPrivateFieldLooseBase(this, _tail)[_tail] = _classPrivateFieldLooseBase(this, _tail)[_tail].prev;\n _classPrivateFieldLooseBase(this, _tail)[_tail].next = _classPrivateFieldLooseBase(this, _head)[_head];\n } else {\n _classPrivateFieldLooseBase(this, _length)[_length] += 1;\n }\n }\n\n _classPrivateFieldLooseBase(this, _data)[_data].set(key, value);\n }\n\n}\n\nfunction _toHead2(key) {\n const ref = _classPrivateFieldLooseBase(this, _refs)[_refs].get(key);\n\n if (ref && ref !== _classPrivateFieldLooseBase(this, _head)[_head]) {\n ref.prev.next = ref.next;\n ref.next.prev = ref.prev;\n ref.next = _classPrivateFieldLooseBase(this, _head)[_head];\n _classPrivateFieldLooseBase(this, _head)[_head].prev = ref;\n _classPrivateFieldLooseBase(this, _head)[_head] = ref;\n }\n}","// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// from https://stackoverflow.com/questions/19304157/getting-the-reason-why-websockets-closed-with-close-code-1006\nconst 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};\n\nfunction getUnmapped(code) {\n if (code <= 1999) {\n return '(For WebSocket standard)';\n } else if (code <= 2999) {\n return '(For WebSocket extensions)';\n } else if (code <= 3999) {\n return '(For libraries and frameworks)';\n } else if (code <= 4999) {\n return '(For applications)';\n }\n}\n\nexport function getWSErrorString(code) {\n if (code >= 0 && code <= 999) {\n return '(Unused)';\n }\n\n return known[code] || getUnmapped(code) || '(Unknown)';\n}","import _classPrivateFieldLooseBase from \"@babel/runtime/helpers/esm/classPrivateFieldLooseBase\";\nimport _classPrivateFieldLooseKey from \"@babel/runtime/helpers/esm/classPrivateFieldLooseKey\";\n// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable camelcase */\nimport EventEmitter from 'eventemitter3';\nimport { isChildClass, isNull, isUndefined, logger, 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 MEGABYTE = 1024 * 1024;\nconst l = logger('api-ws');\n\nfunction eraseRecord(record, cb) {\n Object.keys(record).forEach(key => {\n if (cb) {\n cb(record[key]);\n }\n\n delete record[key];\n });\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 *
\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 */\n\n\nvar _callCache = /*#__PURE__*/_classPrivateFieldLooseKey(\"callCache\");\n\nvar _coder = /*#__PURE__*/_classPrivateFieldLooseKey(\"coder\");\n\nvar _endpoints = /*#__PURE__*/_classPrivateFieldLooseKey(\"endpoints\");\n\nvar _headers = /*#__PURE__*/_classPrivateFieldLooseKey(\"headers\");\n\nvar _eventemitter = /*#__PURE__*/_classPrivateFieldLooseKey(\"eventemitter\");\n\nvar _handlers = /*#__PURE__*/_classPrivateFieldLooseKey(\"handlers\");\n\nvar _isReadyPromise = /*#__PURE__*/_classPrivateFieldLooseKey(\"isReadyPromise\");\n\nvar _stats = /*#__PURE__*/_classPrivateFieldLooseKey(\"stats\");\n\nvar _waitingForId = /*#__PURE__*/_classPrivateFieldLooseKey(\"waitingForId\");\n\nvar _autoConnectMs = /*#__PURE__*/_classPrivateFieldLooseKey(\"autoConnectMs\");\n\nvar _endpointIndex = /*#__PURE__*/_classPrivateFieldLooseKey(\"endpointIndex\");\n\nvar _isConnected = /*#__PURE__*/_classPrivateFieldLooseKey(\"isConnected\");\n\nvar _subscriptions = /*#__PURE__*/_classPrivateFieldLooseKey(\"subscriptions\");\n\nvar _timeoutId = /*#__PURE__*/_classPrivateFieldLooseKey(\"timeoutId\");\n\nvar _websocket = /*#__PURE__*/_classPrivateFieldLooseKey(\"websocket\");\n\nvar _timeout = /*#__PURE__*/_classPrivateFieldLooseKey(\"timeout\");\n\nvar _send = /*#__PURE__*/_classPrivateFieldLooseKey(\"send\");\n\nvar _emit = /*#__PURE__*/_classPrivateFieldLooseKey(\"emit\");\n\nvar _onSocketClose = /*#__PURE__*/_classPrivateFieldLooseKey(\"onSocketClose\");\n\nvar _onSocketError = /*#__PURE__*/_classPrivateFieldLooseKey(\"onSocketError\");\n\nvar _onSocketMessage = /*#__PURE__*/_classPrivateFieldLooseKey(\"onSocketMessage\");\n\nvar _onSocketMessageResult = /*#__PURE__*/_classPrivateFieldLooseKey(\"onSocketMessageResult\");\n\nvar _onSocketMessageSubscribe = /*#__PURE__*/_classPrivateFieldLooseKey(\"onSocketMessageSubscribe\");\n\nvar _onSocketOpen = /*#__PURE__*/_classPrivateFieldLooseKey(\"onSocketOpen\");\n\nvar _resubscribe = /*#__PURE__*/_classPrivateFieldLooseKey(\"resubscribe\");\n\nvar _timeoutHandlers = /*#__PURE__*/_classPrivateFieldLooseKey(\"timeoutHandlers\");\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 {boolean} autoConnect Whether to connect automatically or not.\n * @param {number} [timeout] Custom timeout value\n */\n constructor(endpoint = defaults.WS_URL, autoConnectMs = RETRY_DELAY, headers = {}, timeout) {\n Object.defineProperty(this, _send, {\n value: _send2\n });\n Object.defineProperty(this, _callCache, {\n writable: true,\n value: new LRUCache()\n });\n Object.defineProperty(this, _coder, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _endpoints, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _headers, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _eventemitter, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _handlers, {\n writable: true,\n value: {}\n });\n Object.defineProperty(this, _isReadyPromise, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _stats, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _waitingForId, {\n writable: true,\n value: {}\n });\n Object.defineProperty(this, _autoConnectMs, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _endpointIndex, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _isConnected, {\n writable: true,\n value: false\n });\n Object.defineProperty(this, _subscriptions, {\n writable: true,\n value: {}\n });\n Object.defineProperty(this, _timeoutId, {\n writable: true,\n value: null\n });\n Object.defineProperty(this, _websocket, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _timeout, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _emit, {\n writable: true,\n value: (type, ...args) => {\n _classPrivateFieldLooseBase(this, _eventemitter)[_eventemitter].emit(type, ...args);\n }\n });\n Object.defineProperty(this, _onSocketClose, {\n writable: true,\n value: event => {\n const error = new Error(`disconnected from ${_classPrivateFieldLooseBase(this, _endpoints)[_endpoints][_classPrivateFieldLooseBase(this, _endpointIndex)[_endpointIndex]]}: ${event.code}:: ${event.reason || getWSErrorString(event.code)}`);\n\n if (_classPrivateFieldLooseBase(this, _autoConnectMs)[_autoConnectMs] > 0) {\n l.error(error.message);\n }\n\n _classPrivateFieldLooseBase(this, _isConnected)[_isConnected] = false;\n\n if (_classPrivateFieldLooseBase(this, _websocket)[_websocket]) {\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].onclose = null;\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].onerror = null;\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].onmessage = null;\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].onopen = null;\n _classPrivateFieldLooseBase(this, _websocket)[_websocket] = null;\n }\n\n if (_classPrivateFieldLooseBase(this, _timeoutId)[_timeoutId]) {\n clearInterval(_classPrivateFieldLooseBase(this, _timeoutId)[_timeoutId]);\n _classPrivateFieldLooseBase(this, _timeoutId)[_timeoutId] = null;\n }\n\n _classPrivateFieldLooseBase(this, _emit)[_emit]('disconnected'); // reject all hanging requests\n\n\n eraseRecord(_classPrivateFieldLooseBase(this, _handlers)[_handlers], h => {\n try {\n h.callback(error, undefined);\n } catch (err) {\n // does not throw\n l.error(err);\n }\n });\n eraseRecord(_classPrivateFieldLooseBase(this, _waitingForId)[_waitingForId]);\n\n if (_classPrivateFieldLooseBase(this, _autoConnectMs)[_autoConnectMs] > 0) {\n setTimeout(() => {\n this.connectWithRetry().catch(() => {// does not throw\n });\n }, _classPrivateFieldLooseBase(this, _autoConnectMs)[_autoConnectMs]);\n }\n }\n });\n Object.defineProperty(this, _onSocketError, {\n writable: true,\n value: error => {\n l.debug(() => ['socket error', error]);\n\n _classPrivateFieldLooseBase(this, _emit)[_emit]('error', error);\n }\n });\n Object.defineProperty(this, _onSocketMessage, {\n writable: true,\n value: message => {\n l.debug(() => ['received', message.data]);\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.bytesRecv += message.data.length;\n const response = JSON.parse(message.data);\n return isUndefined(response.method) ? _classPrivateFieldLooseBase(this, _onSocketMessageResult)[_onSocketMessageResult](response) : _classPrivateFieldLooseBase(this, _onSocketMessageSubscribe)[_onSocketMessageSubscribe](response);\n }\n });\n Object.defineProperty(this, _onSocketMessageResult, {\n writable: true,\n value: response => {\n const handler = _classPrivateFieldLooseBase(this, _handlers)[_handlers][response.id];\n\n if (!handler) {\n l.debug(() => `Unable to find handler for id=${response.id}`);\n return;\n }\n\n try {\n const {\n method,\n params,\n subscription\n } = handler;\n\n const result = _classPrivateFieldLooseBase(this, _coder)[_coder].decodeResponse(response); // first send the result - in case of subs, we may have an update\n // immediately if we have some queued results already\n\n\n handler.callback(null, result);\n\n if (subscription) {\n const subId = `${subscription.type}::${result}`;\n _classPrivateFieldLooseBase(this, _subscriptions)[_subscriptions][subId] = objectSpread({}, subscription, {\n method,\n params\n }); // if we have a result waiting for this subscription already\n\n if (_classPrivateFieldLooseBase(this, _waitingForId)[_waitingForId][subId]) {\n _classPrivateFieldLooseBase(this, _onSocketMessageSubscribe)[_onSocketMessageSubscribe](_classPrivateFieldLooseBase(this, _waitingForId)[_waitingForId][subId]);\n }\n }\n } catch (error) {\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.errors++;\n handler.callback(error, undefined);\n }\n\n delete _classPrivateFieldLooseBase(this, _handlers)[_handlers][response.id];\n }\n });\n Object.defineProperty(this, _onSocketMessageSubscribe, {\n writable: true,\n value: response => {\n const method = ALIASES[response.method] || response.method || 'invalid';\n const subId = `${method}::${response.params.subscription}`;\n\n const handler = _classPrivateFieldLooseBase(this, _subscriptions)[_subscriptions][subId];\n\n if (!handler) {\n // store the JSON, we could have out-of-order subid coming in\n _classPrivateFieldLooseBase(this, _waitingForId)[_waitingForId][subId] = response;\n l.debug(() => `Unable to find handler for subscription=${subId}`);\n return;\n } // housekeeping\n\n\n delete _classPrivateFieldLooseBase(this, _waitingForId)[_waitingForId][subId];\n\n try {\n const result = _classPrivateFieldLooseBase(this, _coder)[_coder].decodeResponse(response);\n\n handler.callback(null, result);\n } catch (error) {\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.errors++;\n handler.callback(error, undefined);\n }\n }\n });\n Object.defineProperty(this, _onSocketOpen, {\n writable: true,\n value: () => {\n if (_classPrivateFieldLooseBase(this, _websocket)[_websocket] === null) {\n throw new Error('WebSocket cannot be null in onOpen');\n }\n\n l.debug(() => ['connected to', _classPrivateFieldLooseBase(this, _endpoints)[_endpoints][_classPrivateFieldLooseBase(this, _endpointIndex)[_endpointIndex]]]);\n _classPrivateFieldLooseBase(this, _isConnected)[_isConnected] = true;\n\n _classPrivateFieldLooseBase(this, _emit)[_emit]('connected');\n\n _classPrivateFieldLooseBase(this, _resubscribe)[_resubscribe]();\n\n return true;\n }\n });\n Object.defineProperty(this, _resubscribe, {\n writable: true,\n value: () => {\n const subscriptions = _classPrivateFieldLooseBase(this, _subscriptions)[_subscriptions];\n\n _classPrivateFieldLooseBase(this, _subscriptions)[_subscriptions] = {};\n Promise.all(Object.keys(subscriptions).map(async id => {\n const {\n callback,\n method,\n params,\n type\n } = subscriptions[id]; // 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\n if (type.startsWith('author_')) {\n return;\n }\n\n try {\n await this.subscribe(type, method, params, callback);\n } catch (error) {\n l.error(error);\n }\n })).catch(l.error);\n }\n });\n Object.defineProperty(this, _timeoutHandlers, {\n writable: true,\n value: () => {\n const now = Date.now();\n const ids = Object.keys(_classPrivateFieldLooseBase(this, _handlers)[_handlers]);\n\n for (let i = 0; i < ids.length; i++) {\n const handler = _classPrivateFieldLooseBase(this, _handlers)[_handlers][ids[i]];\n\n if (now - handler.start > _classPrivateFieldLooseBase(this, _timeout)[_timeout]) {\n try {\n handler.callback(new Error(`No response received from RPC endpoint in ${_classPrivateFieldLooseBase(this, _timeout)[_timeout] / 1000}s`), undefined);\n } catch {// ignore\n }\n\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.timeout++;\n delete _classPrivateFieldLooseBase(this, _handlers)[_handlers][ids[i]];\n }\n }\n }\n });\n const endpoints = Array.isArray(endpoint) ? endpoint : [endpoint];\n\n if (endpoints.length === 0) {\n throw new Error('WsProvider requires at least one Endpoint');\n }\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 _classPrivateFieldLooseBase(this, _eventemitter)[_eventemitter] = new EventEmitter();\n _classPrivateFieldLooseBase(this, _autoConnectMs)[_autoConnectMs] = autoConnectMs || 0;\n _classPrivateFieldLooseBase(this, _coder)[_coder] = new RpcCoder();\n _classPrivateFieldLooseBase(this, _endpointIndex)[_endpointIndex] = -1;\n _classPrivateFieldLooseBase(this, _endpoints)[_endpoints] = endpoints;\n _classPrivateFieldLooseBase(this, _headers)[_headers] = headers;\n _classPrivateFieldLooseBase(this, _websocket)[_websocket] = null;\n _classPrivateFieldLooseBase(this, _stats)[_stats] = {\n active: {\n requests: 0,\n subscriptions: 0\n },\n total: {\n bytesRecv: 0,\n bytesSent: 0,\n cached: 0,\n errors: 0,\n requests: 0,\n subscriptions: 0,\n timeout: 0\n }\n };\n _classPrivateFieldLooseBase(this, _timeout)[_timeout] = timeout || DEFAULT_TIMEOUT_MS;\n\n if (autoConnectMs > 0) {\n this.connectWithRetry().catch(() => {// does not throw\n });\n }\n\n _classPrivateFieldLooseBase(this, _isReadyPromise)[_isReadyPromise] = new Promise(resolve => {\n _classPrivateFieldLooseBase(this, _eventemitter)[_eventemitter].once('connected', () => {\n resolve(this);\n });\n });\n }\n /**\n * @summary `true` when this provider supports subscriptions\n */\n\n\n get hasSubscriptions() {\n return true;\n }\n /**\n * @summary Whether the node is connected or not.\n * @return {boolean} true if connected\n */\n\n\n get isConnected() {\n return _classPrivateFieldLooseBase(this, _isConnected)[_isConnected];\n }\n /**\n * @description Promise that resolves the first time we are connected and loaded\n */\n\n\n get isReady() {\n return _classPrivateFieldLooseBase(this, _isReadyPromise)[_isReadyPromise];\n }\n /**\n * @description Returns a clone of the object\n */\n\n\n clone() {\n return new WsProvider(_classPrivateFieldLooseBase(this, _endpoints)[_endpoints]);\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\n\n async connect() {\n try {\n _classPrivateFieldLooseBase(this, _endpointIndex)[_endpointIndex] = (_classPrivateFieldLooseBase(this, _endpointIndex)[_endpointIndex] + 1) % _classPrivateFieldLooseBase(this, _endpoints)[_endpoints].length; // the as typeof WebSocket here is Deno-specific - not available on the globalThis\n\n _classPrivateFieldLooseBase(this, _websocket)[_websocket] = typeof xglobal.WebSocket !== 'undefined' && isChildClass(xglobal.WebSocket, WebSocket) ? new WebSocket(_classPrivateFieldLooseBase(this, _endpoints)[_endpoints][_classPrivateFieldLooseBase(this, _endpointIndex)[_endpointIndex]]) // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - WS may be an instance of w3cwebsocket, which supports headers\n : new WebSocket(_classPrivateFieldLooseBase(this, _endpoints)[_endpoints][_classPrivateFieldLooseBase(this, _endpointIndex)[_endpointIndex]], undefined, undefined, _classPrivateFieldLooseBase(this, _headers)[_headers], undefined, {\n // default: true\n fragmentOutgoingMessages: true,\n // default: 16K (bump, the Node has issues with too many fragments, e.g. on setCode)\n fragmentationThreshold: 1 * MEGABYTE,\n // default: 1MiB (also align with maxReceivedMessageSize)\n maxReceivedFrameSize: 24 * MEGABYTE,\n // default: 8MB (however Polkadot api.query.staking.erasStakers.entries(356) is over that, 16M is ok there)\n maxReceivedMessageSize: 24 * MEGABYTE\n });\n\n if (_classPrivateFieldLooseBase(this, _websocket)[_websocket]) {\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].onclose = _classPrivateFieldLooseBase(this, _onSocketClose)[_onSocketClose];\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].onerror = _classPrivateFieldLooseBase(this, _onSocketError)[_onSocketError];\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].onmessage = _classPrivateFieldLooseBase(this, _onSocketMessage)[_onSocketMessage];\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].onopen = _classPrivateFieldLooseBase(this, _onSocketOpen)[_onSocketOpen];\n } // timeout any handlers that have not had a response\n\n\n _classPrivateFieldLooseBase(this, _timeoutId)[_timeoutId] = setInterval(() => _classPrivateFieldLooseBase(this, _timeoutHandlers)[_timeoutHandlers](), TIMEOUT_INTERVAL);\n } catch (error) {\n l.error(error);\n\n _classPrivateFieldLooseBase(this, _emit)[_emit]('error', error);\n\n throw error;\n }\n }\n /**\n * @description Connect, never throwing an error, but rather forcing a retry\n */\n\n\n async connectWithRetry() {\n if (_classPrivateFieldLooseBase(this, _autoConnectMs)[_autoConnectMs] > 0) {\n try {\n await this.connect();\n } catch (error) {\n setTimeout(() => {\n this.connectWithRetry().catch(() => {// does not throw\n });\n }, _classPrivateFieldLooseBase(this, _autoConnectMs)[_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\n\n async disconnect() {\n // switch off autoConnect, we are in manual mode now\n _classPrivateFieldLooseBase(this, _autoConnectMs)[_autoConnectMs] = 0;\n\n try {\n if (_classPrivateFieldLooseBase(this, _websocket)[_websocket]) {\n // 1000 - Normal closure; the connection successfully completed\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].close(1000);\n }\n } catch (error) {\n l.error(error);\n\n _classPrivateFieldLooseBase(this, _emit)[_emit]('error', error);\n\n throw error;\n }\n }\n /**\n * @description Returns the connection stats\n */\n\n\n get stats() {\n return {\n active: {\n requests: Object.keys(_classPrivateFieldLooseBase(this, _handlers)[_handlers]).length,\n subscriptions: Object.keys(_classPrivateFieldLooseBase(this, _subscriptions)[_subscriptions]).length\n },\n total: _classPrivateFieldLooseBase(this, _stats)[_stats].total\n };\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\n\n on(type, sub) {\n _classPrivateFieldLooseBase(this, _eventemitter)[_eventemitter].on(type, sub);\n\n return () => {\n _classPrivateFieldLooseBase(this, _eventemitter)[_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\n\n send(method, params, isCacheable, subscription) {\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.requests++;\n\n const [id, body] = _classPrivateFieldLooseBase(this, _coder)[_coder].encodeJson(method, params);\n\n let resultPromise = isCacheable ? _classPrivateFieldLooseBase(this, _callCache)[_callCache].get(body) : null;\n\n if (!resultPromise) {\n resultPromise = _classPrivateFieldLooseBase(this, _send)[_send](id, body, method, params, subscription);\n\n if (isCacheable) {\n _classPrivateFieldLooseBase(this, _callCache)[_callCache].set(body, resultPromise);\n }\n } else {\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.cached++;\n }\n\n return resultPromise;\n }\n\n /**\n * @name subscribe\n * @summary Allows subscribing to a specific event.\n *\n * @example\n *
\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,
]], (_, 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 _classPrivateFieldLooseBase(this, _stats)[_stats].total.subscriptions++; // subscriptions are not cached, LRU applies to .at() only\n\n return this.send(method, params, false, {\n callback,\n type\n });\n }\n /**\n * @summary Allows unsubscribing to subscriptions made with [[subscribe]].\n */\n\n\n async unsubscribe(type, method, id) {\n const subscription = `${type}::${id}`; // 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\n if (isUndefined(_classPrivateFieldLooseBase(this, _subscriptions)[_subscriptions][subscription])) {\n l.debug(() => `Unable to find active subscription=${subscription}`);\n return false;\n }\n\n delete _classPrivateFieldLooseBase(this, _subscriptions)[_subscriptions][subscription];\n\n try {\n return this.isConnected && !isNull(_classPrivateFieldLooseBase(this, _websocket)[_websocket]) ? this.send(method, [id]) : true;\n } catch (error) {\n return false;\n }\n }\n\n}\n\nasync function _send2(id, body, method, params, subscription) {\n return new Promise((resolve, reject) => {\n try {\n if (!this.isConnected || _classPrivateFieldLooseBase(this, _websocket)[_websocket] === null) {\n throw new Error('WebSocket is not connected');\n }\n\n const callback = (error, result) => {\n error ? reject(error) : resolve(result);\n };\n\n l.debug(() => ['calling', method, body]);\n _classPrivateFieldLooseBase(this, _handlers)[_handlers][id] = {\n callback,\n method,\n params,\n start: Date.now(),\n subscription\n };\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.bytesSent += body.length;\n\n _classPrivateFieldLooseBase(this, _websocket)[_websocket].send(body);\n } catch (error) {\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.errors++;\n reject(error);\n }\n });\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\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 *
\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 Child // eslint-disable-next-line no-prototype-builtins\n ? Parent === Child || Parent.isPrototypeOf(Child) : false;\n}","// Copyright 2017-2022 @polkadot/x-fetch authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { xglobal } from '@polkadot/x-global';\nexport { packageInfo } from \"./packageInfo.js\";\nexport const fetch = xglobal.fetch;","import _classPrivateFieldLooseBase from \"@babel/runtime/helpers/esm/classPrivateFieldLooseBase\";\nimport _classPrivateFieldLooseKey from \"@babel/runtime/helpers/esm/classPrivateFieldLooseKey\";\n// Copyright 2017-2022 @polkadot/rpc-provider authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { logger } from '@polkadot/util';\nimport { fetch } from '@polkadot/x-fetch';\nimport { RpcCoder } from \"../coder/index.js\";\nimport defaults from \"../defaults.js\";\nimport { LRUCache } from \"../lru.js\";\nconst ERROR_SUBSCRIBE = 'HTTP Provider does not have subscriptions, use WebSockets instead';\nconst l = logger('api-http');\n/**\n * # @polkadot/rpc-provider\n *\n * @name HttpProvider\n *\n * @description The HTTP Provider allows sending requests using HTTP to a HTTP RPC server TCP port. It does not support subscriptions so you won't be able to listen to events such as new blocks or balance changes. It is usually preferable using the [[WsProvider]].\n *\n * @example\n *
\n *\n * ```javascript\n * import Api from '@polkadot/api/promise';\n * import { HttpProvider } from '@polkadot/rpc-provider';\n *\n * const provider = new HttpProvider('http://127.0.0.1:9933');\n * const api = new Api(provider);\n * ```\n *\n * @see [[WsProvider]]\n */\n\nvar _callCache = /*#__PURE__*/_classPrivateFieldLooseKey(\"callCache\");\n\nvar _coder = /*#__PURE__*/_classPrivateFieldLooseKey(\"coder\");\n\nvar _endpoint = /*#__PURE__*/_classPrivateFieldLooseKey(\"endpoint\");\n\nvar _headers = /*#__PURE__*/_classPrivateFieldLooseKey(\"headers\");\n\nvar _stats = /*#__PURE__*/_classPrivateFieldLooseKey(\"stats\");\n\nvar _send = /*#__PURE__*/_classPrivateFieldLooseKey(\"send\");\n\nexport class HttpProvider {\n /**\n * @param {string} endpoint The endpoint url starting with http://\n */\n constructor(endpoint = defaults.HTTP_URL, headers = {}) {\n Object.defineProperty(this, _send, {\n value: _send2\n });\n Object.defineProperty(this, _callCache, {\n writable: true,\n value: new LRUCache()\n });\n Object.defineProperty(this, _coder, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _endpoint, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _headers, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _stats, {\n writable: true,\n value: void 0\n });\n\n if (!/^(https|http):\\/\\//.test(endpoint)) {\n throw new Error(`Endpoint should start with 'http://' or 'https://', received '${endpoint}'`);\n }\n\n _classPrivateFieldLooseBase(this, _coder)[_coder] = new RpcCoder();\n _classPrivateFieldLooseBase(this, _endpoint)[_endpoint] = endpoint;\n _classPrivateFieldLooseBase(this, _headers)[_headers] = headers;\n _classPrivateFieldLooseBase(this, _stats)[_stats] = {\n active: {\n requests: 0,\n subscriptions: 0\n },\n total: {\n bytesRecv: 0,\n bytesSent: 0,\n cached: 0,\n errors: 0,\n requests: 0,\n subscriptions: 0,\n timeout: 0\n }\n };\n }\n /**\n * @summary `true` when this provider supports subscriptions\n */\n\n\n get hasSubscriptions() {\n return false;\n }\n /**\n * @description Returns a clone of the object\n */\n\n\n clone() {\n return new HttpProvider(_classPrivateFieldLooseBase(this, _endpoint)[_endpoint], _classPrivateFieldLooseBase(this, _headers)[_headers]);\n }\n /**\n * @description Manually connect from the connection\n */\n\n\n async connect() {// noop\n }\n /**\n * @description Manually disconnect from the connection\n */\n\n\n async disconnect() {// noop\n }\n /**\n * @description Returns the connection stats\n */\n\n\n get stats() {\n return _classPrivateFieldLooseBase(this, _stats)[_stats];\n }\n /**\n * @summary Whether the node is connected or not.\n * @return {boolean} true if connected\n */\n\n\n get isConnected() {\n return true;\n }\n /**\n * @summary Events are not supported with the HttpProvider, see [[WsProvider]].\n * @description HTTP Provider does not have 'on' emitters. WebSockets should be used instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n on(type, sub) {\n l.error('HTTP Provider does not have \\'on\\' emitters, use WebSockets instead');\n return () => {// noop\n };\n }\n /**\n * @summary Send HTTP POST Request with Body to configured HTTP Endpoint.\n */\n\n\n async send(method, params, isCacheable) {\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.requests++;\n\n const [, body] = _classPrivateFieldLooseBase(this, _coder)[_coder].encodeJson(method, params);\n\n let resultPromise = isCacheable ? _classPrivateFieldLooseBase(this, _callCache)[_callCache].get(body) : null;\n\n if (!resultPromise) {\n resultPromise = _classPrivateFieldLooseBase(this, _send)[_send](body);\n\n if (isCacheable) {\n _classPrivateFieldLooseBase(this, _callCache)[_callCache].set(body, resultPromise);\n }\n } else {\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.cached++;\n }\n\n return resultPromise;\n }\n\n /**\n * @summary Subscriptions are not supported with the HttpProvider, see [[WsProvider]].\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/require-await\n async subscribe(types, method, params, cb) {\n l.error(ERROR_SUBSCRIBE);\n throw new Error(ERROR_SUBSCRIBE);\n }\n /**\n * @summary Subscriptions are not supported with the HttpProvider, see [[WsProvider]].\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/require-await\n\n\n async unsubscribe(type, method, id) {\n l.error(ERROR_SUBSCRIBE);\n throw new Error(ERROR_SUBSCRIBE);\n }\n\n}\n\nasync function _send2(body) {\n _classPrivateFieldLooseBase(this, _stats)[_stats].active.requests++;\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.bytesSent += body.length;\n\n try {\n const response = await fetch(_classPrivateFieldLooseBase(this, _endpoint)[_endpoint], {\n body,\n headers: {\n Accept: 'application/json',\n 'Content-Length': `${body.length}`,\n 'Content-Type': 'application/json',\n ..._classPrivateFieldLooseBase(this, _headers)[_headers]\n },\n method: 'POST'\n });\n\n if (!response.ok) {\n throw new Error(`[${response.status}]: ${response.statusText}`);\n }\n\n const result = await response.text();\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.bytesRecv += result.length;\n\n const decoded = _classPrivateFieldLooseBase(this, _coder)[_coder].decodeResponse(JSON.parse(result));\n\n _classPrivateFieldLooseBase(this, _stats)[_stats].active.requests--;\n return decoded;\n } catch (e) {\n _classPrivateFieldLooseBase(this, _stats)[_stats].active.requests--;\n _classPrivateFieldLooseBase(this, _stats)[_stats].total.errors++;\n throw e;\n }\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// Do not edit, auto-generated by @polkadot/dev\nexport const packageInfo = {\n name: '@polkadot/api',\n path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto',\n type: 'esm',\n version: '9.4.1'\n};","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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}","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 { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(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, 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;\nexport function of(value: undefined): Observable;\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;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function of
(...valuesAndScheduler: [...A, SchedulerLike]): Observable>;\n\nexport function of(): Observable;\n/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */\nexport function of(): Observable;\nexport function of(value: T): Observable;\nexport function of(...values: A): Observable>;\n\n/**\n * Converts the arguments to an observable sequence.\n *\n * Each argument becomes a `next` notification.\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(...args: Array): Observable {\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(project: (value: T, index: number) => R): OperatorFunction;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function map(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction;\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 * 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.\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(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(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction {\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","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 ? getName(key, index) : key; // 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\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 */\n\nexport function objectProperties(that, keys, getter, getName) {\n for (let i = 0; i < keys.length; i++) {\n objectProperty(that, keys[i], getter, getName, i);\n }\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isFunction } from '@polkadot/util';\nexport function hasEq(o) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return isFunction(o.eq);\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isObject, isUndefined } from '@polkadot/util';\nimport { hasEq } from \"./util.js\";\n\nfunction hasMismatch(a, b) {\n return isUndefined(a) || (hasEq(a) ? !a.eq(b) : a !== b);\n}\n\nfunction notEntry(value) {\n return !Array.isArray(value) || value.length !== 2;\n}\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) || hasMismatch(a.get(e[0]), e[1]));\n} // NOTE These are used internally and when comparing objects, expects that\n// when the second is an Map that the first has to be as well\n\n\nexport function compareMap(a, b) {\n if (Array.isArray(b)) {\n return compareMapArray(a, b);\n } else if (b instanceof Map) {\n return compareMapArray(a, [...b.entries()]);\n } else if (isObject(b)) {\n return compareMapArray(a, Object.entries(b));\n }\n\n return false;\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isFunction, objectProperties, stringify } from '@polkadot/util';\nimport { compareMap } from \"../utils/index.js\";\n/** @internal */\n\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 */\n\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\n\n get encodedLength() {\n return 0;\n }\n /**\n * @description returns a hash of the contents\n */\n\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\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\n\n eq(other) {\n return compareMap(this, other);\n }\n /**\n * @description Returns a typed value from the internal map\n */\n\n\n getT(key) {\n return this.get(key);\n }\n /**\n * @description Unimplemented, will throw\n */\n\n\n inspect() {\n throw new Error('Unimplemented');\n }\n /**\n * @description Unimplemented, will throw\n */\n\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\n\n toHuman() {\n return [...this.entries()].reduce((json, [key, value]) => {\n json[key] = isFunction(value.toHuman) ? value.toHuman() : value;\n return json;\n }, {});\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\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\n\n toPrimitive() {\n return [...this.entries()].reduce((json, [key, value]) => {\n json[key] = isFunction(value.toHuman) ? value.toPrimitive() : value;\n return json;\n }, {});\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return 'Json';\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return stringify(this.toJSON());\n }\n /**\n * @description Unimplemented, will throw\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n toU8a(isBare) {\n throw new Error('Unimplemented');\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { u8aToU8a } from \"../u8a/toU8a.js\";\nimport { isHex } from \"./hex.js\";\nimport { isString } from \"./string.js\";\n/** @internal */\n\nfunction isAsciiStr(str) {\n const count = str.length | 0;\n\n for (let i = 0; i < count; i++) {\n const b = str.charCodeAt(i); // check is inlined here, it is faster than making a call\n\n if (b < 32 || b > 126) {\n return false;\n }\n }\n\n return true;\n}\n/** @internal */\n\n\nfunction isAsciiBytes(u8a) {\n const count = u8a.length | 0;\n\n for (let i = 0; i < count; i++) {\n const b = u8a[i] | 0; // check is inlined here, it is faster than making a call\n\n if (b < 32 || b > 126) {\n return false;\n }\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 */\n\n\nexport function isAscii(value) {\n return isString(value) ? isHex(value) ? isAsciiBytes(u8aToU8a(value)) : isAsciiStr(value) : value ? isAsciiBytes(value) : false;\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\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\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\n\n get encodedLength() {\n return this.length;\n }\n /**\n * @description returns a hash of the contents\n */\n\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\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\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\n\n get isUtf8() {\n return isUtf8(this);\n }\n /**\n * @description Returns the number of bits in the value\n */\n\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\n\n eq(other) {\n if (other instanceof Uint8Array) {\n return this.length === other.length && !this.some((b, index) => b !== other[index]);\n }\n\n return this.eq(u8aToU8a(other));\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n return {\n outer: [this.toU8a()]\n };\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\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\n\n toHuman() {\n return this.toPrimitive();\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.toHex();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n if (this.isAscii) {\n const text = this.toUtf8(); // ensure we didn't end up with multibyte codepoints\n\n if (isAscii(text)) {\n return text;\n }\n }\n\n return this.toJSON();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return 'Raw';\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return this.toHex();\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n toU8a(isBare) {\n return Uint8Array.from(this);\n }\n /**\n * @description Returns the wrapped data as a UTF-8 string\n */\n\n\n toUtf8() {\n if (!this.isUtf8) {\n throw new Error('The character sequence is not a valid Utf8 string');\n }\n\n return u8aToString(this);\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// Adapted from https://github.com/JulienPalard/is_utf8/blob/master/is_utf8.c\nimport { 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 */\n\nexport function isUtf8(value) {\n if (!value) {\n return isString(value);\n }\n\n const u8a = u8aToU8a(value);\n const len = u8a.length;\n let i = 0;\n\n while (i < len) {\n if (u8a[i] <= 0x7F)\n /* 00..7F */\n {\n i += 1;\n } else if (u8a[i] >= 0xC2 && u8a[i] <= 0xDF)\n /* C2..DF 80..BF */\n {\n if (i + 1 < len)\n /* Expect a 2nd byte */\n {\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 } else {\n // *message = \"After a first byte between C2 and DF, expecting a 2nd byte.\";\n // *faulty_bytes = 1;\n return false;\n }\n\n i += 2;\n } else if (u8a[i] === 0xE0)\n /* E0 A0..BF 80..BF */\n {\n if (i + 2 < len)\n /* Expect a 2nd and 3rd byte */\n {\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\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 } else {\n // *message = \"After a first byte of E0, expecting two following bytes.\";\n // *faulty_bytes = 1;\n return false;\n }\n\n i += 3;\n } else if (u8a[i] >= 0xE1 && u8a[i] <= 0xEC)\n /* E1..EC 80..BF 80..BF */\n {\n if (i + 2 < len)\n /* Expect a 2nd and 3rd byte */\n {\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\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 } else {\n // *message = \"After a first byte between E1 and EC, expecting two following bytes.\";\n // *faulty_bytes = 1;\n return false;\n }\n\n i += 3;\n } else if (u8a[i] === 0xED)\n /* ED 80..9F 80..BF */\n {\n if (i + 2 < len)\n /* Expect a 2nd and 3rd byte */\n {\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\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 } else {\n // *message = \"After a first byte of ED, expecting two following bytes.\";\n // *faulty_bytes = 1;\n return false;\n }\n\n i += 3;\n } else if (u8a[i] >= 0xEE && u8a[i] <= 0xEF)\n /* EE..EF 80..BF 80..BF */\n {\n if (i + 2 < len)\n /* Expect a 2nd and 3rd byte */\n {\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\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 } else {\n // *message = \"After a first byte between EE and EF, two following bytes.\";\n // *faulty_bytes = 1;\n return false;\n }\n\n i += 3;\n } else if (u8a[i] === 0xF0)\n /* F0 90..BF 80..BF 80..BF */\n {\n if (i + 3 < len)\n /* Expect a 2nd, 3rd 3th byte */\n {\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\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\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 } else {\n // *message = \"After a first byte of F0, expecting three following bytes.\";\n // *faulty_bytes = 1;\n return false;\n }\n\n i += 4;\n } else if (u8a[i] >= 0xF1 && u8a[i] <= 0xF3)\n /* F1..F3 80..BF 80..BF 80..BF */\n {\n if (i + 3 < len)\n /* Expect a 2nd, 3rd 3th byte */\n {\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\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\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 } 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\n i += 4;\n } else if (u8a[i] === 0xF4)\n /* F4 80..8F 80..BF 80..BF */\n {\n if (i + 3 < len)\n /* Expect a 2nd, 3rd 3th byte */\n {\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\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\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 } else {\n // *message = \"After a first byte of F4, expecting three following bytes.\";\n // *faulty_bytes = 1;\n return false;\n }\n\n i += 4;\n } else {\n // *message = \"Expecting bytes in the following ranges: 00..7F C2..F4.\";\n // *faulty_bytes = 1;\n return false;\n }\n }\n\n return true;\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @name DoNotConstruct\n * @description\n * An unknown type that fails on construction with the type info\n */\nexport class DoNotConstruct {\n #neverError;\n\n constructor(registry, typeName = 'DoNotConstruct') {\n this.registry = registry;\n this.#neverError = new Error(`DoNotConstruct: Cannot construct unknown type ${typeName}`);\n throw this.#neverError;\n }\n\n static with(typeName) {\n return class extends DoNotConstruct {\n constructor(registry) {\n super(registry, typeName);\n }\n\n };\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n throw this.#neverError;\n }\n /**\n * @description returns a hash of the contents\n */\n\n\n get hash() {\n throw this.#neverError;\n }\n /**\n * @description Checks if the value is an empty value (always true)\n */\n\n\n get isEmpty() {\n throw this.#neverError;\n }\n\n eq() {\n throw this.#neverError;\n }\n\n inspect() {\n throw this.#neverError;\n }\n\n toHex() {\n throw this.#neverError;\n }\n\n toHuman() {\n throw this.#neverError;\n }\n\n toJSON() {\n throw this.#neverError;\n }\n\n toPrimitive() {\n throw this.#neverError;\n }\n\n toRawType() {\n throw this.#neverError;\n }\n\n toString() {\n throw this.#neverError;\n }\n\n toU8a() {\n throw this.#neverError;\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * import { u8aToBn } from '@polkadot/util';\n *\n * u8aToHex(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0xf])); // 0x68656c0f\n * ```\n */\n\nexport function u8aToBn(value, {\n isLe = true,\n isNegative = false\n} = {}) {\n const count = value.length; // shortcut for <= u48 values - in this case the manual conversion\n // here seems to be more efficient than passing the full array\n\n if (count <= 6) {\n if (isNegative) {\n let result = 0;\n\n if (isLe) {\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 // (see the comments around unrolling in the next section)\n switch (count) {\n case 0:\n return new BN(0);\n\n case 1:\n result = value[0] ^ 0x000000ff;\n break;\n\n case 2:\n result = value[0] + (value[1] << 8) ^ 0x0000ffff;\n break;\n\n case 3:\n result = value[0] + (value[1] << 8) + (value[2] << 16) ^ 0x00ffffff;\n break;\n\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 result = value[0] + (value[1] << 8) + (value[2] << 16) + value[3] * 0x1000000 ^ 0xffffffff;\n break;\n\n case 5:\n result = (value[0] + (value[1] << 8) + (value[2] << 16) + value[3] * 0x1000000 ^ 0xffffffff) + (value[4] ^ 0xff) * 0x100000000;\n break;\n\n default:\n // 6\n result = (value[0] + (value[1] << 8) + (value[2] << 16) + value[3] * 0x1000000 ^ 0xffffffff) + (value[4] + (value[5] << 8) ^ 0x0000ffff) * 0x100000000;\n break;\n }\n } else {\n for (let i = 0; i < count; i++) {\n result = result * 0x100 + (value[i] ^ 0xff);\n }\n }\n\n return count ? new BN(result * -1 - 1) : new BN(0);\n } else if (isLe) {\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\n case 1:\n return new BN(value[0]);\n\n case 2:\n return new BN(value[0] + (value[1] << 8));\n\n case 3:\n return new BN(value[0] + (value[1] << 8) + (value[2] << 16));\n\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] * 0x1000000);\n\n case 5:\n return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] + (value[4] << 8)) * 0x1000000);\n\n default:\n // 6\n return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] + (value[4] << 8) + (value[5] << 16)) * 0x1000000);\n }\n } else {\n let result = 0;\n\n for (let i = 0; i < count; i++) {\n result = result * 0x100 + value[i];\n }\n\n return new BN(result);\n }\n }\n\n return isNegative ? new BN(value, isLe ? 'le' : 'be').fromTwos(value.length * 8) : new BN(value, isLe ? 'le' : 'be');\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\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 */\n\nexport function compactFromU8a(input) {\n const u8a = u8aToU8a(input); // 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\n switch (u8a[0] & 0b11) {\n case 0b00:\n return [1, new BN(u8a[0] >>> 2)];\n\n case 0b01:\n return [2, new BN(u8a[0] + (u8a[1] << 8) >>> 2)];\n\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] * 0x1000000 >>> 2)];\n // 0b11\n\n default:\n {\n // add 5 to shifted (4 for base length, 1 for this byte)\n const offset = (u8a[0] >>> 2) + 5; // we unroll the loop\n\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] * 0x1000000)];\n\n case 6:\n return [6, new BN(u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + (u8a[4] + (u8a[5] << 8)) * 0x1000000)];\n // 6 bytes data is the maximum, 48 bits (56 would overflow)\n\n case 7:\n return [7, new BN(u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + (u8a[4] + (u8a[5] << 8) + (u8a[6] << 16)) * 0x1000000)];\n // for anything else, use the non-unrolled version\n\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 */\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\n case 0b01:\n return [2, u8a[0] + (u8a[1] << 8) >>> 2];\n\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] * 0x1000000 >>> 2];\n // 0b11\n\n default:\n {\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] * 0x1000000];\n\n case 6:\n return [6, u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + (u8a[4] + (u8a[5] << 8)) * 0x1000000];\n // 6 bytes data is the maximum, 48 bits (56 would overflow)\n\n case 7:\n return [7, u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + (u8a[4] + (u8a[5] << 8) + (u8a[6] << 16)) * 0x1000000];\n // for anything else, we are above the actual MAX_SAFE_INTEGER - bail out\n\n default:\n throw new Error('Compact input is > Number.MAX_SAFE_INTEGER');\n }\n }\n }\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BN } from \"./bn.js\";\n/**\n * @name BN_ZERO\n * @summary BN constant for 0.\n */\n\nexport const BN_ZERO = new BN(0);\n/**\n * @name BN_ONE\n * @summary BN constant for 1.\n */\n\nexport const BN_ONE = new BN(1);\n/**\n * @name BN_TWO\n * @summary BN constant for 2.\n */\n\nexport const BN_TWO = new BN(2);\n/**\n * @name BN_THREE\n * @summary BN constant for 3.\n */\n\nexport const BN_THREE = new BN(3);\n/**\n * @name BN_FOUR\n * @summary BN constant for 4.\n */\n\nexport const BN_FOUR = new BN(4);\n/**\n * @name BN_FIVE\n * @summary BN constant for 5.\n */\n\nexport const BN_FIVE = new BN(5);\n/**\n * @name BN_SIX\n * @summary BN constant for 6.\n */\n\nexport const BN_SIX = new BN(6);\n/**\n * @name BN_SEVEN\n * @summary BN constant for 7.\n */\n\nexport const BN_SEVEN = new BN(7);\n/**\n * @name BN_EIGHT\n * @summary BN constant for 8.\n */\n\nexport const BN_EIGHT = new BN(8);\n/**\n * @name BN_NINE\n * @summary BN constant for 9.\n */\n\nexport const BN_NINE = new BN(9);\n/**\n * @name BN_TEN\n * @summary BN constant for 10.\n */\n\nexport const BN_TEN = new BN(10);\n/**\n * @name BN_HUNDRED\n * @summary BN constant for 100.\n */\n\nexport const BN_HUNDRED = new BN(100);\n/**\n * @name BN_THOUSAND\n * @summary BN constant for 1,000.\n */\n\nexport const BN_THOUSAND = new BN(1000);\n/**\n * @name BN_MILLION\n * @summary BN constant for 1,000,000.\n */\n\nexport const BN_MILLION = new BN(1000000);\n/**\n * @name BN_BILLION\n * @summary BN constant for 1,000,000,000.\n */\n\nexport const BN_BILLION = new BN(1000000000);\n/**\n * @name BN_QUINTILL\n * @summary BN constant for 1,000,000,000,000,000,000.\n */\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 */\n\nexport const BN_MAX_INTEGER = new BN(Number.MAX_SAFE_INTEGER);","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { bnToBn } from \"./toBn.js\";\nconst DEFAULT_OPTS = {\n bitLength: -1,\n isLe: true,\n isNegative: false\n};\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 *
\n *\n * ```javascript\n * import { bnToU8a } from '@polkadot/util';\n *\n * bnToU8a(new BN(0x1234)); // => [0x12, 0x34]\n * ```\n */\n\nexport function bnToU8a(value, {\n bitLength = -1,\n isLe = true,\n isNegative = false\n} = DEFAULT_OPTS) {\n const valueBn = bnToBn(value);\n const byteLength = bitLength === -1 ? Math.ceil(valueBn.bitLength() / 8) : Math.ceil((bitLength || 0) / 8);\n\n if (!value) {\n return bitLength === -1 ? new Uint8Array() : new Uint8Array(byteLength);\n }\n\n const output = new Uint8Array(byteLength);\n const bn = isNegative ? valueBn.toTwos(byteLength * 8) : valueBn;\n output.set(bn.toArray(isLe ? 'le' : 'be', byteLength), 0);\n return output;\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 = {\n bitLength: 16\n};\nconst BL_32 = {\n bitLength: 32\n};\n/**\n * @name compactToU8a\n * @description Encodes a number into a compact representation\n * @example\n *
\n *\n * ```javascript\n * import { compactToU8a } from '@polkadot/util';\n *\n * console.log(compactToU8a(511, 32)); // Uint8Array([0b11111101, 0b00000111])\n * ```\n */\n\nexport function compactToU8a(value) {\n const bn = bnToBn(value);\n\n if (bn.lte(MAX_U8)) {\n return new Uint8Array([bn.toNumber() << 2]);\n } else if (bn.lte(MAX_U16)) {\n return bnToU8a(bn.shln(2).iadd(BN_ONE), BL_16);\n } else if (bn.lte(MAX_U32)) {\n return bnToU8a(bn.shln(2).iadd(BN_TWO), BL_32);\n }\n\n const u8a = bnToU8a(bn);\n let length = u8a.length; // adjust to the minimum number of bytes\n\n while (u8a[length - 1] === 0) {\n length--;\n }\n\n if (length < 4) {\n throw new Error('Invalid length, previous checks match anything less than 2^30');\n }\n\n return u8aConcatStrict([// subtract 4 as minimum (also catered for in decoding)\n new Uint8Array([(length - 4 << 2) + 0b11]), u8a.subarray(0, length)]);\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isUndefined } from '@polkadot/util';\nimport { hasEq } from \"./util.js\"; // NOTE These are used internally and when comparing objects, expects that\n// when the second is an Codec[] that the first has to be as well\n\nexport function compareArray(a, b) {\n if (Array.isArray(b)) {\n return a.length === b.length && isUndefined(a.find((v, index) => hasEq(v) ? !v.eq(b[index]) : v !== b[index]));\n }\n\n return false;\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\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\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\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 let total = compactToU8a(this.length).length;\n\n for (let i = 0; i < this.length; i++) {\n total += this[i].encodedLength;\n }\n\n return total;\n }\n /**\n * @description returns a hash of the contents\n */\n\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\n\n get isEmpty() {\n return this.length === 0;\n }\n /**\n * @description The length of the value\n */\n\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\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\n\n inspect() {\n return {\n inner: this.inspectInner(),\n outer: [compactToU8a(this.length)]\n };\n }\n\n inspectInner() {\n const inner = new Array(this.length);\n\n for (let i = 0; i < this.length; i++) {\n inner[i] = this[i].inspect();\n }\n\n return inner;\n }\n /**\n * @description Converts the Object to an standard JavaScript Array\n */\n\n\n toArray() {\n return Array.from(this);\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\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\n\n toHuman(isExtended) {\n const result = new Array(this.length);\n\n for (let i = 0; i < this.length; i++) {\n result[i] = this[i] && this[i].toHuman(isExtended);\n }\n\n return result;\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n const result = new Array(this.length);\n\n for (let i = 0; i < this.length; 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\n return result;\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n const result = new Array(this.length);\n\n for (let i = 0; i < this.length; i++) {\n result[i] = this[i] && this[i].toPrimitive();\n }\n\n return result;\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n /**\n * @description Returns the string representation of the value\n */\n toString() {\n const result = new Array(this.length);\n\n for (let i = 0; i < this.length; i++) {\n result[i] = this[i].toString();\n }\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\n\n toU8a(isBare) {\n const encoded = this.toU8aInner();\n return isBare ? u8aConcatStrict(encoded) : u8aConcatStrict([compactToU8a(this.length), ...encoded]);\n }\n\n toU8aInner(isBare) {\n const encoded = new Array(this.length);\n\n for (let i = 0; i < this.length; i++) {\n encoded[i] = this[i].toU8a(isBare);\n }\n\n return encoded;\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const CC_TO_UP = new Array(256);\nexport const CC_TO_LO = new Array(256);\n\nfor (let i = 0; i < CC_TO_UP.length; i++) {\n CC_TO_LO[i] = String.fromCharCode(i).toLowerCase();\n CC_TO_UP[i] = String.fromCharCode(i).toUpperCase();\n}\n/** @internal */\n\n\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 */\n\n\nfunction converter(format) {\n return value => {\n const parts = value // replace all seperators (including consequtive) with spaces\n .replace(/[-_., ]+/g, ' ') // we don't want leading or trailing spaces\n .trim() // split into words\n .split(' ');\n const count = parts.length;\n let result = '';\n\n for (let i = 0; i < count; i++) {\n const w = parts[i]; // apply the formatting\n\n result += format(/^[\\dA-Z]+$/.test(w) // all full uppercase + letters are changed to lowercase\n ? w.toLowerCase() // 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\n return result;\n };\n}\n/**\n * @name stringCamelCase\n * @summary Convert a dash/dot/underscore/space separated Ascii string/String to camelCase\n */\n\n\nexport const stringCamelCase = converter((w, i) => // lowercase for first letter/first word, else uppercase first, rest unchanged\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 */\n\nexport const stringPascalCase = converter(w => // uppercase the first character, leave the rest unchanged\nCC_TO_UP[w.charCodeAt(0)] + w.slice(1));","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isString } from '@polkadot/util';\nexport function typeToConstructor(registry, type) {\n return isString(type) ? registry.createClassUnsafe(type) : type;\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { typeToConstructor } from \"./typeToConstructor.js\";\n/**\n * @description takes an input map of the form `{ [string]: string | CodecClass }` and returns a map of `{ [string]: CodecClass }`\n */\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\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\n return output;\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport function typesToMap(registry, [Types, keys]) {\n const result = {};\n\n for (let i = 0; i < keys.length; i++) {\n result[keys[i]] = registry.getClassName(Types[i]) || new Types[i](registry).toRawType();\n }\n\n return result;\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isNull } from '@polkadot/util';\n/**\n * @name Null\n * @description\n * Implements a type that does not contain anything (apart from `null`)\n */\n\nexport class Null {\n encodedLength = 0;\n isEmpty = true;\n // Added for compatibility reasons, e.g. see Option\n initialU8aLength = 0;\n\n constructor(registry) {\n this.registry = registry;\n }\n /**\n * @description returns a hash of the contents\n */\n\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\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\n\n inspect() {\n return {};\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\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\n\n toHuman() {\n return this.toJSON();\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return null;\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return null;\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return 'Null';\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return '';\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n toU8a(isBare) {\n return new Uint8Array();\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\"; // export interface, this is used in Enum.with, so required as public by TS\n\nfunction noopSetDefinition(d) {\n return d;\n}\n\nfunction isRustEnum(def) {\n const defValues = Object.values(def);\n\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\n return false;\n }\n\n return true;\n}\n\nfunction extractDef(registry, _def) {\n const def = {};\n let isBasic;\n let isIndexed;\n\n if (Array.isArray(_def)) {\n for (let i = 0; i < _def.length; i++) {\n def[_def[i]] = {\n Type: Null,\n index: i\n };\n }\n\n isBasic = true;\n isIndexed = false;\n } else if (isRustEnum(_def)) {\n const [Types, keys] = mapToTypeMap(registry, _def);\n\n for (let i = 0; i < keys.length; i++) {\n def[keys[i]] = {\n Type: Types[i],\n index: i\n };\n }\n\n isBasic = !Object.values(def).some(({\n Type\n }) => Type !== Null);\n isIndexed = false;\n } else {\n const entries = Object.entries(_def);\n\n for (let i = 0; i < entries.length; i++) {\n const [key, index] = entries[i];\n def[key] = {\n Type: Null,\n index\n };\n }\n\n isBasic = true;\n isIndexed = true;\n }\n\n return {\n def,\n isBasic,\n isIndexed\n };\n}\n\nfunction getEntryType(def, checkIdx) {\n const values = Object.values(def);\n\n for (let i = 0; i < values.length; i++) {\n const {\n Type,\n index\n } = values[i];\n\n if (index === checkIdx) {\n return Type;\n }\n }\n\n throw new Error(`Unable to create Enum via index ${checkIdx}, in ${Object.keys(def).join(', ')}`);\n}\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}\n\nfunction createFromValue(registry, def, index = 0, value) {\n const Type = getEntryType(def, index);\n return {\n index,\n value: value instanceof Type ? value : new Type(registry, value)\n };\n}\n\nfunction decodeFromJSON(registry, def, key, value) {\n // JSON comes in the form of { \"\": \"\" }, 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\n if (index === -1) {\n throw new Error(`Cannot map Enum JSON, unable to find '${key}' in ${keys.join(', ')}`);\n }\n\n try {\n return createFromValue(registry, def, Object.values(def)[index].index, value);\n } catch (error) {\n throw new Error(`Enum(${key}):: ${error.message}`);\n }\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 } else if (isU8a(value) || isHex(value)) {\n const u8a = u8aToU8a(value); // nested, we don't want to match isObject below\n\n if (u8a.length) {\n return createFromU8a(registry, def, u8a[0], u8a.subarray(1));\n }\n } else if (value instanceof Enum) {\n return createFromValue(registry, def, value.index, value.value);\n } else if (isNumber(value)) {\n return createFromValue(registry, def, value);\n } else if (isString(value)) {\n return decodeFromJSON(registry, def, value.toString());\n } else if (isObject(value)) {\n const key = Object.keys(value)[0];\n return decodeFromJSON(registry, def, key, value[key]);\n } // Worst-case scenario, return the first with default\n\n\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 */\n\n\nexport class Enum {\n #def;\n #entryIndex;\n #indexes;\n #isBasic;\n #isIndexed;\n #raw;\n\n constructor(registry, Types, value, index, {\n definition,\n setDefinition = noopSetDefinition\n } = {}) {\n const {\n def,\n isBasic,\n isIndexed\n } = definition || setDefinition(extractDef(registry, Types)); // shortcut isU8a as used in SCALE decoding\n\n const decoded = isU8a(value) && value.length && !isNumber(index) ? createFromU8a(registry, def, value[0], value.subarray(1)) : decodeEnum(registry, def, value, index);\n this.registry = registry;\n this.#def = def;\n this.#isBasic = isBasic;\n this.#isIndexed = isIndexed;\n this.#indexes = Object.values(def).map(({\n index\n }) => index);\n this.#entryIndex = this.#indexes.indexOf(decoded.index);\n this.#raw = decoded.value;\n\n if (this.#raw.initialU8aLength) {\n this.initialU8aLength = 1 + this.#raw.initialU8aLength;\n }\n }\n\n static with(Types) {\n var _class;\n\n let definition; // eslint-disable-next-line no-return-assign\n\n const setDefinition = d => definition = d;\n\n return _class = class extends Enum {\n constructor(registry, value, index) {\n super(registry, Types, value, index, {\n definition,\n setDefinition\n });\n }\n\n }, (() => {\n const keys = Array.isArray(Types) ? Types : Object.keys(Types);\n const asKeys = new Array(keys.length);\n const isKeys = new Array(keys.length);\n\n for (let i = 0; i < keys.length; i++) {\n const name = stringPascalCase(keys[i]);\n asKeys[i] = `as${name}`;\n isKeys[i] = `is${name}`;\n }\n\n objectProperties(_class.prototype, isKeys, (_, i, self) => self.type === keys[i]);\n objectProperties(_class.prototype, asKeys, (k, i, self) => {\n if (self.type !== keys[i]) {\n throw new Error(`Cannot convert '${self.type}' via ${k}`);\n }\n\n return self.value;\n });\n })(), _class;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return 1 + this.#raw.encodedLength;\n }\n /**\n * @description returns a hash of the contents\n */\n\n\n get hash() {\n return this.registry.hash(this.toU8a());\n }\n /**\n * @description The index of the enum value\n */\n\n\n get index() {\n return this.#indexes[this.#entryIndex];\n }\n /**\n * @description The value of the enum\n */\n\n\n get inner() {\n return this.#raw;\n }\n /**\n * @description true if this is a basic enum (no values)\n */\n\n\n get isBasic() {\n return this.#isBasic;\n }\n /**\n * @description Checks if the value is an empty value\n */\n\n\n get isEmpty() {\n return this.#raw.isEmpty;\n }\n /**\n * @description Checks if the Enum points to a [[Null]] type\n */\n\n\n get isNone() {\n return this.#raw instanceof Null;\n }\n /**\n * @description The available keys for this enum\n */\n\n\n get defIndexes() {\n return this.#indexes;\n }\n /**\n * @description The available keys for this enum\n */\n\n\n get defKeys() {\n return Object.keys(this.#def);\n }\n /**\n * @description The name of the type this enum value represents\n */\n\n\n get type() {\n return this.defKeys[this.#entryIndex];\n }\n /**\n * @description The value of the enum\n */\n\n\n get value() {\n return this.#raw;\n }\n /**\n * @description Compares the value of the input to see if there is a match\n */\n\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 } else if (isNumber(other)) {\n return this.toNumber() === other;\n } else if (this.#isBasic && isString(other)) {\n return this.type === other;\n } else if (isHex(other)) {\n return this.toHex() === other;\n } else if (other instanceof Enum) {\n return this.index === other.index && this.value.eq(other.value);\n } else if (isObject(other)) {\n return this.value.eq(other[this.type]);\n } // compare the actual wrapper value\n\n\n return this.value.eq(other);\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n if (this.#isBasic) {\n return {\n outer: [new Uint8Array([this.index])]\n };\n }\n\n const {\n inner,\n outer = []\n } = this.#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\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\n\n toHuman(isExtended) {\n return this.#isBasic || this.isNone ? this.type : {\n [this.type]: this.#raw.toHuman(isExtended)\n };\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.#isBasic ? this.type : {\n [stringCamelCase(this.type)]: this.#raw.toJSON()\n };\n }\n /**\n * @description Returns the number representation for the value\n */\n\n\n toNumber() {\n return this.index;\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.#isBasic ? this.type : {\n [stringCamelCase(this.type)]: this.#raw.toPrimitive()\n };\n }\n /**\n * @description Returns a raw struct representation of the enum types\n */\n\n\n _toRawStruct() {\n if (this.#isBasic) {\n return this.#isIndexed ? this.defKeys.reduce((out, key, index) => {\n out[key] = this.#indexes[index];\n return out;\n }, {}) : this.defKeys;\n }\n\n const entries = Object.entries(this.#def);\n return typesToMap(this.registry, entries.reduce((out, [key, {\n Type\n }], 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\n\n toRawType() {\n return stringify({\n _enum: this._toRawStruct()\n });\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return this.isNone ? this.type : 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\n\n toU8a(isBare) {\n return isBare ? this.#raw.toU8a(isBare) : u8aConcatStrict([new Uint8Array([this.index]), this.#raw.toU8a(isBare)]);\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { u8aToHex } from '@polkadot/util';\n/** @internal */\n\nfunction formatFailure(registry, result, {\n message\n}, u8a, i, count, Type, key) {\n let type = '';\n\n try {\n type = `: ${new Type(registry).toRawType()}`;\n } catch {// ignore\n } // console.error(JSON.stringify(result, null, 2));\n\n\n return `decodeU8a: failed at ${u8aToHex(u8a.subarray(0, 16))}…${key ? ` on ${key}` : ''} (index ${i}/${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 */\n\n\nexport function decodeU8a(registry, result, u8a, [Types, keys]) {\n const count = result.length;\n let offset = 0;\n let i = 0;\n\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 } catch (error) {\n throw new Error(formatFailure(registry, result, error, u8a.subarray(offset), i, count, Types[i], keys[i]));\n }\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 */\n\nexport function decodeU8aStruct(registry, result, u8a, [Types, keys]) {\n const count = result.length;\n let offset = 0;\n let i = 0;\n\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 } catch (error) {\n throw new Error(formatFailure(registry, result, error, u8a.subarray(offset), i, count, Types[i], keys[i]));\n }\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 */\n\nexport function decodeU8aVec(registry, result, u8a, startAt, Type) {\n const count = result.length;\n let offset = startAt;\n let i = 0;\n\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 } catch (error) {\n throw new Error(formatFailure(registry, result, error, u8a.subarray(offset), i, count, Type));\n }\n\n return [offset, offset - startAt];\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isBoolean, isFunction, isHex, isObject, isU8a, isUndefined, objectProperties, stringCamelCase, stringify, u8aConcatStrict, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { compareMap, decodeU8aStruct, mapToTypeMap, typesToMap } from \"../utils/index.js\";\n\nfunction noopSetDefinition(d) {\n return d;\n}\n/** @internal */\n\n\nfunction decodeStructFromObject(registry, [Types, keys], value, jsonMap) {\n let jsonObj;\n const typeofArray = Array.isArray(value);\n const typeofMap = value instanceof Map;\n\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 } else if (typeofArray && value.length !== keys.length) {\n throw new Error(`Struct: Unable to map ${stringify(value)} array to object with known keys ${keys.join(', ')}`);\n }\n\n const raw = new Array(keys.length);\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const jsonKey = jsonMap.get(key) || key;\n const Type = Types[i];\n let assign;\n\n try {\n if (typeofArray) {\n assign = value[i];\n } else if (typeofMap) {\n assign = jsonKey && value.get(jsonKey);\n } else {\n assign = jsonKey && value[jsonKey];\n\n if (isUndefined(assign)) {\n if (isUndefined(jsonObj)) {\n const entries = Object.entries(value);\n jsonObj = {};\n\n for (let e = 0; e < entries.length; e++) {\n jsonObj[stringCamelCase(entries[e][0])] = entries[e][1];\n }\n }\n\n assign = jsonKey && jsonObj[jsonKey];\n }\n }\n\n raw[i] = [key, assign instanceof Type ? assign : new Type(registry, assign)];\n } catch (error) {\n let type = Type.name;\n\n try {\n type = new Type(registry).toRawType();\n } catch (error) {// ignore\n }\n\n throw new Error(`Struct: failed on ${jsonKey}: ${type}:: ${error.message}`);\n }\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 */\n\n\nexport class Struct extends Map {\n #jsonMap;\n #Types;\n\n constructor(registry, Types, value, jsonMap = new Map(), {\n definition,\n setDefinition = noopSetDefinition\n } = {}) {\n const typeMap = definition || setDefinition(mapToTypeMap(registry, Types));\n const [decoded, decodedLength] = isU8a(value) || isHex(value) ? decodeU8aStruct(registry, new Array(typeMap[0].length), u8aToU8a(value), typeMap) : value instanceof Struct ? [value, 0] : decodeStructFromObject(registry, typeMap, value || {}, jsonMap);\n super(decoded);\n this.initialU8aLength = decodedLength;\n this.registry = registry;\n this.#jsonMap = jsonMap;\n this.#Types = typeMap;\n }\n\n static with(Types, jsonMap) {\n var _class;\n\n let definition; // eslint-disable-next-line no-return-assign\n\n const setDefinition = d => definition = d;\n\n return _class = class extends Struct {\n constructor(registry, value) {\n super(registry, Types, value, jsonMap, {\n definition,\n setDefinition\n });\n }\n\n }, (() => {\n const keys = Object.keys(Types);\n objectProperties(_class.prototype, keys, (k, _, self) => self.get(k));\n })(), _class;\n }\n /**\n * @description The available keys for this struct\n */\n\n\n get defKeys() {\n return this.#Types[1];\n }\n /**\n * @description Checks if the value is an empty value\n */\n\n\n get isEmpty() {\n for (const v of this.values()) {\n if (!v.isEmpty) {\n return false;\n }\n }\n\n return true;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n let total = 0;\n\n for (const v of this.values()) {\n total += v.encodedLength;\n }\n\n return total;\n }\n /**\n * @description returns a hash of the contents\n */\n\n\n get hash() {\n return this.registry.hash(this.toU8a());\n }\n /**\n * @description Returns the Type description of the structure\n */\n\n\n get Type() {\n const result = {};\n const [Types, keys] = this.#Types;\n\n for (let i = 0; i < keys.length; i++) {\n result[keys[i]] = new Types[i](this.registry).toRawType();\n }\n\n return result;\n }\n /**\n * @description Compares the value of the input to see if there is a match\n */\n\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\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\n\n getAtIndex(index) {\n return this.toArray()[index];\n }\n /**\n * @description Returns the a types value by name\n */\n\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\n\n inspect(isBare) {\n const inner = new Array();\n\n for (const [k, v] of this.entries()) {\n inner.push({ ...v.inspect(!isBare || isBoolean(isBare) ? isBare : isBare[k]),\n name: stringCamelCase(k)\n });\n }\n\n return {\n inner\n };\n }\n /**\n * @description Converts the Object to an standard JavaScript Array\n */\n\n\n toArray() {\n return [...this.values()];\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\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\n\n toHuman(isExtended) {\n const json = {};\n\n for (const [k, v] of this.entries()) {\n json[k] = v && v.toHuman(isExtended);\n }\n\n return json;\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n const json = {};\n\n for (const [k, v] of this.entries()) {\n const jsonKey = this.#jsonMap.get(k) || k; // 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\n json[jsonKey] = v && v.toJSON();\n }\n\n return json;\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n const json = {};\n\n for (const [k, v] of this.entries()) {\n const jsonKey = this.#jsonMap.get(k) || k; // 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\n json[jsonKey] = v && v.toPrimitive();\n }\n\n return json;\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return stringify(typesToMap(this.registry, this.#Types));\n }\n /**\n * @description Returns the string representation of the value\n */\n\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\n\n toU8a(isBare) {\n const encoded = [];\n\n for (const [k, v] of this.entries()) {\n if (v && isFunction(v.toU8a)) {\n encoded.push(v.toU8a(!isBare || isBoolean(isBare) ? isBare : isBare[k]));\n }\n }\n\n return u8aConcatStrict(encoded);\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { bnToBn, isBigInt, isBn, isFunction, isNumber, stringify } from '@polkadot/util';\n\n/** @internal **/\nfunction isArrayLike(arg) {\n return arg instanceof Uint8Array || Array.isArray(arg);\n}\n/** @internal **/\n\n\nfunction isCodec(arg) {\n return isFunction(arg && arg.toU8a);\n}\n/** @internal **/\n\n\nfunction isEnum(arg) {\n return isCodec(arg) && isNumber(arg.index) && isCodec(arg.value);\n}\n/** @internal */\n\n\nfunction isNumberLike(arg) {\n return isNumber(arg) || isBn(arg) || isBigInt(arg);\n}\n/** @internal */\n\n\nfunction sortArray(a, b) {\n // Vec, Tuple, Bytes etc.\n let sortRes = 0;\n const minLen = Math.min(a.length, b.length);\n\n for (let i = 0; i < minLen; ++i) {\n sortRes = sortAsc(a[i], b[i]);\n\n if (sortRes !== 0) {\n return sortRes;\n }\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*/\n\n\nexport function sortAsc(a, b) {\n if (isNumberLike(a) && isNumberLike(b)) {\n return bnToBn(a).cmp(bnToBn(b));\n } else if (a instanceof Map && b instanceof Map) {\n return sortAsc(Array.from(a.values()), Array.from(b.values()));\n } else if (isEnum(a) && isEnum(b)) {\n return sortAsc(a.index, b.index) || sortAsc(a.value, b.value);\n } else if (isArrayLike(a) && isArrayLike(b)) {\n return sortArray(a, b);\n } else if (isCodec(a) && isCodec(b)) {\n // Text, Bool etc.\n return sortAsc(a.toU8a(true), b.toU8a(true));\n }\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}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nfunction decodeMapFromU8a(registry, KeyClass, ValClass, u8a) {\n const output = new Map();\n const [offset, count] = compactFromU8aLim(u8a);\n const types = [];\n\n for (let i = 0; i < count; i++) {\n types.push(KeyClass, ValClass);\n }\n\n const [values, decodedLength] = decodeU8a(registry, new Array(types.length), u8a.subarray(offset), [types, []]);\n\n for (let i = 0; i < values.length; i += 2) {\n output.set(values[i], values[i + 1]);\n }\n\n return [KeyClass, ValClass, output, offset + decodedLength];\n}\n/** @internal */\n\n\nfunction decodeMapFromMap(registry, KeyClass, ValClass, value) {\n const output = new Map();\n\n for (const [key, val] of value.entries()) {\n const isComplex = KeyClass.prototype instanceof AbstractArray || KeyClass.prototype instanceof Struct || KeyClass.prototype instanceof Enum;\n\n try {\n output.set(key instanceof KeyClass ? key : new KeyClass(registry, isComplex && typeof key === 'string' ? JSON.parse(key) : key), val instanceof ValClass ? val : new ValClass(registry, val));\n } catch (error) {\n l.error('Failed to decode key or value:', error.message);\n throw error;\n }\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, where both key and value types are either\n * constructors or decodeable values for their types.\n * @param jsonMap\n * @internal\n */\n\n\nfunction decodeMap(registry, keyType, valType, value) {\n const KeyClass = typeToConstructor(registry, keyType);\n const ValClass = typeToConstructor(registry, valType);\n\n if (!value) {\n return [KeyClass, ValClass, new Map(), 0];\n } else if (isU8a(value) || isHex(value)) {\n return decodeMapFromU8a(registry, KeyClass, ValClass, u8aToU8a(value));\n } else if (value instanceof Map) {\n return decodeMapFromMap(registry, KeyClass, ValClass, value);\n } else if (isObject(value)) {\n return decodeMapFromMap(registry, KeyClass, ValClass, new Map(Object.entries(value)));\n }\n\n throw new Error('Map: cannot decode type');\n}\n\nexport class CodecMap extends Map {\n #KeyClass;\n #ValClass;\n #type;\n\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.#KeyClass = KeyClass;\n this.#ValClass = ValClass;\n this.#type = type;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n let len = compactToU8a(this.size).length;\n\n for (const [k, v] of this.entries()) {\n len += k.encodedLength + v.encodedLength;\n }\n\n return len;\n }\n /**\n * @description Returns a hash of the value\n */\n\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\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\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\n\n inspect() {\n const inner = new Array();\n\n for (const [k, v] of this.entries()) {\n inner.push(k.inspect());\n inner.push(v.inspect());\n }\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\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\n\n toHuman(isExtended) {\n const json = {};\n\n for (const [k, v] of this.entries()) {\n json[k instanceof Raw && k.isAscii ? k.toUtf8() : k.toString()] = v.toHuman(isExtended);\n }\n\n return json;\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n const json = {};\n\n for (const [k, v] of this.entries()) {\n json[k.toString()] = v.toJSON();\n }\n\n return json;\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n const json = {};\n\n for (const [k, v] of this.entries()) {\n json[k instanceof Raw && k.isAscii ? k.toUtf8() : k.toString()] = v.toPrimitive();\n }\n\n return json;\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return `${this.#type}<${this.registry.getClassName(this.#KeyClass) || new this.#KeyClass(this.registry).toRawType()},${this.registry.getClassName(this.#ValClass) || new this.#ValClass(this.registry).toRawType()}>`;\n }\n /**\n * @description Returns the string representation of the value\n */\n\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\n\n toU8a(isBare) {\n const encoded = new Array();\n\n if (!isBare) {\n encoded.push(compactToU8a(this.size));\n }\n\n for (const [k, v] of this.entries()) {\n encoded.push(k.toU8a(isBare), v.toU8a(isBare));\n }\n\n return u8aConcatStrict(encoded);\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isObject } from '@polkadot/util';\n\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} // NOTE These are used internally and when comparing objects, expects that\n// when the second is an Set that the first has to be as well\n\n\nexport function compareSet(a, b) {\n if (Array.isArray(b)) {\n return compareSetArray(a, b);\n } else if (b instanceof Set) {\n return compareSetArray(a, [...b.values()]);\n } else if (isObject(b)) {\n return compareSetArray(a, Object.values(b));\n }\n\n return false;\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\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\n for (let i = 0; i < count; i++) {\n output.add(result[i]);\n }\n\n return [ValClass, output, decodedLength];\n}\n/** @internal */\n\n\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 } 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, where both key and value types are either\n * constructors or decodeable values for their types.\n * @param jsonSet\n * @internal\n */\n\n\nfunction decodeSet(registry, valType, value) {\n const ValClass = typeToConstructor(registry, valType);\n\n if (!value) {\n return [ValClass, new Set(), 0];\n } else if (isU8a(value) || isHex(value)) {\n return decodeSetFromU8a(registry, ValClass, u8aToU8a(value));\n } else if (Array.isArray(value) || value instanceof Set) {\n return decodeSetFromSet(registry, ValClass, value);\n }\n\n throw new Error('BTreeSet: cannot decode type');\n}\n\nexport class BTreeSet extends Set {\n #ValClass;\n\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.#ValClass = ValClass;\n }\n\n static with(valType) {\n return class extends BTreeSet {\n constructor(registry, value) {\n super(registry, valType, value);\n }\n\n };\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n let len = compactToU8a(this.size).length;\n\n for (const v of this.values()) {\n len += v.encodedLength;\n }\n\n return len;\n }\n /**\n * @description Returns a hash of the value\n */\n\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\n\n get isEmpty() {\n return this.size === 0;\n }\n /**\n * @description The actual set values as a string[]\n */\n\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\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\n\n inspect() {\n const inner = new Array();\n\n for (const v of this.values()) {\n inner.push(v.inspect());\n }\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\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\n\n toHuman(isExtended) {\n const json = [];\n\n for (const v of this.values()) {\n json.push(v.toHuman(isExtended));\n }\n\n return json;\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n const json = [];\n\n for (const v of this.values()) {\n json.push(v.toJSON());\n }\n\n return json;\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return `BTreeSet<${this.registry.getClassName(this.#ValClass) || new this.#ValClass(this.registry).toRawType()}>`;\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n const json = [];\n\n for (const v of this.values()) {\n json.push(v.toPrimitive());\n }\n\n return json;\n }\n /**\n * @description Returns the string representation of the value\n */\n\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\n\n toU8a(isBare) {\n const encoded = new Array();\n\n if (!isBare) {\n encoded.push(compactToU8a(this.size));\n }\n\n for (const v of this.values()) {\n encoded.push(v.toU8a(isBare));\n }\n\n return u8aConcatStrict(encoded);\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { compactFromU8a, compactFromU8aLim, compactToU8a, isU8a } from '@polkadot/util';\nimport { typeToConstructor } from \"../utils/index.js\";\n\nfunction noopSetDefinition(d) {\n return d;\n}\n\nfunction decodeCompact(registry, Type, value) {\n if (isU8a(value)) {\n const [decodedLength, bn] = (value[0] & 0b11) < 0b11 ? compactFromU8aLim(value) : compactFromU8a(value);\n return [new Type(registry, bn), decodedLength];\n } else if (value instanceof Compact) {\n const raw = value.unwrap();\n return raw instanceof Type ? [raw, 0] : [new Type(registry, raw), 0];\n } else if (value instanceof Type) {\n return [value, 0];\n }\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 */\n\n\nexport class Compact {\n #Type;\n #raw;\n\n constructor(registry, Type, value = 0, {\n definition,\n setDefinition = noopSetDefinition\n } = {}) {\n this.registry = registry;\n this.#Type = definition || setDefinition(typeToConstructor(registry, Type));\n const [raw, decodedLength] = decodeCompact(registry, this.#Type, value);\n this.initialU8aLength = decodedLength;\n this.#raw = raw;\n }\n\n static with(Type) {\n let definition; // eslint-disable-next-line no-return-assign\n\n const setDefinition = d => definition = d;\n\n return class extends Compact {\n constructor(registry, value) {\n super(registry, Type, value, {\n definition,\n setDefinition\n });\n }\n\n };\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return this.toU8a().length;\n }\n /**\n * @description returns a hash of the contents\n */\n\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\n\n get isEmpty() {\n return this.#raw.isEmpty;\n }\n /**\n * @description Returns the number of bits in the value\n */\n\n\n bitLength() {\n return this.#raw.bitLength();\n }\n /**\n * @description Compares the value of the input to see if there is a match\n */\n\n\n eq(other) {\n return this.#raw.eq(other instanceof Compact ? other.#raw : other);\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n return {\n outer: [this.toU8a()]\n };\n }\n /**\n * @description Returns a BigInt representation of the number\n */\n\n\n toBigInt() {\n return this.#raw.toBigInt();\n }\n /**\n * @description Returns the BN representation of the number\n */\n\n\n toBn() {\n return this.#raw.toBn();\n }\n /**\n * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation\n */\n\n\n toHex(isLe) {\n return this.#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\n\n toHuman(isExtended) {\n return this.#raw.toHuman(isExtended);\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.#raw.toJSON();\n }\n /**\n * @description Returns the number representation for the value\n */\n\n\n toNumber() {\n return this.#raw.toNumber();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.#raw.toPrimitive();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return `Compact<${this.registry.getClassName(this.#Type) || this.#raw.toRawType()}>`;\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return this.#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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n toU8a(isBare) {\n return compactToU8a(this.#raw.toBn());\n }\n /**\n * @description Returns the embedded [[UInt]] or [[Moment]] value\n */\n\n\n unwrap() {\n return this.#raw;\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { u8aToHex } from \"../u8a/index.js\";\nimport { bnToU8a } from \"./toU8a.js\";\nconst ZERO_STR = '0x00';\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 *
\n *\n * ```javascript\n * import BN from 'bn.js';\n * import { bnToHex } from '@polkadot/util';\n *\n * bnToHex(new BN(0x123456)); // => '0x123456'\n * ```\n */\n\nexport function bnToHex(value, {\n bitLength = -1,\n isLe = false,\n isNegative = false\n} = {}) {\n return !value ? ZERO_STR : u8aToHex(bnToU8a(value, {\n bitLength,\n isLe,\n isNegative\n }));\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { bnToBn } from \"../bn/toBn.js\";\nimport { formatDecimal } from \"./formatDecimal.js\";\n/**\n * @name formatNumber\n * @description Formats a number into string format with thousand seperators\n */\n\nexport function formatNumber(value) {\n return formatDecimal(bnToBn(value).toString());\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BN, BN_BILLION, BN_HUNDRED, BN_MILLION, BN_QUINTILL, bnToBn, bnToHex, bnToU8a, formatBalance, formatNumber, hexToBn, isBn, isFunction, isHex, isNumber, isObject, isString, isU8a, u8aToBn, u8aToNumber } from '@polkadot/util';\nexport const DEFAULT_UINT_BITS = 64; // Maximum allowed integer for JS is 2^53 - 1, set limit at 52\n// In this case however, we always print any >32 as hex\n\nconst MAX_NUMBER_BITS = 52;\nconst MUL_P = new BN(10000);\nconst FORMATTERS = [['Perquintill', BN_QUINTILL], ['Perbill', BN_BILLION], ['Permill', BN_MILLION], ['Percent', BN_HUNDRED]];\n\nfunction toPercentage(value, divisor) {\n return `${(value.mul(MUL_P).div(divisor).toNumber() / 100).toFixed(2)}%`;\n}\n/** @internal */\n\n\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\n return value;\n } else if (isString(value)) {\n if (isHex(value, -1, true)) {\n return hexToBn(value, {\n isLe: false,\n isNegative\n }).toString();\n }\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\n return value;\n } else if (isBn(value)) {\n return value.toString();\n } else if (isObject(value) && !isFunction(value.toBn)) {\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\n if (keys.length !== 1) {\n throw new Error('Unable to construct number from multi-key object');\n }\n\n const inner = value[keys[0]];\n\n if (!isString(inner) && !isNumber(inner)) {\n throw new Error('Unable to construct from object with non-string/non-number value');\n }\n\n return decodeAbstractInt(inner, isNegative);\n }\n\n return bnToBn(value).toString();\n}\n/**\n * @name AbstractInt\n * @ignore\n * @noInheritDoc\n */\n\n\nexport class AbstractInt extends BN {\n #bitLength;\n\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( // shortcut isU8a as used in SCALE decoding\n isU8a(value) ? bitLength <= 48 ? u8aToNumber(value.subarray(0, bitLength / 8), {\n isNegative: isSigned\n }) : u8aToBn(value.subarray(0, bitLength / 8), {\n isLe: true,\n isNegative: isSigned\n }).toString() : decodeAbstractInt(value, isSigned));\n this.registry = registry;\n this.#bitLength = bitLength;\n this.encodedLength = this.#bitLength / 8;\n this.isUnsigned = !isSigned;\n const isNegative = this.isNeg();\n const maxBits = bitLength - (isSigned && !isNegative ? 1 : 0);\n\n if (isNegative && !isSigned) {\n throw new Error(`${this.toRawType()}: Negative number passed to unsigned type`);\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\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\n\n get isEmpty() {\n return this.isZero();\n }\n /**\n * @description Returns the number of bits in the value\n */\n\n\n bitLength() {\n return this.#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\n\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) ? hexToBn(other.toString(), {\n isLe: false,\n isNegative: !this.isUnsigned\n }) : bnToBn(other));\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\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\n\n isMax() {\n const u8a = this.toU8a().filter(b => b === 0xff);\n return u8a.length === this.#bitLength / 8;\n }\n /**\n * @description Returns a BigInt representation of the number\n */\n\n\n toBigInt() {\n return BigInt(this.toString());\n }\n /**\n * @description Returns the BN representation of the number. (Compatibility)\n */\n\n\n toBn() {\n return this;\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n toHuman(isExpanded) {\n const rawType = this.toRawType();\n\n if (rawType === 'Balance') {\n return this.isMax() ? 'everything' // 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, {\n decimals: this.registry.chainDecimals[0],\n withSi: true,\n withUnit: this.registry.chainTokens[0]\n });\n }\n\n const [, divisor] = FORMATTERS.find(([type]) => type === rawType) || [];\n return divisor ? toPercentage(this, divisor) : formatNumber(this);\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\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\n // - this.#bitLength - the type bits (this should be used, however contracts RPC is problematic)\n return onlyHex || super.bitLength() > MAX_NUMBER_BITS ? this.toHex() : this.toNumber();\n }\n /**\n * @description Returns the value in a primitive form, either number when <= 52 bits, or string otherwise\n */\n\n\n toPrimitive() {\n return super.bitLength() > MAX_NUMBER_BITS ? this.toString() : this.toNumber();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\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') ? 'Balance' : `${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\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 * @param isBare true when the value has none of the type-specific prefixes (internal)\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n toU8a(isBare) {\n return bnToU8a(this, {\n bitLength: this.bitLength(),\n isLe: true,\n isNegative: !this.isUnsigned\n });\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @name u8aToNumber\n * @summary Creates a number from a Uint8Array object.\n */\nexport function u8aToNumber(value, {\n isNegative = false\n} = {}) {\n const count = value.length;\n\n if (isNegative) {\n let result = 0;\n\n switch (count) {\n case 0:\n return 0;\n\n case 1:\n result = value[0] ^ 0x000000ff;\n break;\n\n case 2:\n result = value[0] + (value[1] << 8) ^ 0x0000ffff;\n break;\n\n case 3:\n result = value[0] + (value[1] << 8) + (value[2] << 16) ^ 0x00ffffff;\n break;\n\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 result = value[0] + (value[1] << 8) + (value[2] << 16) + value[3] * 0x1000000 ^ 0xffffffff;\n break;\n\n case 5:\n result = (value[0] + (value[1] << 8) + (value[2] << 16) + value[3] * 0x1000000 ^ 0xffffffff) + (value[4] ^ 0xff) * 0x100000000;\n break;\n\n case 6:\n result = (value[0] + (value[1] << 8) + (value[2] << 16) + value[3] * 0x1000000 ^ 0xffffffff) + (value[4] + (value[5] << 8) ^ 0x0000ffff) * 0x100000000;\n break;\n\n default:\n throw new Error('Value more than 48-bits cannot be reliably converted');\n }\n\n return result * -1 - 1;\n }\n\n switch (count) {\n case 0:\n return 0;\n\n case 1:\n return value[0];\n\n case 2:\n return value[0] + (value[1] << 8);\n\n case 3:\n return value[0] + (value[1] << 8) + (value[2] << 16);\n\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] * 0x1000000;\n\n case 5:\n return value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] + (value[4] << 8)) * 0x1000000;\n\n case 6:\n return value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] + (value[4] << 8) + (value[5] << 16)) * 0x1000000;\n\n default:\n throw new Error('Value more than 48-bits cannot be reliably converted');\n }\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nexport class Int extends AbstractInt {\n constructor(registry, value = 0, bitLength) {\n super(registry, value, bitLength, true);\n }\n\n static with(bitLength, typeName) {\n return class extends Int {\n constructor(registry, value) {\n super(registry, value, bitLength);\n }\n\n toRawType() {\n return typeName || super.toRawType();\n }\n\n };\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isOnObject } from \"./helpers.js\";\nconst checkCodec = isOnObject('toHex', 'toU8a');\nconst checkRegistry = isOnObject('get');\nexport function isCodec(value) {\n return checkCodec(value) && checkRegistry(value.registry);\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isCodec, isNull, isU8a, isUndefined, u8aToHex } from '@polkadot/util';\nimport { typeToConstructor } from \"../utils/index.js\";\nimport { Null } from \"./Null.js\";\n\nfunction noopSetDefinition(d) {\n return d;\n}\n\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}\n/** @internal */\n\n\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 } else if (value instanceof Option) {\n if (value.value instanceof Type) {\n // same instance, return it\n return value.value;\n } else if (value.isNone) {\n // internal is None, we are also none\n return new None(registry);\n } // convert the actual value into known\n\n\n return new Type(registry, value.value);\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 } 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 ? new None(registry) : new Type(registry, value.subarray(1));\n }\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 */\n\n\nexport class Option {\n #Type;\n #raw;\n\n constructor(registry, typeName, value, {\n definition,\n setDefinition = noopSetDefinition\n } = {}) {\n const Type = definition || setDefinition(typeToConstructor(registry, typeName));\n const decoded = isU8a(value) && value.length && !isCodec(value) ? value[0] === 0 ? new None(registry) : new Type(registry, value.subarray(1)) : decodeOption(registry, Type, value);\n this.registry = registry;\n this.#Type = Type;\n this.#raw = decoded;\n\n if (decoded && decoded.initialU8aLength) {\n this.initialU8aLength = 1 + decoded.initialU8aLength;\n }\n }\n\n static with(Type) {\n let definition;\n\n const setDefinition = d => {\n definition = d;\n return d;\n };\n\n return class extends Option {\n constructor(registry, value) {\n super(registry, Type, value, {\n definition,\n setDefinition\n });\n }\n\n };\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n // boolean byte (has value, doesn't have) along with wrapped length\n return 1 + this.#raw.encodedLength;\n }\n /**\n * @description returns a hash of the contents\n */\n\n\n get hash() {\n return this.registry.hash(this.toU8a());\n }\n /**\n * @description Checks if the Option has no value\n */\n\n\n get isEmpty() {\n return this.isNone;\n }\n /**\n * @description Checks if the Option has no value\n */\n\n\n get isNone() {\n return this.#raw instanceof None;\n }\n /**\n * @description Checks if the Option has a value\n */\n\n\n get isSome() {\n return !this.isNone;\n }\n /**\n * @description The actual value for the Option\n */\n\n\n get value() {\n return this.#raw;\n }\n /**\n * @description Compares the value of the input to see if there is a match\n */\n\n\n eq(other) {\n if (other instanceof Option) {\n return this.isSome === other.isSome && this.value.eq(other.value);\n }\n\n return this.value.eq(other);\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n if (this.isNone) {\n return {\n outer: [new Uint8Array([0])]\n };\n }\n\n const {\n inner,\n outer = []\n } = this.#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\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 ? '0x' : 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\n\n toHuman(isExtended) {\n return this.#raw.toHuman(isExtended);\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.isNone ? null : this.#raw.toJSON();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.isNone ? null : this.#raw.toPrimitive();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType(isBare) {\n const wrapped = this.registry.getClassName(this.#Type) || new this.#Type(this.registry).toRawType();\n return isBare ? wrapped : `Option<${wrapped}>`;\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return this.#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\n\n toU8a(isBare) {\n if (isBare) {\n return this.#raw.toU8a(true);\n }\n\n const u8a = new Uint8Array(this.encodedLength);\n\n if (this.isSome) {\n u8a.set([1]);\n u8a.set(this.#raw.toU8a(), 1);\n }\n\n return u8a;\n }\n /**\n * @description Returns the value that the Option represents (if available), throws if null\n */\n\n\n unwrap() {\n if (this.isNone) {\n throw new Error('Option: unwrapping a None value');\n }\n\n return this.#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\n\n unwrapOr(defaultValue) {\n return this.isSome ? this.unwrap() : 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\n\n unwrapOrDefault() {\n return this.isSome ? this.unwrap() : new this.#Type(this.registry);\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isFunction, isHex, isString, isU8a, stringify, u8aConcatStrict, u8aToU8a } from '@polkadot/util';\nimport { AbstractArray } from \"../abstract/Array.js\";\nimport { decodeU8a, mapToTypeMap, typeToConstructor } from \"../utils/index.js\";\n\nfunction noopSetDefinition(d) {\n return d;\n}\n/** @internal */\n\n\nfunction decodeTuple(registry, result, value, Classes) {\n if (isU8a(value) || isHex(value)) {\n return decodeU8a(registry, result, u8aToU8a(value), Classes);\n }\n\n const Types = Classes[0];\n\n for (let i = 0; i < Types.length; i++) {\n try {\n const entry = value === null || value === void 0 ? void 0 : value[i];\n result[i] = entry instanceof Types[i] ? entry : new Types[i](registry, entry);\n } catch (error) {\n throw new Error(`Tuple: failed on ${i}:: ${error.message}`);\n }\n }\n\n return [result, 0];\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 */\n\n\nexport class Tuple extends AbstractArray {\n #Types;\n\n constructor(registry, Types, value, {\n definition,\n setDefinition = noopSetDefinition\n } = {}) {\n const Classes = definition || setDefinition(Array.isArray(Types) ? [Types.map(t => typeToConstructor(registry, t)), []] : isFunction(Types) || isString(Types) ? [[typeToConstructor(registry, Types)], []] : mapToTypeMap(registry, Types));\n super(registry, Classes[0].length);\n this.initialU8aLength = (isU8a(value) ? decodeU8a(registry, this, value, Classes) : decodeTuple(registry, this, value, Classes))[1];\n this.#Types = Classes;\n }\n\n static with(Types) {\n let definition; // eslint-disable-next-line no-return-assign\n\n const setDefinition = d => definition = d;\n\n return class extends Tuple {\n constructor(registry, value) {\n super(registry, Types, value, {\n definition,\n setDefinition\n });\n }\n\n };\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n let total = 0;\n\n for (let i = 0; i < this.length; i++) {\n total += this[i].encodedLength;\n }\n\n return total;\n }\n /**\n * @description The types definition of the tuple\n */\n\n\n get Types() {\n return this.#Types[1].length ? this.#Types[1] : this.#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\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\n\n toRawType() {\n const types = this.#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\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\n\n toU8a(isBare) {\n return u8aConcatStrict(this.toU8aInner(isBare));\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Tuple } from \"../base/Tuple.js\";\n\n/**\n * @name Range\n * @description\n * Rust `Range` representation\n */\nexport class Range extends Tuple {\n #rangeName;\n\n constructor(registry, Type, value, {\n rangeName = 'Range'\n } = {}) {\n super(registry, [Type, Type], value);\n this.#rangeName = rangeName;\n }\n\n static with(Type) {\n return class extends Range {\n constructor(registry, value) {\n super(registry, Type, value);\n }\n\n };\n }\n /**\n * @description Returns the starting range value\n */\n\n\n get start() {\n return this[0];\n }\n /**\n * @description Returns the ending range value\n */\n\n\n get end() {\n return this[1];\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return `${this.#rangeName}<${this.start.toRawType()}>`;\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Range } from \"./Range.js\";\nexport class RangeInclusive extends Range {\n constructor(registry, Type, value) {\n super(registry, Type, value, {\n rangeName: 'RangeInclusive'\n });\n }\n\n static with(Type) {\n return class extends RangeInclusive {\n constructor(registry, value) {\n super(registry, Type, value);\n }\n\n };\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\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, {\n Ok,\n Err\n }, value);\n }\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 /**\n * @description Returns the wrapper Err value (if isErr)\n */\n\n\n get asErr() {\n if (!this.isErr) {\n throw new Error('Cannot extract Err value from Ok result, check isErr first');\n }\n\n return this.value;\n }\n /**\n * @description Returns the wrapper Ok value (if isOk)\n */\n\n\n get asOk() {\n if (!this.isOk) {\n throw new Error('Cannot extract Ok value from Err result, check isOk first');\n }\n\n return this.value;\n }\n /**\n * @description Checks if the Result has no value\n */\n\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\n\n get isErr() {\n return !this.isOk;\n }\n /**\n * @description Checks if the Result wraps an Ok value\n */\n\n\n get isOk() {\n return this.index === 0;\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n const Types = this._toRawStruct();\n\n return `Result<${Types.Ok},${Types.Err}>`;\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BN, bnToBn, bnToU8a, isBn, isNumber, isString, isU8a, isUndefined, objectProperties, stringify, stringPascalCase, u8aToBn, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { compareArray } from \"../utils/index.js\";\n\nfunction encodeSet(setValues, values) {\n const encoded = new BN(0);\n\n for (let i = 0; i < values.length; i++) {\n encoded.ior(bnToBn(setValues[values[i]] || 0));\n }\n\n return encoded;\n}\n/** @internal */\n\n\nfunction decodeSetArray(setValues, values) {\n const result = new Array(values.length);\n\n for (let i = 0; i < values.length; i++) {\n const key = values[i];\n\n if (isUndefined(setValues[key])) {\n throw new Error(`Set: Invalid key '${key}' passed to Set, allowed ${Object.keys(setValues).join(', ')}`);\n }\n\n result[i] = key;\n }\n\n return result;\n}\n/** @internal */\n\n\nfunction decodeSetNumber(setValues, _value) {\n const bn = bnToBn(_value);\n const keys = Object.keys(setValues);\n const result = [];\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (bn.and(bnToBn(setValues[key])).eq(bnToBn(setValues[key]))) {\n result.push(key);\n }\n }\n\n const computed = encodeSet(setValues, result);\n\n if (!bn.eq(computed)) {\n throw new Error(`Set: Mismatch decoding '${bn.toString()}', computed as '${computed.toString()}' with ${result.join(', ')}`);\n }\n\n return result;\n}\n/** @internal */\n\n\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\n const byteLength = bitLength / 8;\n\n if (isU8a(value)) {\n return value.length === 0 ? [] : decodeSetNumber(setValues, u8aToBn(value.subarray(0, byteLength), {\n isLe: true\n }));\n } else if (isString(value)) {\n return decodeSet(setValues, u8aToU8a(value), byteLength);\n } else if (value instanceof Set || Array.isArray(value)) {\n const input = Array.isArray(value) ? value : [...value.values()];\n return decodeSetArray(setValues, input);\n }\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 */\n\n\nexport class CodecSet extends Set {\n #allowed;\n #byteLength;\n\n constructor(registry, setValues, value, bitLength = 8) {\n super(decodeSet(setValues, value, bitLength));\n this.registry = registry;\n this.#allowed = setValues;\n this.#byteLength = bitLength / 8;\n }\n\n static with(values, bitLength) {\n var _class;\n\n return _class = class extends CodecSet {\n constructor(registry, value) {\n super(registry, values, value, bitLength);\n }\n\n }, (() => {\n const keys = Object.keys(values);\n const isKeys = new Array(keys.length);\n\n for (let i = 0; i < keys.length; i++) {\n isKeys[i] = `is${stringPascalCase(keys[i])}`;\n }\n\n objectProperties(_class.prototype, isKeys, (_, i, self) => self.strings.includes(keys[i]));\n })(), _class;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return this.#byteLength;\n }\n /**\n * @description returns a hash of the contents\n */\n\n\n get hash() {\n return this.registry.hash(this.toU8a());\n }\n /**\n * @description true is the Set contains no values\n */\n\n\n get isEmpty() {\n return this.size === 0;\n }\n /**\n * @description The actual set values as a string[]\n */\n\n\n get strings() {\n return [...super.values()];\n }\n /**\n * @description The encoded value for the set members\n */\n\n\n get valueEncoded() {\n return encodeSet(this.#allowed, this.strings);\n }\n /**\n * @description adds a value to the Set (extended to allow for validity checking)\n */\n\n\n 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.#allowed && isUndefined(this.#allowed[key])) {\n throw new Error(`Set: Invalid key '${key}' on add`);\n }\n\n super.add(key);\n return this;\n };\n /**\n * @description Compares the value of the input to see if there is a match\n */\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 } else if (other instanceof Set) {\n return this.eq([...other.values()]);\n } else if (isNumber(other) || isBn(other)) {\n return this.valueEncoded.eq(bnToBn(other));\n }\n\n return false;\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n return {\n outer: [this.toU8a()]\n };\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\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\n\n toHuman() {\n return this.toJSON();\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.strings;\n }\n /**\n * @description The encoded value for the set members\n */\n\n\n toNumber() {\n return this.valueEncoded.toNumber();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.toJSON();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return stringify({\n _set: this.#allowed\n });\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return `[${this.strings.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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n toU8a(isBare) {\n return bnToU8a(this.valueEncoded, {\n bitLength: this.#byteLength * 8,\n isLe: true\n });\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\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\n toRawType() {\n return typeName || super.toRawType();\n }\n\n };\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\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 */\n\nexport function compactAddLength(input) {\n return u8aConcatStrict([compactToU8a(input.length), input]);\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { compactAddLength, compactFromU8aLim, compactToU8a, isString, isU8a, u8aToU8a } from '@polkadot/util';\nimport { Raw } from \"../native/Raw.js\"; // Bytes are used for things like on-chain code, so it has a healthy limit\n\nconst MAX_LENGTH = 10 * 1024 * 1024;\n/** @internal */\n\nfunction decodeBytesU8a(value) {\n if (!value.length) {\n return [new Uint8Array(), 0];\n } // handle all other Uint8Array inputs, these do have a length prefix\n\n\n const [offset, length] = compactFromU8aLim(value);\n const total = offset + length;\n\n if (length > MAX_LENGTH) {\n throw new Error(`Bytes length ${length.toString()} exceeds ${MAX_LENGTH}`);\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\n return [value.subarray(offset, total), total];\n}\n/**\n * @name Bytes\n * @description\n * A Bytes wrapper for Vec. 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 */\n\n\nexport class Bytes extends Raw {\n constructor(registry, value) {\n const [u8a, decodedLength] = isU8a(value) && !(value instanceof Raw) ? decodeBytesU8a(value) : Array.isArray(value) || isString(value) ? [u8aToU8a(value), 0] : [value, 0];\n super(registry, u8a, decodedLength);\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\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\n\n inspect(isBare) {\n const clength = compactToU8a(this.length);\n return {\n outer: isBare ? [super.toU8a()] : this.length ? [clength, super.toU8a()] : [clength]\n };\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\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\n\n toU8a(isBare) {\n return isBare ? super.toU8a(isBare) : compactAddLength(this);\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { compactFromU8aLim, isU8a, logger, 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');\n\nfunction noopSetDefinition(d) {\n return d;\n}\n\nfunction decodeVecLength(value) {\n if (Array.isArray(value)) {\n return [value, value.length, 0];\n }\n\n const u8a = u8aToU8a(value);\n const [startAt, length] = compactFromU8aLim(u8a);\n\n if (length > MAX_LENGTH) {\n throw new Error(`Vec length ${length.toString()} exceeds ${MAX_LENGTH}`);\n }\n\n return [u8a, length, startAt];\n}\n\nexport function decodeVec(registry, result, value, startAt, Type) {\n if (Array.isArray(value)) {\n const count = result.length;\n\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\n try {\n result[i] = entry instanceof Type ? entry : new Type(registry, entry);\n } catch (error) {\n l.error(`Unable to decode on index ${i}`, error.message);\n throw error;\n }\n }\n\n return [0, 0];\n }\n\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 */\n\nexport class Vec extends AbstractArray {\n #Type;\n\n constructor(registry, Type, value = [], {\n definition,\n setDefinition = noopSetDefinition\n } = {}) {\n const [decodeFrom, length, startAt] = decodeVecLength(value);\n super(registry, length);\n this.#Type = definition || setDefinition(typeToConstructor(registry, Type));\n this.initialU8aLength = (isU8a(decodeFrom) ? decodeU8aVec(registry, this, decodeFrom, startAt, this.#Type) : decodeVec(registry, this, decodeFrom, startAt, this.#Type))[0];\n }\n\n static with(Type) {\n let definition; // eslint-disable-next-line no-return-assign\n\n const setDefinition = d => definition = d;\n\n return class extends Vec {\n constructor(registry, value) {\n super(registry, Type, value, {\n definition,\n setDefinition\n });\n }\n\n };\n }\n /**\n * @description The type for the items\n */\n\n\n get Type() {\n return this.#Type.name;\n }\n /**\n * @description Finds the index of the value in the array\n */\n\n\n indexOf(_other) {\n // convert type first, this removes overhead from the eq\n const other = _other instanceof this.#Type ? _other : new this.#Type(this.registry, _other);\n\n for (let i = 0; i < this.length; i++) {\n if (other.eq(this[i])) {\n return i;\n }\n }\n\n return -1;\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return `Vec<${this.registry.getClassName(this.#Type) || new this.#Type(this.registry).toRawType()}>`;\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isU8a, u8aToU8a } from '@polkadot/util';\nimport { Raw } from \"../native/Raw.js\";\n/** @internal */\n\nfunction decodeU8aFixed(value, bitLength) {\n const u8a = u8aToU8a(value);\n const byteLength = bitLength / 8;\n\n if (!u8a.length) {\n return [new Uint8Array(byteLength), 0];\n }\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\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 */\n\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\n static with(bitLength, typeName) {\n return class extends U8aFixed {\n constructor(registry, value) {\n super(registry, value, bitLength);\n }\n\n toRawType() {\n return typeName || super.toRawType();\n }\n\n };\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return `[u8;${this.length}]`;\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isU8a, u8aConcatStrict } from '@polkadot/util';\nimport { AbstractArray } from \"../abstract/Array.js\";\nimport { decodeU8aVec, typeToConstructor } from \"../utils/index.js\";\nimport { decodeVec } from \"./Vec.js\";\n\nfunction noopSetDefinition(d) {\n return d;\n}\n/**\n * @name VecFixed\n * @description\n * This manages codec arrays of a fixed length\n */\n\n\nexport class VecFixed extends AbstractArray {\n #Type;\n\n constructor(registry, Type, length, value = [], {\n definition,\n setDefinition = noopSetDefinition\n } = {}) {\n super(registry, length);\n this.#Type = definition || setDefinition(typeToConstructor(registry, Type));\n this.initialU8aLength = (isU8a(value) ? decodeU8aVec(registry, this, value, 0, this.#Type) : decodeVec(registry, this, value, 0, this.#Type))[1];\n }\n\n static with(Type, length) {\n let definition; // eslint-disable-next-line no-return-assign\n\n const setDefinition = d => definition = d;\n\n return class extends VecFixed {\n constructor(registry, value) {\n super(registry, Type, length, value, {\n definition,\n setDefinition\n });\n }\n\n };\n }\n /**\n * @description The type for the items\n */\n\n\n get Type() {\n return new this.#Type(this.registry).toRawType();\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n let total = 0;\n\n for (let i = 0; i < this.length; i++) {\n total += this[i].encodedLength;\n }\n\n return total;\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n return {\n inner: this.inspectInner()\n };\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 ? u8aConcatStrict(encoded) : new Uint8Array([]);\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return `[${this.Type};${this.length}]`;\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\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 */\n\nexport function compactStripLength(input) {\n const [offset, length] = compactFromU8a(input);\n const total = offset + length.toNumber();\n return [total, input.subarray(offset, total)];\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\";\n\nfunction decodeRaw(registry, typeName, value) {\n const Type = typeToConstructor(registry, typeName);\n\n if (isU8a(value) || isHex(value)) {\n try {\n const [, u8a] = isHex(value) ? [0, u8aToU8a(value)] : value instanceof Raw ? [0, value.subarray()] : compactStripLength(value);\n return [Type, new Type(registry, u8a), value];\n } catch {\n return [Type, null, value];\n }\n }\n\n const instance = new Type(registry, value);\n return [Type, instance, compactAddLength(instance.toU8a())];\n}\n\nexport class WrapperKeepOpaque extends Bytes {\n #Type;\n #decoded;\n #opaqueName;\n\n constructor(registry, typeName, value, {\n opaqueName = 'WrapperKeepOpaque'\n } = {}) {\n const [Type, decoded, u8a] = decodeRaw(registry, typeName, value);\n super(registry, u8a);\n this.#Type = Type;\n this.#decoded = decoded;\n this.#opaqueName = opaqueName;\n }\n\n static with(Type) {\n return class extends WrapperKeepOpaque {\n constructor(registry, value) {\n super(registry, Type, value);\n }\n\n };\n }\n /**\n * @description Checks if the wrapper is decodable\n */\n\n\n get isDecoded() {\n return !!this.#decoded;\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n return this.#decoded ? {\n inner: [this.#decoded.inspect()],\n outer: [compactToU8a(this.length)]\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\n\n toHuman(isExtended) {\n return this.#decoded ? this.#decoded.toHuman(isExtended) : super.toHuman();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.#decoded ? this.#decoded.toPrimitive() : super.toPrimitive();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return `${this.#opaqueName}<${this.registry.getClassName(this.#Type) || (this.#decoded ? this.#decoded.toRawType() : new this.#Type(this.registry).toRawType())}>`;\n }\n /**\n * @description Converts the Object to to a string (either decoded or bytes)\n */\n\n\n toString() {\n return this.#decoded ? this.#decoded.toString() : super.toString();\n }\n /**\n * @description Returns the decoded that the WrapperKeepOpaque represents (if available), throws if non-decodable\n */\n\n\n unwrap() {\n if (!this.#decoded) {\n throw new Error(`${this.#opaqueName}: unwrapping an undecodable value`);\n }\n\n return this.#decoded;\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { WrapperKeepOpaque } from \"./WrapperKeepOpaque.js\";\nexport class WrapperOpaque extends WrapperKeepOpaque {\n constructor(registry, typeName, value) {\n super(registry, typeName, value, {\n opaqueName: 'WrapperOpaque'\n });\n }\n\n static with(Type) {\n return class extends WrapperOpaque {\n constructor(registry, value) {\n super(registry, Type, value);\n }\n\n };\n }\n /**\n * @description The inner value for this wrapper, in all cases it _should_ be decodable (unlike KeepOpaque)\n */\n\n\n get inner() {\n return this.unwrap();\n }\n\n}","// Copyright 2017-2022 @polkadot/types-create authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport let TypeDefInfo;\n\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 = {}));","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nconst 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\n\nconst mappings = [// alias ::Inherent -> InherentOfflineReport\nalias('::Inherent', 'InherentOfflineReport', false), alias('VecDeque<', 'Vec<', false), // \ncleanupCompact(), // Change BoundedVec to Vec\nremoveExtensions('Bounded', true), // Change WeakVec to Vec\nremoveExtensions('Weak', false), // Remove all the trait prefixes\nremoveTraits(), // remove PairOf -> (T, T)\nremovePairOf(), // remove boxing, `Box` -> `Proposal`\nremoveWrap('Box<'), // remove generics, `MisbehaviorReport` -> `MisbehaviorReport`\nremoveGenerics(), // alias String -> Text (compat with jsonrpc methods)\nalias('String', 'Text'), // alias Vec -> Bytes\nalias('Vec', 'Bytes'), alias('&\\\\[u8\\\\]', 'Bytes'), alias(\"&'static\\\\[u8\\\\]\", 'Bytes'), // alias RawAddress -> Address\nalias('RawAddress', 'Address'), // lookups, mapped to Address/AccountId as appropriate in runtime\nalias('Lookup::Source', 'LookupSource'), alias('Lookup::Target', 'LookupTarget'), // HACK duplication between contracts & primitives, however contracts prefixed with exec\nalias('exec::StorageKey', 'ContractStorageKey'), // flattens tuples with one value, `(AccountId)` -> `AccountId`\nflattenSingleTuple(), // converts ::Type to Type, >::Proposal -> Proposal\nremoveColons(), // remove all trailing spaces - this should always be the last\ntrim()]; // given a string, trim it\n\nexport function trim() {\n return value => value.trim();\n} // given a starting index, find the closing >\n\nexport function findClosing(value, start) {\n let depth = 0;\n\n for (let index = start; index < value.length; index++) {\n if (value[index] === '>') {\n if (!depth) {\n return index;\n }\n\n depth--;\n } else if (value[index] === '<') {\n depth++;\n }\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\n const to = src => {\n from.lastIndex = 0;\n return withChecks && BOX_PRECEDING.includes(src[0]) ? `${src[0]}${dest}` : dest;\n };\n\n return value => value.replace(from, to);\n}\nexport function cleanupCompact() {\n return value => {\n if (value.includes(' as HasCompact')) {\n for (let index = 0; index < value.length; index++) {\n if (value[index] === '<') {\n const end = findClosing(value, index + 1) - 14;\n\n if (value.substring(end, end + 14) === ' as HasCompact') {\n value = `Compact<${value.substring(index + 1, end)}>`;\n }\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 // tuples may have trailing commas, e.g. (u32, BlockNumber, )\n .replace(from1, ')') // change (u32) -> u32\n .replace(from2, '$1');\n };\n}\n\nfunction replaceTagWith(value, matcher, replacer) {\n let index = -1;\n\n while (true) {\n index = value.indexOf(matcher, index + 1);\n\n if (index === -1) {\n return value;\n }\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} // remove the Bounded* or Weak* wrappers\n\n\nexport function removeExtensions(type, isSized) {\n return value => {\n for (let i = 0; i < BOUNDED.length; i++) {\n const tag = BOUNDED[i];\n value = replaceTagWith(value, `${type}${tag}<`, v => {\n const parts = v.split(',').map(s => s.trim()).filter(s => s);\n\n if (isSized) {\n parts.pop();\n }\n\n return `${tag}<${parts.join(',')}>`;\n });\n }\n\n return value;\n };\n}\nexport function removeColons() {\n return value => {\n let index = 0;\n\n while (index !== -1) {\n index = value.indexOf('::');\n\n if (index === 0) {\n value = value.substring(2);\n } else if (index !== -1) {\n let start = index;\n\n while (start !== -1 && !BOX_PRECEDING.includes(value[start])) {\n start--;\n }\n\n value = `${value.substring(0, start + 1)}${value.substring(index + 2)}`;\n }\n }\n\n return value;\n };\n}\nexport function removeGenerics() {\n return value => {\n for (let index = 0; index < value.length; index++) {\n if (value[index] === '<') {\n // check against the allowed wrappers, be it Vec<..>, Option<...> ...\n const box = ALLOWED_BOXES.find(box => {\n const start = index - box.length;\n return start >= 0 && value.substring(start, index) === box && ( // make sure it is stand-alone, i.e. don't catch ElectionResult<...> as Result<...>\n start === 0 || BOX_PRECEDING.includes(value[start - 1]));\n }); // we have not found anything, unwrap generic innards\n\n if (!box) {\n const end = findClosing(value, index + 1);\n value = `${value.substring(0, index)}${value.substring(end + 1)}`;\n }\n }\n }\n\n return value;\n };\n} // remove the PairOf wrappers\n\nexport function removePairOf() {\n const replacer = v => `(${v},${v})`;\n\n return value => replaceTagWith(value, 'PairOf<', replacer);\n} // remove the type traits\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 = /::/g;\n const from5 = //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 // remove all whitespaces\n .replace(from1, '') // anything `T::` to end up as ``\n .replace(from2, '') // replace `::` (whitespaces were removed above)\n .replace(from3, '') // replace `::` (whitespaces were removed above)\n .replace(from4, '') // replace \n .replace(from5, 'Lookup') // replace `<...>::Type`\n .replace(from6, '');\n };\n} // remove wrapping values, i.e. Box -> Proposal\n\nexport function removeWrap(check) {\n const replacer = v => v;\n\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\n if (memoized) {\n return memoized;\n }\n\n let result = startValue;\n\n for (let i = 0; i < mappings.length; i++) {\n result = mappings[i](result);\n }\n\n sanitizeMap.set(startValue, result);\n return result;\n}","// Copyright 2017-2022 @polkadot/types-create authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { sanitize } from '@polkadot/types-codec';\nimport { isNumber, isString, objectSpread } from '@polkadot/util';\nimport { TypeDefInfo } from \"../types/index.js\";\nimport { typeSplit } from \"./typeSplit.js\";\nconst KNOWN_INTERNALS = ['_alias', '_fallback'];\n\nfunction getTypeString(typeOrObj) {\n return isString(typeOrObj) ? typeOrObj.toString() : JSON.stringify(typeOrObj);\n}\n\nfunction isRustEnum(details) {\n const values = Object.values(details);\n\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\n return false;\n }\n\n return true;\n} // decode an enum of either of the following forms\n// { _enum: ['A', 'B', 'C'] }\n// { _enum: { A: AccountId, B: Balance, C: u32 } }\n// { _enum: { A: 1, B: 2 } }\n\n\nfunction _decodeEnum(value, details, count, fallbackType) {\n value.info = TypeDefInfo.Enum;\n value.fallbackType = fallbackType; // not as pretty, but remain compatible with oo7 for both struct and Array types\n\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 } else if (isRustEnum(details)) {\n value.sub = Object.entries(details).map(([name, typeOrObj], index) => objectSpread({}, getTypeDef(getTypeString(typeOrObj || 'Null'), {\n name\n }, count), {\n 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\n return value;\n} // decode a set of the form\n// { _set: { A: 0b0001, B: 0b0010, C: 0b0100 } }\n\n\nfunction _decodeSet(value, details, fallbackType) {\n value.info = TypeDefInfo.Set;\n value.fallbackType = fallbackType;\n value.length = details._bitLength;\n value.sub = Object.entries(details).filter(([name]) => !name.startsWith('_')).map(([name, index]) => ({\n index,\n info: TypeDefInfo.Plain,\n name,\n type: 'Null'\n }));\n return value;\n} // decode a struct, set or enum\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\nfunction _decodeStruct(value, type, _, count) {\n const parsed = JSON.parse(type);\n const keys = Object.keys(parsed);\n\n if (keys.includes('_enum')) {\n return _decodeEnum(value, parsed._enum, count, parsed._fallback);\n } else if (keys.includes('_set')) {\n return _decodeSet(value, parsed._set, parsed._fallback);\n }\n\n value.alias = parsed._alias ? new Map(Object.entries(parsed._alias)) : undefined;\n value.fallbackType = parsed._fallback;\n value.sub = keys.filter(name => !KNOWN_INTERNALS.includes(name)).map(name => getTypeDef(getTypeString(parsed[name]), {\n name\n }, count));\n return value;\n} // decode a fixed vector, e.g. [u8;32]\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\nfunction _decodeFixedVec(value, type, _, count) {\n const max = type.length - 1;\n let index = -1;\n let inner = 0;\n\n for (let i = 1; i < max && index === -1; i++) {\n switch (type[i]) {\n case ';':\n {\n if (inner === 0) {\n index = i;\n }\n\n break;\n }\n\n case '[':\n case '(':\n case '<':\n inner++;\n break;\n\n case ']':\n case ')':\n case '>':\n inner--;\n break;\n }\n }\n\n if (index === -1) {\n throw new Error(`${type}: Unable to extract location of ';'`);\n }\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\n if (length > 2048) {\n throw new Error(`${type}: Only support for [Type; ], where length <= 2048`);\n }\n\n value.displayName = displayName;\n value.length = length;\n value.sub = getTypeDef(vecType, {}, count);\n return value;\n} // decode a tuple\n\n\nfunction _decodeTuple(value, _, subType, count) {\n value.sub = subType.length === 0 ? [] : typeSplit(subType).map(inner => getTypeDef(inner, {}, count));\n return value;\n} // decode a Int/UInt\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\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\n if (length > 8192 || length % 8) {\n throw new Error(`${type}: Only support for ${clazz}, where length <= 8192 and a power of 8, found ${length}`);\n }\n\n value.displayName = displayName;\n value.length = length;\n return value;\n}\n\nfunction _decodeInt(value, type, subType) {\n return _decodeAnyInt(value, type, subType, 'Int');\n}\n\nfunction _decodeUInt(value, type, subType) {\n return _decodeAnyInt(value, type, subType, 'UInt');\n} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\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}\n\nfunction hasWrapper(type, [start, end]) {\n return type.substring(0, start.length) === start && type.slice(-1 * end.length) === end;\n}\n\nconst nestedExtraction = [['[', ']', TypeDefInfo.VecFixed, _decodeFixedVec], ['{', '}', TypeDefInfo.Struct, _decodeStruct], ['(', ')', TypeDefInfo.Tuple, _decodeTuple], // the inner for these are the same as tuple, multiple values\n['BTreeMap<', '>', TypeDefInfo.BTreeMap, _decodeTuple], ['HashMap<', '>', TypeDefInfo.HashMap, _decodeTuple], ['Int<', '>', TypeDefInfo.Int, _decodeInt], ['Result<', '>', TypeDefInfo.Result, _decodeTuple], ['UInt<', '>', TypeDefInfo.UInt, _decodeUInt], ['DoNotConstruct<', '>', TypeDefInfo.DoNotConstruct, _decodeDoNotConstruct]];\nconst wrappedExtraction = [['BTreeSet<', '>', TypeDefInfo.BTreeSet], ['Compact<', '>', TypeDefInfo.Compact], ['Linkage<', '>', TypeDefInfo.Linkage], ['Opaque<', '>', TypeDefInfo.WrapperOpaque], ['Option<', '>', TypeDefInfo.Option], ['Range<', '>', TypeDefInfo.Range], ['RangeInclusive<', '>', TypeDefInfo.RangeInclusive], ['Vec<', '>', TypeDefInfo.Vec], ['WrapperKeepOpaque<', '>', TypeDefInfo.WrapperKeepOpaque], ['WrapperOpaque<', '>', TypeDefInfo.WrapperOpaque]];\n\nfunction extractSubType(type, [start, end]) {\n return type.substring(start.length, type.length - end.length);\n}\n\nexport function getTypeDef(_type, {\n displayName,\n name\n} = {}, count = 0) {\n // create the type via Type, allowing types to be sanitized\n const type = sanitize(_type);\n const value = {\n displayName,\n info: TypeDefInfo.Plain,\n name,\n type\n };\n\n if (++count > 64) {\n throw new Error('getTypeDef: Maximum nested limit reached');\n }\n\n const nested = nestedExtraction.find(nested => hasWrapper(type, nested));\n\n if (nested) {\n value.info = nested[2];\n return nested[3](value, type, extractSubType(type, nested), count);\n }\n\n const wrapped = wrappedExtraction.find(wrapped => hasWrapper(type, wrapped));\n\n if (wrapped) {\n value.info = wrapped[2];\n value.sub = getTypeDef(extractSubType(type, wrapped), {}, count);\n }\n\n return value;\n}","// Copyright 2017-2022 @polkadot/types-create authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// safely split a string on ', ' while taking care of any nested occurences\nexport function typeSplit(type) {\n const result = []; // these are the depths of the various tokens: <, [, {, (\n\n let c = 0;\n let f = 0;\n let s = 0;\n let t = 0; // current start position\n\n let start = 0;\n\n for (let i = 0; i < type.length; i++) {\n switch (type[i]) {\n // if we are not nested, add the type\n case ',':\n {\n if (!(c || f || s || t)) {\n result.push(type.substring(start, i).trim());\n start = i + 1;\n }\n\n break;\n }\n // adjust compact/vec (and friends) depth\n\n case '<':\n c++;\n break;\n\n case '>':\n c--;\n break;\n // adjust fixed vec depths\n\n case '[':\n f++;\n break;\n\n case ']':\n f--;\n break;\n // adjust struct depth\n\n case '{':\n s++;\n break;\n\n case '}':\n s--;\n break;\n // adjust tuple depth\n\n case '(':\n t++;\n break;\n\n case ')':\n t--;\n break;\n }\n } // ensure we have all the terminators taken care of\n\n\n if (c || f || s || t) {\n throw new Error(`Invalid definition (missing terminators) found in ${type}`);\n } // the final leg of the journey\n\n\n result.push(type.substring(start, type.length).trim());\n return result;\n}","// Copyright 2017-2022 @polkadot/types-create authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\";\n\nfunction getTypeDefType({\n lookupName,\n type\n}) {\n return lookupName || type;\n}\n\nfunction getSubDefArray(value) {\n if (!Array.isArray(value.sub)) {\n throw new Error(`Expected subtype as TypeDef[] in ${stringify(value)}`);\n }\n\n return value.sub;\n}\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\n return value.sub;\n}\n\nfunction getSubType(value) {\n return getTypeDefType(getSubDef(value));\n} // create a maps of type string CodecClasss from the input\n\n\nfunction getTypeClassMap(value) {\n const subs = getSubDefArray(value);\n const map = {};\n\n for (let i = 0; i < subs.length; i++) {\n map[subs[i].name] = getTypeDefType(subs[i]);\n }\n\n return map;\n} // create an array of type string CodecClasss from the input\n\n\nfunction getTypeClassArray(value) {\n return getSubDefArray(value).map(getTypeDefType);\n}\n\nfunction createInt(Clazz, {\n displayName,\n length\n}) {\n if (!isNumber(length)) {\n throw new Error(`Expected bitLength information for ${displayName || Clazz.constructor.name}`);\n }\n\n return Clazz.with(length, displayName);\n}\n\nfunction createHashMap(Clazz, value) {\n const [keyType, valueType] = getTypeClassArray(value);\n return Clazz.with(keyType, valueType);\n}\n\nfunction createWithSub(Clazz, value) {\n return Clazz.with(getSubType(value));\n}\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(({\n type\n }) => type === 'Null') ? subs.reduce((out, {\n index,\n name\n }, count) => {\n out[name] = index || count;\n return out;\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)}>`; // eslint-disable-next-line sort-keys\n\n const Clazz = Struct.with({\n previous: type,\n next: type\n }); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\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\n return Clazz;\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n [TypeDefInfo.Null]: (registry, _) => Null,\n [TypeDefInfo.Option]: (registry, value) => {\n if (!value.sub || Array.isArray(value.sub)) {\n throw new Error('Expected type information for Option');\n } // NOTE This is opt-in (unhandled), not by default\n // if (value.sub.type === 'bool') {\n // return OptionBool;\n // }\n\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); // eslint-disable-next-line @typescript-eslint/no-use-before-define\n\n return Result.with({\n Err,\n Ok\n });\n },\n [TypeDefInfo.Set]: (registry, value) => CodecSet.with(getSubDefArray(value).reduce((result, {\n index,\n name\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, {\n sub\n }) => {\n if (!sub || Array.isArray(sub)) {\n throw new Error('Expected type information for vector');\n }\n\n return sub.type === 'u8' ? Bytes : Vec.with(getTypeDefType(sub));\n },\n [TypeDefInfo.VecFixed]: (registry, {\n displayName,\n length,\n sub\n }) => {\n if (!isNumber(length) || !sub || Array.isArray(sub)) {\n throw new Error('Expected length & type information for fixed vector');\n }\n\n return sub.type === 'u8' ? U8aFixed.with(length * 8, displayName) : 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\n if (!Type) {\n throw new Error('No class created');\n } // don't clobber any existing\n\n\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\n return Type;\n } catch (error) {\n throw new Error(`Unable to construct class from ${stringify(typeDef)}: ${error.message}`);\n }\n} // Returns the type Class for construction\n\nexport function getTypeClass(registry, typeDef) {\n return registry.getUnsafe(typeDef.type, false, typeDef);\n}\nexport function createClassUnsafe(registry, type) {\n return (// just retrieve via name, no creation via typeDef\n registry.getUnsafe(type) || // we don't have an existing type, create the class via typeDef\n getTypeClass(registry, registry.isLookupType(type) ? registry.lookup.getTypeDef(type) : getTypeDef(type))\n );\n}","// Copyright 2017-2022 @polkadot/types-create authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Option } from '@polkadot/types-codec';\nimport { isHex, isU8a, u8aEq, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { createClassUnsafe } from \"./class.js\"; // With isPedantic, actually check that the encoding matches that supplied. This\n// is much slower, but verifies that we have the correct types defined\n\nfunction checkInstance(created, matcher) {\n const u8a = created.toU8a();\n const rawType = created.toRawType();\n const isOk = // full match, all ok\n u8aEq(u8a, matcher) || // on a length-prefixed type, just check the actual length\n ['Bytes', 'Text', 'Type'].includes(rawType) && matcher.length === created.length || // when the created is empty and matcher is also empty, let it slide...\n created.isEmpty && matcher.every(v => !v);\n\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}\n\nfunction checkPedantic(created, [value]) {\n if (isU8a(value)) {\n checkInstance(created, value);\n } else if (isHex(value)) {\n checkInstance(created, u8aToU8a(value));\n }\n} // Initializes a type with a value. This also checks for fallbacks and in the cases\n// where isPedantic is specified (storage decoding), also check the format/structure\n\n\nfunction initType(registry, Type, params = [], {\n blockHash,\n isOptional,\n isPedantic\n} = {}) {\n const created = new (isOptional ? Option.with(Type) : Type)(registry, ...params);\n isPedantic && checkPedantic(created, params);\n\n if (blockHash) {\n created.createdAtHash = createTypeUnsafe(registry, 'Hash', [blockHash]);\n }\n\n return created;\n} // An unsafe version of the `createType` below. It's unsafe because the `type`\n// argument here can be any string, which, when it cannot parse, will yield a\n// runtime error.\n\n\nexport function createTypeUnsafe(registry, type, params = [], options = {}) {\n let Clazz = null;\n let firstError = null;\n\n try {\n Clazz = createClassUnsafe(registry, type);\n return initType(registry, Clazz, params, options);\n } catch (error) {\n firstError = new Error(`createType(${type}):: ${error.message}`);\n }\n\n if (Clazz && Clazz.__fallbackType) {\n try {\n Clazz = createClassUnsafe(registry, Clazz.__fallbackType);\n return initType(registry, Clazz, params, options);\n } catch {// swallow, we will throw the first error again\n }\n }\n\n throw firstError;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 ? getName(item, index) : 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\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, {\n value\n });\n } catch {// 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\n return value;\n }\n });\n}\n/**\n * @name lazyMethods\n * @description\n * Creates lazy, on-demand getters for the specific values.\n */\n\nexport function lazyMethods(result, items, creator, getName) {\n for (let i = 0; i < items.length; i++) {\n lazyMethod(result, items[i], creator, getName, i);\n }\n\n return result;\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isFunction } from \"./is/function.js\";\n\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 *
\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) ? message() : message);\n }\n}\n/**\n * @name assertReturn\n * @description Returns when the value is not undefined/null, otherwise throws assertion error\n */\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 */\n\nexport function assertUnreachable(x) {\n throw new Error(`This codepath should be unreachable. Unhandled input: ${x}`);\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const emptyCheck = {\n extrinsic: {},\n payload: {}\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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'\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'\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util';\nimport { polkadot } from \"./polkadot.js\";\nimport { shell } from \"./shell.js\";\nimport { statemint } from \"./statemint.js\";\nimport { substrate } from \"./substrate.js\"; // A mapping of the known signed extensions to the extra fields that they\n// contain. Unlike in the actual extensions, we define the extra fields not\n// as a Tuple, but rather as a struct so they can be named. These will be\n// expanded into the various fields when added to the payload (we only\n// support V4 onwards with these, V3 and earlier are deemed fixed))\n\nexport const allExtensions = objectSpread({}, substrate, polkadot, shell, statemint); // the v4 signed extensions prior to the point of exposing these to the\n// metadata. This may not match 100% with the current defaults and are used\n// when not specified in the metadata (which is for very old chains). The\n// order is important here, as applied by default\n\nexport const fallbackExtensions = ['CheckVersion', 'CheckGenesis', 'CheckEra', 'CheckNonce', 'CheckWeight', 'ChargeTransactionPayment', 'CheckBlockGasLimit'];\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 // Always allow user extensions first - these should provide overrides\n .map(k => userExtensions[k] || allExtensions[k]).filter(info => !!info).reduce((result, info) => objectSpread(result, info[type]), {});\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { emptyCheck } from \"./emptyCheck.js\";\nexport const shell = {\n DisallowSigned: emptyCheck\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const statemint = {\n ChargeAssetTxPayment: {\n extrinsic: {\n tip: 'Compact',\n // eslint-disable-next-line sort-keys\n assetId: 'Option'\n },\n payload: {}\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Null, Struct, Tuple } from '@polkadot/types-codec';\nimport { objectProperties, objectSpread } from '@polkadot/util';\n\n/** @internal */\nfunction decodeEvent(registry, value) {\n if (!value || !value.length) {\n return {\n DataType: Null\n };\n }\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 */\n\n\nexport class GenericEventData extends Tuple {\n #meta;\n #method;\n #names = null;\n #section;\n #typeDef;\n\n constructor(registry, value, meta, section = '', method = '') {\n const fields = (meta === null || meta === void 0 ? void 0 : meta.fields) || [];\n super(registry, fields.map(({\n type\n }) => registry.createLookupType(type)), value);\n this.#meta = meta;\n this.#method = method;\n this.#section = section;\n this.#typeDef = fields.map(({\n type\n }) => registry.lookup.getTypeDef(type));\n const names = fields.map(({\n name\n }) => registry.lookup.sanitizeField(name)[0]).filter(n => !!n);\n\n if (names.length === fields.length) {\n this.#names = names;\n objectProperties(this, names, (_, i) => this[i]);\n }\n }\n /**\n * @description The wrapped [[EventMetadata]]\n */\n\n\n get meta() {\n return this.#meta;\n }\n /**\n * @description The method as a string\n */\n\n\n get method() {\n return this.#method;\n }\n /**\n * @description The field names (as available)\n */\n\n\n get names() {\n return this.#names;\n }\n /**\n * @description The section as a string\n */\n\n\n get section() {\n return this.#section;\n }\n /**\n * @description The [[TypeDef]] for this event\n */\n\n\n get typeDef() {\n return this.#typeDef;\n }\n /**\n * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n */\n\n\n toHuman(isExtended) {\n if (this.#names !== null) {\n const json = {};\n\n for (let i = 0; i < this.#names.length; i++) {\n json[this.#names[i]] = this[i].toHuman(isExtended);\n }\n\n return json;\n }\n\n return super.toHuman(isExtended);\n }\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 */\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 {\n DataType,\n value\n } = 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\n\n get data() {\n return this.getT('data');\n }\n /**\n * @description The [[EventId]], identifying the raw event\n */\n\n\n get index() {\n return this.getT('index');\n }\n /**\n * @description The [[EventMetadata]] with the documentation\n */\n\n\n get meta() {\n return this.data.meta;\n }\n /**\n * @description The method string identifying the event\n */\n\n\n get method() {\n return this.data.method;\n }\n /**\n * @description The section string identifying the event\n */\n\n\n get section() {\n return this.data.section;\n }\n /**\n * @description The [[TypeDef]] for the event\n */\n\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\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}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @name Base\n * @description A type extends the Base class, when it holds a value\n */\nexport class AbstractBase {\n #raw;\n\n constructor(registry, value, initialU8aLength) {\n this.#raw = value;\n this.initialU8aLength = initialU8aLength;\n this.registry = registry;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return this.toU8a().length;\n }\n /**\n * @description returns a hash of the contents\n */\n\n\n get hash() {\n return this.registry.hash(this.toU8a());\n }\n\n get inner() {\n return this.#raw;\n }\n /**\n * @description Checks if the value is an empty value\n */\n\n\n get isEmpty() {\n return this.#raw.isEmpty;\n }\n /**\n * @description Compares the value of the input to see if there is a match\n */\n\n\n eq(other) {\n return this.#raw.eq(other);\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n return this.#raw.inspect();\n }\n /**\n * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation\n */\n\n\n toHex(isLe) {\n return this.#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\n\n toHuman(isExtended) {\n return this.#raw.toHuman(isExtended);\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.#raw.toJSON();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.#raw.toPrimitive();\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return this.#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\n\n toU8a(isBare) {\n return this.#raw.toU8a(isBare);\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return 'Base';\n }\n\n unwrap() {\n return this.#raw;\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Struct } from '@polkadot/types-codec';\nimport { isU8a } from '@polkadot/util';\nexport const EXTRINSIC_VERSION = 4;\n\n/**\n * @name GenericExtrinsicV4\n * @description\n * The third generation of compact extrinsics\n */\nexport class GenericExtrinsicV4 extends Struct {\n constructor(registry, value, {\n isSigned\n } = {}) {\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\n\n static decodeExtrinsic(registry, value, isSigned = false) {\n if (value instanceof GenericExtrinsicV4) {\n return value;\n } else if (value instanceof registry.createClassUnsafe('Call')) {\n return {\n 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, {\n isSigned\n }]);\n const method = registry.createTypeUnsafe('Call', [value.subarray(signature.encodedLength)]);\n return {\n method,\n signature\n };\n }\n\n return value || {};\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return this.toU8a().length;\n }\n /**\n * @description The [[Call]] this extrinsic wraps\n */\n\n\n get method() {\n return this.getT('method');\n }\n /**\n * @description The [[ExtrinsicSignatureV4]]\n */\n\n\n get signature() {\n return this.getT('signature');\n }\n /**\n * @description The version for the signature\n */\n\n\n get version() {\n return EXTRINSIC_VERSION;\n }\n /**\n * @description Add an [[ExtrinsicSignatureV4]] to the extrinsic (already generated)\n */\n\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\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\n\n signFake(signer, options) {\n this.signature.signFake(this.method, signer, options);\n return this;\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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;","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 = ['ExtrinsicUnknown', // v0 is unknown\n'ExtrinsicUnknown', 'ExtrinsicUnknown', 'ExtrinsicUnknown', 'ExtrinsicV4'];\nexport { LATEST_EXTRINSIC_VERSION };\n/** @internal */\n\nfunction newFromValue(registry, value, version) {\n if (value instanceof GenericExtrinsic) {\n return value.unwrap();\n }\n\n const isSigned = (version & BIT_SIGNED) === BIT_SIGNED;\n const type = VERSIONS[version & UNMASK_VERSION] || VERSIONS[0]; // 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\n return registry.createTypeUnsafe(type, [value, {\n isSigned,\n version\n }]);\n}\n/** @internal */\n\n\nfunction decodeExtrinsic(registry, value, version = DEFAULT_VERSION) {\n if (isU8a(value) || Array.isArray(value) || isHex(value)) {\n return decodeU8a(registry, u8aToU8a(value), version);\n } else if (value instanceof registry.createClassUnsafe('Call')) {\n return newFromValue(registry, {\n method: value\n }, version);\n }\n\n return newFromValue(registry, value, version);\n}\n/** @internal */\n\n\nfunction decodeU8a(registry, value, version) {\n if (!value.length) {\n return newFromValue(registry, new Uint8Array(), version);\n }\n\n const [offset, length] = compactFromU8a(value);\n const total = offset + length.toNumber();\n\n if (total > value.length) {\n throw new Error(`Extrinsic: length less than remainder, expected at least ${total}, found ${value.length}`);\n }\n\n const data = value.subarray(offset, total);\n return newFromValue(registry, data.subarray(1), data[0]);\n}\n\nclass ExtrinsicBase extends AbstractBase {\n constructor(registry, value, initialU8aLength) {\n super(registry, value, initialU8aLength);\n const signKeys = Object.keys(registry.getSignedExtensionTypes());\n\n const getter = key => this.inner.signature[key]; // 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\n\n for (let i = 0; i < signKeys.length; 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\n\n get args() {\n return this.method.args;\n }\n /**\n * @description The argument definitions, compatible with [[Call]]\n */\n\n\n get argsDef() {\n return this.method.argsDef;\n }\n /**\n * @description The actual `[sectionIndex, methodIndex]` as used in the Call\n */\n\n\n get callIndex() {\n return this.method.callIndex;\n }\n /**\n * @description The actual data for the Call\n */\n\n\n get data() {\n return this.method.data;\n }\n /**\n * @description The era for this extrinsic\n */\n\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\n\n get encodedLength() {\n return this.toU8a().length;\n }\n /**\n * @description `true` id the extrinsic is signed\n */\n\n\n get isSigned() {\n return this.inner.signature.isSigned;\n }\n /**\n * @description The length of the actual data, excluding prefix\n */\n\n\n get length() {\n return this.toU8a(true).length;\n }\n /**\n * @description The [[FunctionMetadataLatest]] that describes the extrinsic\n */\n\n\n get meta() {\n return this.method.meta;\n }\n /**\n * @description The [[Call]] this extrinsic wraps\n */\n\n\n get method() {\n return this.inner.method;\n }\n /**\n * @description The nonce for this extrinsic\n */\n\n\n get nonce() {\n return this.inner.signature.nonce;\n }\n /**\n * @description The actual [[EcdsaSignature]], [[Ed25519Signature]] or [[Sr25519Signature]]\n */\n\n\n get signature() {\n return this.inner.signature.signature;\n }\n /**\n * @description The [[Address]] that signed\n */\n\n\n get signer() {\n return this.inner.signature.signer;\n }\n /**\n * @description Forwards compat\n */\n\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\n\n get type() {\n return this.inner.version;\n }\n\n get inner() {\n return this.unwrap();\n }\n /**\n * @description Returns the encoded version flag\n */\n\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\n\n is(other) {\n return this.method.is(other);\n }\n\n unwrap() {\n return super.unwrap();\n }\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 */\n\n\nexport class GenericExtrinsic extends ExtrinsicBase {\n #hashCache;\n static LATEST_EXTRINSIC_VERSION = LATEST_EXTRINSIC_VERSION;\n\n constructor(registry, value, {\n version\n } = {}) {\n super(registry, decodeExtrinsic(registry, value, version));\n }\n /**\n * @description returns a hash of the contents\n */\n\n\n get hash() {\n if (!this.#hashCache) {\n this.#hashCache = super.hash;\n }\n\n return this.#hashCache;\n }\n /**\n * @description Injects an already-generated signature into the extrinsic\n */\n\n\n addSignature(signer, signature, payload) {\n this.inner.addSignature(signer, signature, payload);\n this.#hashCache = undefined;\n return this;\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n const encoded = u8aConcat(...this.toU8aInner());\n return {\n inner: this.isSigned ? this.inner.inspect().inner : 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\n\n sign(account, options) {\n this.inner.sign(account, options);\n this.#hashCache = undefined;\n return this;\n }\n /**\n * @describe Adds a fake signature to the extrinsic\n */\n\n\n signFake(signer, options) {\n this.inner.signFake(signer, options);\n this.#hashCache = undefined;\n return this;\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\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\n\n toHuman(isExpanded) {\n return objectSpread({}, {\n isSigned: this.isSigned,\n method: this.method.toHuman(isExpanded)\n }, this.isSigned ? {\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 } : null);\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.toHex();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\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\n\n toU8a(isBare) {\n const encoded = u8aConcat(...this.toU8aInner());\n return isBare ? encoded : compactAddLength(encoded);\n }\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 [new Uint8Array([this.version]), this.inner.toU8a()];\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { UInt } from \"../base/UInt.js\";\n/**\n * @name u64\n * @description\n * A 64-bit unsigned integer\n */\n\nexport class u64 extends UInt.with(64) {\n // NOTE without this, we cannot properly determine extensions\n __UIntType = 'u64';\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\";\n\nfunction getTrailingZeros(period) {\n const binary = period.toString(2);\n let index = 0;\n\n while (binary[binary.length - 1 - index] === '0') {\n index++;\n }\n\n return index;\n}\n/** @internal */\n\n\nfunction decodeMortalEra(registry, value) {\n if (isU8a(value) || isHex(value) || Array.isArray(value)) {\n return decodeMortalU8a(registry, u8aToU8a(value));\n } else if (!value) {\n return [new U64(registry), new U64(registry)];\n } else if (isObject(value)) {\n return decodeMortalObject(registry, value);\n }\n\n throw new Error('Invalid data passed to Mortal era');\n}\n/** @internal */\n\n\nfunction decodeMortalObject(registry, value) {\n const {\n current,\n period\n } = 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 */\n\n\nfunction decodeMortalU8a(registry, value) {\n if (value.length === 0) {\n return [new U64(registry), new U64(registry)];\n }\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\n if (period < 4 || phase >= period) {\n throw new Error('Invalid data passed to Mortal era');\n }\n\n return [new U64(registry, period), new U64(registry, phase)];\n}\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction decodeExtrinsicEra(value = new Uint8Array()) {\n if (isU8a(value)) {\n return !value.length || value[0] === 0 ? new Uint8Array([0]) : new Uint8Array([1, value[0], value[1]]);\n } else if (!value) {\n return new Uint8Array([0]);\n } else if (value instanceof GenericExtrinsicEra) {\n return decodeExtrinsicEra(value.toU8a());\n } else if (isHex(value)) {\n return decodeExtrinsicEra(hexToU8a(value));\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'); // this is to de-serialize from JSON\n\n return mortal ? {\n MortalEra: mortal[1]\n } : immortal ? {\n ImmortalEra: immortal[1]\n } : {\n MortalEra: value\n };\n }\n\n throw new Error('Invalid data passed to Era');\n}\n/**\n * @name ImmortalEra\n * @description\n * The ImmortalEra for an extrinsic\n */\n\n\nexport class ImmortalEra extends Raw {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\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/**\n * @name MortalEra\n * @description\n * The MortalEra for an extrinsic, indicating period and phase\n */\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\n\n get encodedLength() {\n return 2;\n }\n /**\n * @description The period of this Mortal wraps as a [[U64]]\n */\n\n\n get period() {\n return this[0];\n }\n /**\n * @description The phase of this Mortal wraps as a [[U64]]\n */\n\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\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\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\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([encoded & 0xff, encoded >> 8]);\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\n\n birth(current) {\n const phase = this.phase.toNumber();\n const period = this.period.toNumber(); // FIXME No toNumber() here\n\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\n\n death(current) {\n // FIXME No toNumber() here\n return this.birth(current) + this.period.toNumber();\n }\n\n}\n/**\n * @name GenericExtrinsicEra\n * @description\n * The era for an extrinsic, indicating either a mortal or immortal extrinsic\n */\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\n\n get encodedLength() {\n return this.isImmortalEra ? this.asImmortalEra.encodedLength : this.asMortalEra.encodedLength;\n }\n /**\n * @description Returns the item as a [[ImmortalEra]]\n */\n\n\n get asImmortalEra() {\n if (!this.isImmortalEra) {\n throw new Error(`Cannot convert '${this.type}' via asImmortalEra`);\n }\n\n return this.inner;\n }\n /**\n * @description Returns the item as a [[MortalEra]]\n */\n\n\n get asMortalEra() {\n if (!this.isMortalEra) {\n throw new Error(`Cannot convert '${this.type}' via asMortalEra`);\n }\n\n return this.inner;\n }\n /**\n * @description `true` if Immortal\n */\n\n\n get isImmortalEra() {\n return this.index === 0;\n }\n /**\n * @description `true` if Mortal\n */\n\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\n\n toU8a(isBare) {\n return this.isMortalEra ? this.asMortalEra.toU8a(isBare) : this.asImmortalEra.toU8a(isBare);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { AbstractBase } from '@polkadot/types-codec';\nimport { u8aToHex } from '@polkadot/util';\nimport { DEFAULT_VERSION } from \"./constants.js\";\nconst VERSIONS = ['ExtrinsicPayloadUnknown', // v0 is unknown\n'ExtrinsicPayloadUnknown', 'ExtrinsicPayloadUnknown', 'ExtrinsicPayloadUnknown', 'ExtrinsicPayloadV4'];\n/** @internal */\n\nfunction decodeExtrinsicPayload(registry, value, version = DEFAULT_VERSION) {\n if (value instanceof GenericExtrinsicPayload) {\n return value.unwrap();\n }\n\n return registry.createTypeUnsafe(VERSIONS[version] || VERSIONS[0], [value, {\n version\n }]);\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 */\n\n\nexport class GenericExtrinsicPayload extends AbstractBase {\n constructor(registry, value, {\n version\n } = {}) {\n super(registry, decodeExtrinsicPayload(registry, value, version));\n }\n /**\n * @description The block [[Hash]] the signature applies to (mortal/immortal)\n */\n\n\n get blockHash() {\n return this.inner.blockHash;\n }\n /**\n * @description The [[ExtrinsicEra]]\n */\n\n\n get era() {\n return this.inner.era;\n }\n /**\n * @description The genesis block [[Hash]] the signature applies to\n */\n\n\n get genesisHash() {\n // NOTE only v3+\n return this.inner.genesisHash || this.registry.createTypeUnsafe('Hash', []);\n }\n /**\n * @description The [[Raw]] contained in the payload\n */\n\n\n get method() {\n return this.inner.method;\n }\n /**\n * @description The [[Index]]\n */\n\n\n get nonce() {\n return this.inner.nonce;\n }\n /**\n * @description The specVersion as a [[u32]] for this payload\n */\n\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\n\n get tip() {\n // NOTE from v2+\n return this.inner.tip || this.registry.createTypeUnsafe('Compact', []);\n }\n /**\n * @description The transaction version as a [[u32]] for this payload\n */\n\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\n\n eq(other) {\n return this.inner.eq(other);\n }\n /**\n * @description Sign the payload with the keypair\n */\n\n\n sign(signerPair) {\n const signature = this.inner.sign(signerPair); // 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\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\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\n\n toJSON() {\n return this.toHex();\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return this.toHex();\n }\n /**\n * @description Returns a serialized u8a form\n */\n\n\n toU8a(isBare) {\n // call our parent, with only the method stripped\n return super.toU8a(isBare ? {\n method: true\n } : false);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nexport class GenericExtrinsicPayloadUnknown extends Struct {\n constructor(registry, value, {\n version = 0\n } = {}) {\n super(registry, {});\n throw new Error(`Unsupported extrinsic payload version ${version}`);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nexport class GenericExtrinsicUnknown extends Struct {\n constructor(registry, value, {\n isSigned = false,\n version = 0\n } = {}) {\n super(registry, {});\n throw new Error(`Unsupported ${isSigned ? '' : 'un'}signed extrinsic version ${version & UNMASK_VERSION}`);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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',\n runtimeVersion: 'RuntimeVersion',\n signedExtensions: 'Vec',\n tip: 'Compact',\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 */\n\nexport class GenericSignerPayload extends Struct {\n #extraTypes;\n\n constructor(registry, value) {\n const extensionTypes = objectSpread({}, registry.getSignedExtensionTypes(), registry.getSignedExtensionExtra());\n super(registry, objectSpread({}, extensionTypes, knownTypes), value);\n this.#extraTypes = {};\n\n const getter = key => this.get(key); // add all extras that are not in the base types\n\n\n for (const [key, type] of Object.entries(extensionTypes)) {\n if (!knownTypes[key]) {\n this.#extraTypes[key] = type;\n }\n\n objectProperty(this, key, getter);\n }\n }\n\n get address() {\n return this.getT('address');\n }\n\n get blockHash() {\n return this.getT('blockHash');\n }\n\n get blockNumber() {\n return this.getT('blockNumber');\n }\n\n get era() {\n return this.getT('era');\n }\n\n get genesisHash() {\n return this.getT('genesisHash');\n }\n\n get method() {\n return this.getT('method');\n }\n\n get nonce() {\n return this.getT('nonce');\n }\n\n get runtimeVersion() {\n return this.getT('runtimeVersion');\n }\n\n get signedExtensions() {\n return this.getT('signedExtensions');\n }\n\n get tip() {\n return this.getT('tip');\n }\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\n\n toPayload() {\n const result = {};\n const keys = Object.keys(this.#extraTypes); // add any explicit overrides we may have\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = this.get(key);\n const isOption = value instanceof Option; // Don't include Option.isNone\n\n if (!isOption || value.isSome) {\n result[key] = value.toHex();\n }\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\n\n toRaw() {\n const payload = this.toPayload();\n const data = u8aToHex(this.registry.createTypeUnsafe('ExtrinsicPayload', [payload, {\n version: payload.version\n }]) // NOTE Explicitly pass the bare flag so the method is encoded un-prefixed (non-decodable, for signing only)\n .toU8a({\n method: true\n }));\n return {\n address: payload.address,\n data,\n type: 'payload'\n };\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nexport class GenericExtrinsicPayloadV4 extends Struct {\n #signOptions;\n\n constructor(registry, value) {\n super(registry, objectSpread({\n method: 'Bytes'\n }, registry.getSignedExtensionTypes(), registry.getSignedExtensionExtra()), value); // 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\n this.#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\n\n inspect() {\n return super.inspect({\n method: true\n });\n }\n /**\n * @description The block [[Hash]] the signature applies to (mortal/immortal)\n */\n\n\n get blockHash() {\n return this.getT('blockHash');\n }\n /**\n * @description The [[ExtrinsicEra]]\n */\n\n\n get era() {\n return this.getT('era');\n }\n /**\n * @description The genesis [[Hash]] the signature applies to (mortal/immortal)\n */\n\n\n get genesisHash() {\n return this.getT('genesisHash');\n }\n /**\n * @description The [[Bytes]] contained in the payload\n */\n\n\n get method() {\n return this.getT('method');\n }\n /**\n * @description The [[Index]]\n */\n\n\n get nonce() {\n return this.getT('nonce');\n }\n /**\n * @description The specVersion for this signature\n */\n\n\n get specVersion() {\n return this.getT('specVersion');\n }\n /**\n * @description The tip [[Balance]]\n */\n\n\n get tip() {\n return this.getT('tip');\n }\n /**\n * @description The transactionVersion for this signature\n */\n\n\n get transactionVersion() {\n return this.getT('transactionVersion');\n }\n /**\n * @description\n * The (optional) asset id for this signature for chains that support transaction fees in assets\n */\n\n\n get assetId() {\n return this.getT('assetId');\n }\n /**\n * @description Sign the payload with the keypair\n */\n\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, carrythis comment\n return sign(this.registry, signerPair, this.toU8a({\n method: true\n }), this.#signOptions);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// a helper function for both types of payloads, Raw and metadata-known\nexport function sign(registry, signerPair, u8a, options) {\n const encoded = u8a.length > 256 ? registry.hash(u8a) : u8a;\n return signerPair.sign(encoded, options);\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\"; // Ensure we have enough data for all types of signatures\n\nconst FAKE_SIGNATURE = new Uint8Array(256).fill(1);\n\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 */\n\n\nexport class GenericExtrinsicSignatureV4 extends Struct {\n #signKeys;\n\n constructor(registry, value, {\n isSigned\n } = {}) {\n const signTypes = registry.getSignedExtensionTypes();\n super(registry, objectSpread( // eslint-disable-next-line sort-keys\n {\n signer: 'Address',\n signature: 'ExtrinsicSignature'\n }, signTypes), GenericExtrinsicSignatureV4.decodeExtrinsicSignature(value, isSigned));\n this.#signKeys = Object.keys(signTypes);\n objectProperties(this, this.#signKeys, k => this.get(k));\n }\n /** @internal */\n\n\n static decodeExtrinsicSignature(value, isSigned = false) {\n if (!value) {\n return EMPTY_U8A;\n } else if (value instanceof GenericExtrinsicSignatureV4) {\n return value;\n }\n\n return isSigned ? value : EMPTY_U8A;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return this.isSigned ? super.encodedLength : 0;\n }\n /**\n * @description `true` if the signature is valid\n */\n\n\n get isSigned() {\n return !this.signature.isEmpty;\n }\n /**\n * @description The [[ExtrinsicEra]] (mortal or immortal) this signature applies to\n */\n\n\n get era() {\n return this.getT('era');\n }\n /**\n * @description The [[Index]] for the signature\n */\n\n\n get nonce() {\n return this.getT('nonce');\n }\n /**\n * @description The actual [[EcdsaSignature]], [[Ed25519Signature]] or [[Sr25519Signature]]\n */\n\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\n\n get multiSignature() {\n return this.getT('signature');\n }\n /**\n * @description The [[Address]] that signed\n */\n\n\n get signer() {\n return this.getT('signer');\n }\n /**\n * @description The [[Balance]] tip\n */\n\n\n get tip() {\n return this.getT('tip');\n }\n\n _injectSignature(signer, signature, payload) {\n // use the fields exposed to guide the getters\n for (let i = 0; i < this.#signKeys.length; i++) {\n const k = this.#signKeys[i];\n const v = payload.get(k);\n\n if (!isUndefined(v)) {\n this.set(k, v);\n }\n } // additional fields (exposed in struct itself)\n\n\n this.set('signer', signer);\n this.set('signature', signature);\n return this;\n }\n /**\n * @description Adds a raw signature\n */\n\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\n\n createPayload(method, options) {\n const {\n era,\n runtimeVersion: {\n specVersion,\n transactionVersion\n }\n } = 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\n\n sign(method, account, options) {\n if (!account || !account.addressRaw) {\n throw new Error(`Expected a valid keypair for signing, found ${stringify(account)}`);\n }\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\n\n signFake(method, address, options) {\n if (!address) {\n throw new Error(`Expected a valid address for signing, found ${stringify(address)}`);\n }\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\n\n toU8a(isBare) {\n return this.isSigned ? super.toU8a(isBare) : EMPTY_U8A;\n }\n\n}","import assert from './_assert.js';\nimport u64 from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapConstructorWithOpts, } from './utils.js';\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = 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)\n t ^= _1n << ((_1n << BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s);\nconst rotlL = (h, l, s) => s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s);\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 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++)\n 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++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n 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}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n assert.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 keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n assert.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++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n 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)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n assert.exists(this, false);\n assert.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)\n 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) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n assert.number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n assert.output(out, this);\n if (this.finished)\n 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) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (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}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = gen(0x06, 136, 256 / 8);\nexport const sha3_384 = gen(0x06, 104, 384 / 8);\nexport const sha3_512 = gen(0x06, 72, 512 / 8);\nexport const keccak_224 = 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 = gen(0x01, 136, 256 / 8);\nexport const keccak_384 = gen(0x01, 104, 384 / 8);\nexport const keccak_512 = gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = genShake(0x1f, 168, 128 / 8);\nexport const shake256 = genShake(0x1f, 136, 256 / 8);\n","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * import { keccakAsU8a } from '@polkadot/util-crypto';\n *\n * keccakAsU8a('123'); // => Uint8Array\n * ```\n */\n\nexport const keccakAsU8a = createDualHasher({\n 256: keccak256,\n 512: keccak512\n}, {\n 256: keccak256Js,\n 512: keccak512Js\n});\n/**\n * @name keccak256AsU8a\n * @description Creates a keccak256 Uint8Array from the input.\n */\n\nexport const keccak256AsU8a = createBitHasher(256, keccakAsU8a);\n/**\n * @name keccak512AsU8a\n * @description Creates a keccak512 Uint8Array from the input.\n */\n\nexport const keccak512AsU8a = createBitHasher(512, keccakAsU8a);\n/**\n * @name keccakAsHex\n * @description Creates a keccak hex string from the input.\n */\n\nexport const keccakAsHex = createAsHex(keccakAsU8a);","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 } else if (/^(0x)?[0-9a-f]{40}$/.test(address) || /^(0x)?[0-9A-F]{40}$/.test(address)) {\n return true;\n }\n\n return isEthereumChecksum(address);\n}","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { u8aToHex } from '@polkadot/util';\nimport { keccakAsU8a } from \"../keccak/index.js\";\n\nfunction isInvalidChar(char, byte) {\n return char !== (byte > 7 ? char.toUpperCase() : char.toLowerCase());\n}\n\nexport function isEthereumChecksum(_address) {\n const address = _address.replace('0x', '');\n\n const hash = u8aToHex(keccakAsU8a(address.toLowerCase()), -1, false);\n\n for (let i = 0; i < 40; i++) {\n if (isInvalidChar(address[i], parseInt(hash[i], 16))) {\n return false;\n }\n }\n\n return true;\n}","/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nimport * as nodeCrypto from 'crypto';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst CURVE = Object.freeze({\n a: _0n,\n b: BigInt(7),\n P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n});\nexport { CURVE };\nfunction weistrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass ShaError extends Error {\n constructor(message) {\n super(message);\n }\n}\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(B * B);\n const x1b = X1 + B;\n const D = mod(_2n * (mod(x1b * x1b) - A - C));\n const E = mod(_3n * A);\n const F = mod(E * E);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H * H);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r * r - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n const P0 = JacobianPoint.ZERO;\n if (typeof scalar === 'bigint' && scalar === _0n)\n return P0;\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n let { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let k1p = P0;\n let k2p = P0;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.ZERO;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n if (wbits === 0) {\n let pr = precomputes[offset];\n if (window % 2)\n pr = pr.negate();\n f = f.add(pr);\n }\n else {\n let cached = precomputes[offset + Math.abs(wbits) - 1];\n if (wbits < 0)\n cached = cached.negate();\n p = p.add(cached);\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ = invert(this.z)) {\n const { x, y, z } = this;\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nconst pointPrecomputes = new WeakMap();\nexport class Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n hasEvenY() {\n return this.y % _2n === _0n;\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weistrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, 33));\n const y = bytesToNumber(bytes.subarray(33, 65));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === 32 || (len === 33 && (header === 0x02 || header === 0x03))) {\n return this.fromCompressedHex(bytes);\n }\n if (len === 65 && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n msgHash = ensureBytes(msgHash);\n const h = truncateHash(msgHash);\n const { r, s } = normalizeSignature(signature);\n if (recovery !== 0 && recovery !== 1) {\n throw new Error('Cannot recover signature: invalid recovery bit');\n }\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(r));\n const { n } = CURVE;\n const rinv = invert(r, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.hasEvenY() ? '02' : '03';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weistrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nexport class Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = hex instanceof Uint8Array;\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = hex instanceof Uint8Array;\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, CURVE.n - this.s) : this;\n }\n toDERRawBytes(isCompressed = false) {\n return hexToBytes(this.toDERHex(isCompressed));\n }\n toDERHex(isCompressed = false) {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n if (isCompressed)\n return sHex;\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const rLen = numberToHexUnpadded(rHex.length / 2);\n const sLen = numberToHexUnpadded(sHex.length / 2);\n const length = numberToHexUnpadded(rHex.length / 2 + sHex.length / 2 + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nfunction concatBytes(...arrays) {\n if (!arrays.every((b) => b instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nfunction numTo32bStr(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n if (!(_0n <= num && num < POW_2_256))\n throw new Error('Expected number < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n const b = hexToBytes(numTo32bStr(num));\n if (b.length !== 32)\n throw new Error('Error: expected 32 bytes');\n return b;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n return pow2(t2, _2n);\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst ENDO = {\n a1: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n b1: -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3'),\n a2: BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'),\n b2: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n POW_2_128: BigInt('0x100000000000000000000000000000000'),\n};\nfunction splitScalarEndo(k) {\n const { n } = CURVE;\n const { a1, b1, a2, b2, POW_2_128 } = ENDO;\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)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n}\nfunction truncateHash(hash) {\n const { n } = CURVE;\n const byteLength = hash.length;\n const delta = byteLength * 8 - 256;\n let h = bytesToNumber(hash);\n if (delta > 0)\n h = h >> BigInt(delta);\n if (h >= n)\n h -= n;\n return h;\n}\nlet _sha256Sync;\nlet _hmacSha256Sync;\nclass HmacDrbg {\n constructor() {\n this.v = new Uint8Array(32).fill(1);\n this.k = new Uint8Array(32).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n return _hmacSha256Sync(this.k, ...values);\n }\n checkSync() {\n if (typeof _hmacSha256Sync !== 'function')\n throw new ShaError('hmacSha256Sync needs to be set');\n }\n incr() {\n if (this.counter >= 1000)\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.checkSync();\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n this.v = await this.hmac(this.v);\n return this.v;\n }\n generateSync() {\n this.checkSync();\n this.incr();\n this.v = this.hmacSync(this.v);\n return this.v;\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d) {\n const k = bytesToNumber(kBytes);\n if (!isWithinCurveOrder(k))\n return;\n const { n } = CURVE;\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(invert(k, n) * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n const sig = new Signature(r, s);\n const recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 64)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== 32)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nexport function getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexport function recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nfunction isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === 33 || len === 65;\n if (str)\n return len === 66 || len === 130;\n if (item instanceof Point)\n return true;\n return false;\n}\nexport function getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isProbPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isProbPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nfunction bits2int(bytes) {\n const slice = bytes.length > 32 ? bytes.slice(0, 32) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n return numTo32b(num);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = utils.randomBytes(32);\n const e = ensureBytes(extraEntropy);\n if (e.length !== 32)\n throw new Error('sign: Expected 32 bytes of extra data');\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n let { sig, recovery } = recSig;\n const { canonical, der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n if (canonical && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n await drbg.reseed(seed);\n while (!(sig = kmdToSig(await drbg.generate(), m, d)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n drbg.reseedSync(seed);\n while (!(sig = kmdToSig(drbg.generateSync(), m, d)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexport { sign, signSync };\nconst vopts = { strict: true };\nexport function verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nfunction schnorrChallengeFinalize(ch) {\n return mod(bytesToNumber(ch), CURVE.n);\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nclass InternalSchnorrSignature {\n constructor(message, privateKey, auxRand = utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n this.m = ensureBytes(message);\n const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));\n this.px = x;\n this.d = scalar;\n this.rand = ensureBytes(auxRand);\n if (this.rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n }\n getScalar(priv) {\n const point = Point.fromPrivateKey(priv);\n const scalar = point.hasEvenY() ? priv : CURVE.n - priv;\n return { point, scalar, x: point.toRawX() };\n }\n initNonce(d, t0h) {\n return numTo32b(d ^ bytesToNumber(t0h));\n }\n finalizeNonce(k0h) {\n const k0 = mod(bytesToNumber(k0h), CURVE.n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const { point: R, x: rx, scalar: k } = this.getScalar(k0);\n return { R, rx, k };\n }\n finalizeSig(R, k, e, d) {\n return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();\n }\n error() {\n throw new Error('sign: Invalid signature produced');\n }\n async calc() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHash;\n const t = this.initNonce(d, await tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!(await schnorrVerify(sig, m, px)))\n this.error();\n return sig;\n }\n calcSync() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHashSync;\n const t = this.initNonce(d, tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!schnorrVerifySync(sig, m, px))\n this.error();\n return sig;\n }\n}\nasync function schnorrSign(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calc();\n}\nfunction schnorrSignSync(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();\n}\nfunction initSchnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n const sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n return {\n ...sig,\n m: ensureBytes(message),\n P: normalizePublicKey(publicKey),\n };\n}\nfunction finalizeSchnorrVerify(r, P, s, e) {\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !R.hasEvenY() || R.x !== r)\n return false;\n return true;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(await utils.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n return false;\n }\n}\nfunction schnorrVerifySync(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(utils.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n if (error instanceof ShaError)\n throw error;\n return false;\n }\n}\nexport const schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n signSync: schnorrSignSync,\n verifySync: schnorrVerifySync,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst TAGS = {\n challenge: 'BIP0340/challenge',\n aux: 'BIP0340/aux',\n nonce: 'BIP0340/nonce',\n};\nconst TAGGED_HASH_PREFIXES = {};\nexport const utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n mod,\n invert,\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n _bigintTo32Bytes: numTo32b,\n _normalizePrivateKey: normalizePrivateKey,\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n if (hash.length < 40 || hash.length > 1024)\n throw new Error('Expected 40-1024 bytes of private key as per FIPS 186');\n const num = mod(bytesToNumber(hash), CURVE.n - _1n) + _1n;\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => {\n return utils.hashToPrivateKey(utils.randomBytes(40));\n },\n sha256: async (...messages) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', concatBytes(...messages));\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n const hash = createHash('sha256');\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n taggedHash: async (tag, ...messages) => {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = await utils.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return utils.sha256(tagP, ...messages);\n },\n taggedHashSync: (tag, ...messages) => {\n if (typeof _sha256Sync !== 'function')\n throw new ShaError('sha256Sync is undefined, you need to set it');\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return _sha256Sync(tagP, ...messages);\n },\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n};\nObject.defineProperties(utils, {\n sha256Sync: {\n configurable: false,\n get() {\n return _sha256Sync;\n },\n set(val) {\n if (!_sha256Sync)\n _sha256Sync = val;\n },\n },\n hmacSha256Sync: {\n configurable: false,\n get() {\n return _hmacSha256Sync;\n },\n set(val) {\n if (!_hmacSha256Sync)\n _hmacSha256Sync = val;\n },\n },\n});\n","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const BN_BE_OPTS = {\n isLe: false\n};\nexport const BN_LE_OPTS = {\n isLe: true\n};\nexport const BN_LE_16_OPTS = {\n bitLength: 16,\n isLe: true\n};\nexport const BN_BE_32_OPTS = {\n bitLength: 32,\n isLe: false\n};\nexport const BN_LE_32_OPTS = {\n bitLength: 32,\n isLe: true\n};\nexport const BN_BE_256_OPTS = {\n bitLength: 256,\n isLe: false\n};\nexport const BN_LE_256_OPTS = {\n bitLength: 256,\n isLe: true\n};\nexport const BN_LE_512_OPTS = {\n bitLength: 512,\n isLe: true\n};","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { keccakAsU8a } from \"../keccak/index.js\";\nimport { secp256k1Expand } from \"../secp256k1/index.js\";\n\nfunction getH160(u8a) {\n if ([33, 65].includes(u8a.length)) {\n u8a = keccakAsU8a(secp256k1Expand(u8a));\n }\n\n return u8a.slice(-20);\n}\n\nexport function ethereumEncode(addressOrPublic) {\n if (!addressOrPublic) {\n return '0x';\n }\n\n const u8aAddress = u8aToU8a(addressOrPublic);\n\n if (![20, 32, 33, 65].includes(u8aAddress.length)) {\n throw new Error('Invalid address or publicKey passed');\n }\n\n const address = u8aToHex(getH160(u8aAddress), -1, false);\n const hash = u8aToHex(keccakAsU8a(address), -1, false);\n let result = '';\n\n for (let i = 0; i < 40; i++) {\n result = `${result}${parseInt(hash[i], 16) > 7 ? address[i].toUpperCase() : address[i]}`;\n }\n\n return `0x${result}`;\n}","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Point } from '@noble/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 (publicKey.length === 65) {\n return publicKey.subarray(1);\n }\n\n if (publicKey.length !== 33) {\n throw new Error('Invalid publicKey provided');\n }\n\n if (!hasBigInt || !onlyJs && isReady()) {\n return wasm(publicKey).subarray(1);\n }\n\n const {\n x,\n y\n } = Point.fromHex(publicKey);\n return u8aConcat(bnToU8a(x, BN_BE_256_OPTS), bnToU8a(y, BN_BE_256_OPTS));\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { U8aFixed } from '@polkadot/types-codec';\nimport { hexToU8a, isHex, isString, isU8a, u8aToU8a } from '@polkadot/util';\nimport { ethereumEncode, isEthereumAddress } from '@polkadot/util-crypto';\n/** @internal */\n\nfunction decodeAccountId(value) {\n if (isU8a(value) || Array.isArray(value)) {\n return u8aToU8a(value);\n } else if (isHex(value) || isEthereumAddress(value.toString())) {\n return hexToU8a(value.toString());\n } else if (isString(value)) {\n return u8aToU8a(value);\n }\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 */\n\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\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\n\n toHuman() {\n return this.toJSON();\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.toString();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.toJSON();\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return ethereumEncode(this);\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return 'AccountId';\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { UInt } from \"../base/UInt.js\";\n/**\n * @name u32\n * @description\n * A 32-bit unsigned integer\n */\n\nexport class u32 extends UInt.with(32) {\n // NOTE without this, we cannot properly determine extensions\n __UIntType = 'u32';\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\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 } else if (isBn(value) || isNumber(value) || isHex(value) || isU8a(value) || isBigInt(value)) {\n return value;\n }\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 */\n\n\nexport class GenericAccountIndex extends u32 {\n constructor(registry, value = new BN(0)) {\n super(registry, decodeAccountIndex(value));\n }\n\n static calcLength(_value) {\n const value = bnToBn(_value);\n\n if (value.lte(MAX_1BYTE)) {\n return 1;\n } else if (value.lt(MAX_2BYTE)) {\n return 2;\n } else if (value.lt(MAX_4BYTE)) {\n return 4;\n }\n\n return 8;\n }\n\n static readLength(input) {\n const first = input[0];\n\n if (first === PREFIX_2BYTE) {\n return [1, 2];\n } else if (first === PREFIX_4BYTE) {\n return [1, 4];\n } else if (first === PREFIX_8BYTE) {\n return [1, 8];\n }\n\n return [0, 1];\n }\n\n static writeLength(input) {\n switch (input.length) {\n case 2:\n return new Uint8Array([PREFIX_2BYTE]);\n\n case 4:\n return new Uint8Array([PREFIX_4BYTE]);\n\n case 8:\n return new Uint8Array([PREFIX_8BYTE]);\n\n default:\n return new Uint8Array([]);\n }\n }\n /**\n * @description Compares the value of the input to see if there is a match\n */\n\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 } // convert and compare\n\n\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\n\n toHuman() {\n return this.toJSON();\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.toString();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.toJSON();\n }\n /**\n * @description Returns the string representation of the value\n */\n\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\n\n toRawType() {\n return 'AccountIndex';\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\"; // eslint-disable-next-line no-use-before-define\n\nexport const ACCOUNT_ID_PREFIX = new Uint8Array([0xff]);\n/** @internal */\n\nfunction decodeString(registry, value) {\n const decoded = decodeAddress(value);\n return decoded.length === 20 ? registry.createTypeUnsafe('EthereumAccountId', [decoded]) : registry.createTypeUnsafe('AccountIndex', [u8aToBn(decoded)]);\n}\n/** @internal */\n\n\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 } else if (value[0] === 0xff) {\n return registry.createTypeUnsafe('EthereumAccountId', [value.subarray(1)]);\n }\n\n const [offset, length] = GenericAccountIndex.readLength(value);\n return registry.createTypeUnsafe('AccountIndex', [u8aToBn(value.subarray(offset, offset + length))]);\n}\n\nfunction decodeAddressOrIndex(registry, value) {\n return value instanceof GenericEthereumLookupSource ? value.inner : value instanceof GenericEthereumAccountId || value instanceof GenericAccountIndex ? value : isU8a(value) || Array.isArray(value) || isHex(value) ? decodeU8a(registry, u8aToU8a(value)) : isBn(value) || isNumber(value) || isBigInt(value) ? registry.createTypeUnsafe('AccountIndex', [value]) : 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 `[ , ...publicKey/...bytes ]` as per spec\n */\n\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\n\n get encodedLength() {\n const rawLength = this._rawLength;\n return rawLength + ( // for 1 byte AccountIndexes, we are not adding a specific prefix\n rawLength > 1 ? 1 : 0);\n }\n /**\n * @description The length of the raw value, either AccountIndex or AccountId\n */\n\n\n get _rawLength() {\n return this.inner instanceof GenericAccountIndex ? GenericAccountIndex.calcLength(this.inner) : this.inner.encodedLength;\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\n\n toHex() {\n return u8aToHex(this.toU8a());\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\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\n\n toU8a(isBare) {\n const encoded = this.inner.toU8a().subarray(0, this._rawLength);\n return isBare ? encoded : u8aConcat(this.inner instanceof GenericAccountIndex ? GenericAccountIndex.writeLength(encoded) : ACCOUNT_ID_PREFIX, encoded);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { U8aFixed } from '@polkadot/types-codec';\nimport { hexToU8a, isHex, isString, isU8a, u8aToU8a } from '@polkadot/util';\nimport { decodeAddress, encodeAddress } from '@polkadot/util-crypto';\n/** @internal */\n\nfunction decodeAccountId(value) {\n if (isU8a(value) || Array.isArray(value)) {\n return u8aToU8a(value);\n } else if (!value) {\n return new Uint8Array();\n } else if (isHex(value)) {\n return hexToU8a(value);\n } else if (isString(value)) {\n return decodeAddress(value.toString());\n }\n\n throw new Error(`Unknown type passed to AccountId constructor, found typeof ${typeof value}`);\n}\n\nclass BaseAccountId extends U8aFixed {\n constructor(registry, allowedBits = 256 | 264, value) {\n const decoded = decodeAccountId(value);\n const decodedBits = decoded.length * 8; // Part of stream containing >= 32 bytes or a all empty (defaults)\n\n if (decodedBits < allowedBits && decoded.some(b => b)) {\n throw new Error(`Invalid AccountId provided, expected ${allowedBits >> 3} bytes, found ${decoded.length}`);\n }\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\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\n\n toHuman() {\n return this.toJSON();\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.toString();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.toJSON();\n }\n /**\n * @description Returns the string representation of the value\n */\n\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\n\n toRawType() {\n return 'AccountId';\n }\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 */\n\n\nexport class GenericAccountId extends BaseAccountId {\n constructor(registry, value) {\n super(registry, 256, value);\n }\n\n}\nexport class GenericAccountId33 extends BaseAccountId {\n constructor(registry, value) {\n super(registry, 264, value);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Struct } from '@polkadot/types-codec';\n\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'\n }, value);\n }\n /**\n * @description Encodes a content [[Hash]] for the block\n */\n\n\n get contentHash() {\n return this.registry.hash(this.toU8a());\n }\n /**\n * @description The [[Extrinsic]] contained in the block\n */\n\n\n get extrinsics() {\n return this.getT('extrinsics');\n }\n /**\n * @description Block/header [[Hash]]\n */\n\n\n get hash() {\n return this.header.hash;\n }\n /**\n * @description The [[Header]] of the block\n */\n\n\n get header() {\n return this.getT('header');\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Struct, U8aFixed } from '@polkadot/types-codec';\nimport { isHex, isObject, isU8a, objectSpread, u8aToU8a } from '@polkadot/util';\n\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, {\n name,\n type\n }, index) => {\n result[name.unwrapOr(`param${index}`).toString()] = registry.createLookupType(type);\n return result;\n }, {});\n}\n/** @internal */\n\n\nfunction decodeCallViaObject(registry, value, _meta) {\n // we only pass args/methodsIndex out\n const {\n args,\n callIndex\n } = value; // Get the correct lookupIndex\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n\n const lookupIndex = callIndex instanceof GenericCallIndex ? callIndex.toU8a() : callIndex; // Find metadata with callIndex\n\n const meta = _meta || registry.findMetaCall(lookupIndex).meta;\n\n return {\n args,\n argsDef: getArgsDef(registry, meta),\n callIndex,\n meta\n };\n}\n/** @internal */\n\n\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); // Find metadata with callIndex\n\n const meta = _meta || registry.findMetaCall(callIndex).meta;\n\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 */\n\n\nfunction decodeCall(registry, value = new Uint8Array(), _meta) {\n if (isU8a(value) || isHex(value)) {\n return decodeCallViaU8a(registry, u8aToU8a(value), _meta);\n } else if (isObject(value) && value.callIndex && value.args) {\n return decodeCallViaObject(registry, value, _meta);\n }\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 */\n\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\n\n toPrimitive() {\n return this.toHex();\n }\n\n}\n/**\n * @name GenericCall\n * @description\n * Extrinsic function descriptor\n */\n\nexport class GenericCall extends Struct {\n constructor(registry, value, meta) {\n const decoded = decodeCall(registry, value, meta);\n\n try {\n super(registry, {\n callIndex: GenericCallIndex,\n // eslint-disable-next-line sort-keys\n args: Struct.with(decoded.argsDef)\n }, decoded);\n } catch (error) {\n let method = 'unknown.unknown';\n\n try {\n const c = registry.findMetaCall(decoded.callIndex);\n method = `${c.section}.${c.method}`;\n } catch (error) {// ignore\n }\n\n throw new Error(`Call: failed decoding ${method}:: ${error.message}`);\n }\n\n this._meta = decoded.meta;\n }\n /**\n * @description The arguments for the function call\n */\n\n\n get args() {\n return [...this.getT('args').values()];\n }\n /**\n * @description The argument definitions\n */\n\n\n get argsDef() {\n return getArgsDef(this.registry, this.meta);\n }\n /**\n * @description The argument entries\n */\n\n\n get argsEntries() {\n return [...this.getT('args').entries()];\n }\n /**\n * @description The encoded `[sectionIndex, methodIndex]` identifier\n */\n\n\n get callIndex() {\n return this.getT('callIndex').toU8a();\n }\n /**\n * @description The encoded data\n */\n\n\n get data() {\n return this.getT('args').toU8a();\n }\n /**\n * @description The [[FunctionMetadata]]\n */\n\n\n get meta() {\n return this._meta;\n }\n /**\n * @description Returns the name of the method\n */\n\n\n get method() {\n return this.registry.findMetaCall(this.callIndex).method;\n }\n /**\n * @description Returns the module containing the method\n */\n\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\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\n\n toHuman(isExpanded) {\n var _call, _call2;\n\n let call;\n\n try {\n call = this.registry.findMetaCall(this.callIndex);\n } catch (error) {// swallow\n }\n\n return objectSpread({\n args: this.argsEntries.reduce((args, [n, a]) => objectSpread(args, {\n [n]: a.toHuman(isExpanded)\n }), {}),\n method: (_call = call) === null || _call === void 0 ? void 0 : _call.method,\n section: (_call2 = call) === null || _call2 === void 0 ? void 0 : _call2.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\n\n toRawType() {\n return 'Call';\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Json } from '@polkadot/types-codec';\nimport { isFunction, isNull, isUndefined } from '@polkadot/util';\n\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\n return registry.createTypeUnsafe(type, [asArray ? isNull(value) || isUndefined(value) ? null : Array.isArray(value) ? value : [value] : value]);\n}\n\nfunction decodeValue(registry, key, value) {\n return key === 'ss58Format' ? createValue(registry, 'Option', value, false) : key === 'tokenDecimals' ? createValue(registry, 'Option>', value) : key === 'tokenSymbol' ? createValue(registry, 'Option>', value) : value;\n}\n\nfunction decode(registry, value) {\n return ( // allow decoding from a map as well (ourselves)\n value && isFunction(value.entries) ? [...value.entries()] : Object.entries(value || {})).reduce((all, [key, value]) => {\n all[key] = decodeValue(registry, key, value);\n return all;\n }, {\n ss58Format: registry.createTypeUnsafe('Option', []),\n tokenDecimals: registry.createTypeUnsafe('Option>', []),\n tokenSymbol: registry.createTypeUnsafe('Option>', [])\n });\n}\n\nexport class GenericChainProperties extends Json {\n constructor(registry, value) {\n super(registry, decode(registry, value));\n }\n /**\n * @description The chain ss58Format\n */\n\n\n get ss58Format() {\n return this.getT('ss58Format');\n }\n /**\n * @description The decimals for each of the tokens\n */\n\n\n get tokenDecimals() {\n return this.getT('tokenDecimals');\n }\n /**\n * @description The symbols for the tokens\n */\n\n\n get tokenSymbol() {\n return this.getT('tokenSymbol');\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { U8aFixed } from '@polkadot/types-codec';\nimport { BN, bnToU8a, isNumber, stringToU8a, u8aToHex, u8aToString } from '@polkadot/util';\nexport const CID_AURA = stringToU8a('aura');\nexport const CID_BABE = stringToU8a('BABE');\nexport const CID_GRPA = stringToU8a('FRNK');\nexport const CID_POW = stringToU8a('pow_');\n\nfunction getAuraAuthor(registry, bytes, sessionValidators) {\n return sessionValidators[registry.createTypeUnsafe('RawAuraPreDigest', [bytes.toU8a(true)]).slotNumber.mod(new BN(sessionValidators.length)).toNumber()];\n}\n\nfunction getBabeAuthor(registry, bytes, sessionValidators) {\n const digest = registry.createTypeUnsafe('RawBabePreDigestCompat', [bytes.toU8a(true)]);\n return sessionValidators[digest.value.toNumber()];\n}\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 */\n\n\nexport class GenericConsensusEngineId extends U8aFixed {\n constructor(registry, value) {\n super(registry, isNumber(value) ? bnToU8a(value, {\n isLe: false\n }) : value, 32);\n }\n /**\n * @description `true` if the engine matches aura\n */\n\n\n get isAura() {\n return this.eq(CID_AURA);\n }\n /**\n * @description `true` is the engine matches babe\n */\n\n\n get isBabe() {\n return this.eq(CID_BABE);\n }\n /**\n * @description `true` is the engine matches grandpa\n */\n\n\n get isGrandpa() {\n return this.eq(CID_GRPA);\n }\n /**\n * @description `true` is the engine matches pow\n */\n\n\n get isPow() {\n return this.eq(CID_POW);\n }\n /**\n * @description From the input bytes, decode into an author\n */\n\n\n extractAuthor(bytes, sessionValidators) {\n if (sessionValidators !== null && sessionValidators !== void 0 && sessionValidators.length) {\n if (this.isAura) {\n return getAuraAuthor(this.registry, bytes, sessionValidators);\n } else if (this.isBabe) {\n return getBabeAuthor(this.registry, bytes, sessionValidators);\n }\n } // For pow & Moonbeam, the bytes are the actual author\n\n\n if (this.isPow || bytes.length === 20) {\n return getBytesAsAuthor(this.registry, bytes);\n }\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\n\n toHuman() {\n return this.toString();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return 'ConsensusEngineId';\n }\n /**\n * @description Override the default toString to return a 4-byte string\n */\n\n\n toString() {\n return this.isAscii ? u8aToString(this) : u8aToHex(this);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\"; // eslint-disable-next-line no-use-before-define\n\nexport const ACCOUNT_ID_PREFIX = new Uint8Array([0xff]);\n/** @internal */\n\nfunction decodeString(registry, value) {\n const decoded = decodeAddress(value);\n return decoded.length === 32 ? registry.createTypeUnsafe('AccountId', [decoded]) : registry.createTypeUnsafe('AccountIndex', [u8aToBn(decoded)]);\n}\n/** @internal */\n\n\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 } else if (value[0] === 0xff) {\n return registry.createTypeUnsafe('AccountId', [value.subarray(1)]);\n }\n\n const [offset, length] = GenericAccountIndex.readLength(value);\n return registry.createTypeUnsafe('AccountIndex', [u8aToBn(value.subarray(offset, offset + length))]);\n}\n/** @internal */\n\n\nfunction decodeAddressOrIndex(registry, value) {\n return value instanceof GenericLookupSource ? value.inner : value instanceof GenericAccountId || value instanceof GenericAccountIndex ? value : isBn(value) || isNumber(value) || isBigInt(value) ? registry.createTypeUnsafe('AccountIndex', [value]) : Array.isArray(value) || isHex(value) || isU8a(value) ? decodeU8a(registry, u8aToU8a(value)) : 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 `[ , ...publicKey/...bytes ]` as per spec\n */\n\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\n\n get encodedLength() {\n const rawLength = this._rawLength;\n return rawLength + ( // for 1 byte AccountIndexes, we are not adding a specific prefix\n rawLength > 1 ? 1 : 0);\n }\n /**\n * @description The length of the raw value, either AccountIndex or AccountId\n */\n\n\n get _rawLength() {\n return this.inner instanceof GenericAccountIndex ? GenericAccountIndex.calcLength(this.inner) : this.inner.encodedLength;\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n const value = this.inner.toU8a().subarray(0, this._rawLength);\n return {\n outer: [new Uint8Array(this.inner instanceof GenericAccountIndex ? GenericAccountIndex.writeLength(value) : ACCOUNT_ID_PREFIX), value]\n };\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\n\n toHex() {\n return u8aToHex(this.toU8a());\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\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\n\n toU8a(isBare) {\n const encoded = this.inner.toU8a().subarray(0, this._rawLength);\n return isBare ? encoded : u8aConcat(this.inner instanceof GenericAccountIndex ? GenericAccountIndex.writeLength(encoded) : ACCOUNT_ID_PREFIX, encoded);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\";\n\nfunction decodeU8a(registry, u8a) {\n if ([0, 32].includes(u8a.length)) {\n return {\n Id: u8a\n };\n } else if (u8a.length === 20) {\n return {\n Address20: u8a\n };\n } else if (u8a.length <= 8) {\n return {\n Index: registry.createTypeUnsafe('AccountIndex', [u8a]).toNumber()\n };\n }\n\n return u8a;\n}\n\nfunction decodeMultiAny(registry, value) {\n if (value instanceof GenericAccountId) {\n return {\n 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 } else if (value instanceof GenericMultiAddress) {\n return value;\n } else if (value instanceof GenericAccountIndex || isBn(value) || isNumber(value)) {\n return {\n Index: isNumber(value) ? value : value.toNumber()\n };\n } else if (isString(value)) {\n return decodeU8a(registry, decodeAddress(value.toString()));\n }\n\n return value;\n}\n\nexport class GenericMultiAddress extends Enum {\n constructor(registry, value) {\n super(registry, {\n Id: 'AccountId',\n Index: 'Compact',\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\n\n inspect() {\n const {\n inner,\n outer = []\n } = 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\n\n toString() {\n return this.value.toString();\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nexport class bool extends Boolean {\n constructor(registry, value = false) {\n super(isU8a(value) ? value[0] === 1 : value instanceof Boolean ? value.valueOf() : !!value);\n this.registry = registry;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return 1;\n }\n /**\n * @description returns a hash of the contents\n */\n\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\n\n get isEmpty() {\n return this.isFalse;\n }\n /**\n * @description Checks if the value is an empty value (always false)\n */\n\n\n get isFalse() {\n return !this.isTrue;\n }\n /**\n * @description Checks if the value is an empty value (always false)\n */\n\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\n\n eq(other) {\n return this.valueOf() === (other instanceof Boolean ? other.valueOf() : other);\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n return {\n outer: [this.toU8a()]\n };\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\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\n\n toHuman() {\n return this.toJSON();\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.valueOf();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.toJSON();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return 'bool';\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return this.toJSON().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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n toU8a(isBare) {\n return new Uint8Array([this.valueOf() ? 1 : 0]);\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Bool, U8aFixed } from '@polkadot/types-codec';\nimport { isBoolean, isNumber, isU8a, isUndefined } from '@polkadot/util';\n// For votes, the topmost bit indicated aye/nay, the lower bits indicate the conviction\nconst AYE_BITS = 0b10000000;\nconst NAY_BITS = 0b00000000;\nconst CON_MASK = 0b01111111;\nconst DEF_CONV = 0b00000000; // the default conviction, None\n\n/** @internal */\n\nfunction decodeVoteBool(value) {\n return value ? new Uint8Array([AYE_BITS | DEF_CONV]) : new Uint8Array([NAY_BITS]);\n}\n/** @internal */\n\n\nfunction decodeVoteU8a(value) {\n return value.length ? value.subarray(0, 1) : new Uint8Array([NAY_BITS]);\n}\n/** @internal */\n\n\nfunction decodeVoteType(registry, value) {\n return new Uint8Array([(new Bool(registry, value.aye).isTrue ? AYE_BITS : NAY_BITS) | registry.createTypeUnsafe('Conviction', [value.conviction || DEF_CONV]).index]);\n}\n/** @internal */\n\n\nfunction decodeVote(registry, value) {\n if (isU8a(value)) {\n return decodeVoteU8a(value);\n } else if (isUndefined(value) || value instanceof Boolean || isBoolean(value)) {\n return decodeVoteBool(new Bool(registry, value).isTrue);\n } else if (isNumber(value)) {\n return decodeVoteBool(value < 0);\n }\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 */\n\n\nexport class GenericVote extends U8aFixed {\n #aye;\n #conviction;\n\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.#aye = (decoded[0] & AYE_BITS) === AYE_BITS;\n this.#conviction = this.registry.createTypeUnsafe('Conviction', [decoded[0] & CON_MASK]);\n }\n /**\n * @description returns a V2 conviction\n */\n\n\n get conviction() {\n return this.#conviction;\n }\n /**\n * @description true if the wrapped value is a positive vote\n */\n\n\n get isAye() {\n return this.#aye;\n }\n /**\n * @description true if the wrapped value is a negative vote\n */\n\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\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\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\n\n toRawType() {\n return 'Vote';\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { compactFromU8aLim, compactToU8a, isString, u8aConcatStrict, u8aToU8a } from '@polkadot/util';\nimport { Raw } from \"../native/Raw.js\";\n/** @internal */\n\nfunction decodeBitVecU8a(value) {\n if (!value || !value.length) {\n return [0, new Uint8Array()];\n } // handle all other Uint8Array inputs, these do have a length prefix which is the number of bits encoded\n\n\n const [offset, length] = compactFromU8aLim(value);\n const total = offset + Math.ceil(length / 8);\n\n if (total > value.length) {\n throw new Error(`BitVec: required length less than remainder, expected at least ${total}, found ${value.length}`);\n }\n\n return [length, value.subarray(offset, total)];\n}\n/** @internal */\n\n\nfunction decodeBitVec(value) {\n if (Array.isArray(value) || isString(value)) {\n const u8a = u8aToU8a(value);\n return [u8a.length / 8, u8a];\n }\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 */\n\n\nexport class BitVec extends Raw {\n #decodedLength;\n #isMsb; // 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\n constructor(registry, value, isMsb = false) {\n const [decodedLength, u8a] = decodeBitVec(value);\n super(registry, u8a);\n this.#decodedLength = decodedLength;\n this.#isMsb = isMsb;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return this.length + compactToU8a(this.#decodedLength).length;\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n return {\n outer: [compactToU8a(this.#decodedLength), super.toU8a()]\n };\n }\n\n toHuman() {\n return `0b${[...this.toU8a(true)].map(d => `00000000${d.toString(2)}`.slice(-8)).map(s => this.#isMsb ? s : s.split('').reverse().join('')).join('_')}`;\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\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\n\n toU8a(isBare) {\n const bitVec = super.toU8a();\n return isBare ? bitVec : u8aConcatStrict([compactToU8a(this.#decodedLength), bitVec]);\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { floatToU8a, isHex, isU8a, u8aToFloat, u8aToHex, u8aToU8a } from '@polkadot/util';\n\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 #bitLength;\n\n constructor(registry, value, {\n bitLength = 32\n } = {}) {\n super(isU8a(value) || isHex(value) ? value.length === 0 ? 0 : u8aToFloat(u8aToU8a(value), {\n bitLength\n }) : value || 0);\n this.#bitLength = bitLength;\n this.encodedLength = bitLength / 8;\n this.initialU8aLength = this.encodedLength;\n this.registry = registry;\n }\n\n static with(bitLength) {\n return class extends Float {\n constructor(registry, value) {\n super(registry, value, {\n bitLength\n });\n }\n\n };\n }\n /**\n * @description returns a hash of the contents\n */\n\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\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\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\n\n inspect() {\n return {\n outer: [this.toU8a()]\n };\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\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\n\n toHuman() {\n return this.toString();\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\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\n\n toNumber() {\n return this.valueOf();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.toNumber();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return `f${this.#bitLength}`;\n }\n /**\n * @description Encodes the value as a Uint8Array as per the SCALE specifications\n */\n\n\n toU8a() {\n return floatToU8a(this, {\n bitLength: this.#bitLength\n });\n }\n\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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, {\n bitLength = 32,\n isLe = true\n} = {}) {\n if (bitLength !== 32 && bitLength !== 64) {\n throw new Error('Invalid bitLength provided, expected 32 or 64');\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\n const dv = new DataView(value.buffer, value.byteOffset);\n return bitLength === 32 ? dv.getFloat32(0, isLe) : dv.getFloat64(0, isLe);\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// eslint-disable-next-line @typescript-eslint/ban-types\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, {\n bitLength = 32,\n isLe = true\n} = {}) {\n if (bitLength !== 32 && bitLength !== 64) {\n throw new Error('Invalid bitLength provided, expected 32 or 64');\n }\n\n const result = new Uint8Array(bitLength / 8);\n const dv = new DataView(result.buffer, result.byteOffset);\n\n if (bitLength === 32) {\n dv.setFloat32(0, Number(value), isLe);\n } else {\n dv.setFloat64(0, Number(value), isLe);\n }\n\n return result;\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Float } from \"../native/Float.js\";\n/**\n * @name f32\n * @description\n * A 32-bit float\n */\n\nexport class f32 extends Float.with(32) {\n // NOTE without this, we cannot properly determine extensions\n __FloatType = 'f32';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Float } from \"../native/Float.js\";\n/**\n * @name f64\n * @description\n * A 64-bit float\n */\n\nexport class f64 extends Float.with(64) {\n // NOTE without this, we cannot properly determine extensions\n __FloatType = 'f64';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Int } from \"../base/Int.js\";\n/**\n * @name i8\n * @description\n * An 8-bit signed integer\n */\n\nexport class i8 extends Int.with(8) {\n // NOTE without this, we cannot properly determine extensions\n __IntType = 'i8';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Int } from \"../base/Int.js\";\n/**\n * @name i16\n * @description\n * A 16-bit signed integer\n */\n\nexport class i16 extends Int.with(16) {\n // NOTE without this, we cannot properly determine extensions\n __IntType = 'i16';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Int } from \"../base/Int.js\";\n/**\n * @name i32\n * @description\n * A 32-bit signed integer\n */\n\nexport class i32 extends Int.with(32) {\n // NOTE without this, we cannot properly determine extensions\n __IntType = 'i32';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Int } from \"../base/Int.js\";\n/**\n * @name i64\n * @description\n * A 64-bit signed integer\n */\n\nexport class i64 extends Int.with(64) {\n // NOTE without this, we cannot properly determine extensions\n __IntType = 'i64';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Int } from \"../base/Int.js\";\n/**\n * @name i128\n * @description\n * A 128-bit signed integer\n */\n\nexport class i128 extends Int.with(128) {\n // NOTE without this, we cannot properly determine extensions\n __IntType = 'i128';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Int } from \"../base/Int.js\";\n/**\n * @name i256\n * @description\n * A 256-bit signed integer\n */\n\nexport class i256 extends Int.with(256) {\n // NOTE without this, we cannot properly determine extensions\n __IntType = 'i256';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isHex, isU8a, u8aToU8a } from '@polkadot/util';\nimport { Option } from \"../base/Option.js\";\nimport { bool as Bool } from \"../native/Bool.js\";\n\nfunction decodeU8a(registry, value) {\n // Encoded as -\n // - 0 = None\n // - 1 = True\n // - 2 = False\n return value[0] === 0 ? null : new Bool(registry, value[0] === 1);\n}\n/**\n * @name OptionBool\n * @description A specific implementation of Option than allows for single-byte encoding\n */\n\n\nexport class OptionBool extends Option {\n constructor(registry, value) {\n super(registry, Bool, isU8a(value) || isHex(value) ? decodeU8a(registry, u8aToU8a(value)) : value);\n this.initialU8aLength = 1;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return 1;\n }\n /**\n * @description Checks if the value is an empty value (always false)\n */\n\n\n get isFalse() {\n return this.isSome ? !this.value.valueOf() : false;\n }\n /**\n * @description Checks if the value is an empty value (always false)\n */\n\n\n get isTrue() {\n return this.isSome ? this.value.valueOf() : false;\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n return {\n outer: [this.toU8a()]\n };\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType(isBare) {\n return isBare ? 'bool' : 'Option';\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\n\n toU8a(isBare) {\n if (isBare) {\n return super.toU8a(true);\n }\n\n return this.isSome ? new Uint8Array([this.isTrue ? 1 : 2]) : new Uint8Array([0]);\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nfunction decodeText(value) {\n if (isU8a(value)) {\n if (!value.length) {\n return ['', 0];\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\n\n if (value instanceof Raw) {\n return [u8aToString(value), 0];\n }\n\n const [offset, length] = compactFromU8aLim(value);\n const total = offset + length;\n\n if (length > MAX_LENGTH) {\n throw new Error(`Text: length ${length.toString()} exceeds ${MAX_LENGTH}`);\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\n return [u8aToString(value.subarray(offset, total)), total];\n } else if (isHex(value)) {\n return [u8aToString(hexToU8a(value)), 0];\n }\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 */\n\n\nexport class Text extends String {\n #override = null;\n\n constructor(registry, value) {\n const [str, decodedLength] = decodeText(value);\n super(str);\n this.registry = registry;\n this.initialU8aLength = decodedLength;\n }\n /**\n * @description The length of the value when encoded as a Uint8Array\n */\n\n\n get encodedLength() {\n return this.toU8a().length;\n }\n /**\n * @description returns a hash of the contents\n */\n\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\n\n get isEmpty() {\n return this.length === 0;\n }\n /**\n * @description The length of the value\n */\n\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\n\n eq(other) {\n return isString(other) ? this.toString() === other.toString() : false;\n }\n /**\n * @description Returns a breakdown of the hex encoding for this Codec\n */\n\n\n inspect() {\n const value = stringToU8a(super.toString());\n return {\n outer: value.length ? [compactToU8a(value.length), value] : [compactToU8a(value.length)]\n };\n }\n /**\n * @description Set an override value for this\n */\n\n\n setOverride(override) {\n this.#override = override;\n }\n /**\n * @description Returns a hex string representation of the value\n */\n\n\n toHex() {\n // like with Vec, 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\n\n toHuman() {\n return this.toJSON();\n }\n /**\n * @description Converts the Object to JSON, typically used for RPC transfers\n */\n\n\n toJSON() {\n return this.toString();\n }\n /**\n * @description Converts the value in a best-fit primitive form\n */\n\n\n toPrimitive() {\n return this.toJSON();\n }\n /**\n * @description Returns the base runtime type name for this instance\n */\n\n\n toRawType() {\n return 'Text';\n }\n /**\n * @description Returns the string representation of the value\n */\n\n\n toString() {\n return this.#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\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 ? encoded : compactAddLength(encoded);\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\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\n\n toRawType() {\n return 'Type';\n }\n\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { UInt } from \"../base/UInt.js\";\n/**\n * @name u8\n * @description\n * An 8-bit unsigned integer\n */\n\nexport class u8 extends UInt.with(8) {\n // NOTE without this, we cannot properly determine extensions\n __UIntType = 'u8';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { UInt } from \"../base/UInt.js\";\n/**\n * @name u16\n * @description\n * A 16-bit unsigned integer\n */\n\nexport class u16 extends UInt.with(16) {\n // NOTE without this, we cannot properly determine extensions\n __UIntType = 'u16';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { UInt } from \"../base/UInt.js\";\n/**\n * @name u128\n * @description\n * A 128-bit unsigned integer\n */\n\nexport class u128 extends UInt.with(128) {\n // NOTE without this, we cannot properly determine extensions\n __UIntType = 'u128';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { UInt } from \"../base/UInt.js\";\n/**\n * @name u256\n * @description\n * A 256-bit unsigned integer\n */\n\nexport class u256 extends UInt.with(256) {\n // NOTE without this, we cannot properly determine extensions\n __UIntType = 'u256';\n}","// Copyright 2017-2022 @polkadot/types-codec authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\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}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Enum } from '@polkadot/types-codec';\nimport { isString, isU8a, u8aToU8a } from '@polkadot/util';\n/** @internal */\n\nfunction decodeDataU8a(registry, value) {\n const indicator = value[0];\n\n if (!indicator) {\n return [undefined, undefined];\n } else if (indicator >= 1 && indicator <= 33) {\n const length = indicator - 1;\n const data = value.subarray(1, length + 1); // in this case, we are passing a Raw back (since we have no length)\n\n return [registry.createTypeUnsafe('Raw', [data]), 1];\n } else if (indicator >= 34 && indicator <= 37) {\n return [value.subarray(1, 32 + 1), indicator - 32]; // 34 becomes 2\n }\n\n throw new Error(`Unable to decode Data, invalid indicator byte ${indicator}`);\n}\n/** @internal */\n\n\nfunction decodeData(registry, value) {\n if (isU8a(value) || isString(value)) {\n return decodeDataU8a(registry, u8aToU8a(value));\n } else if (!value) {\n return [undefined, undefined];\n } // assume we have an Enum or an object input, handle this via the normal Enum decoding\n\n\n return [value, undefined];\n}\n/**\n * @name Data\n * @description\n * A [[Data]] container with node, raw or hashed data\n */\n\n\nexport class Data extends Enum {\n constructor(registry, value) {\n super(registry, {\n None: 'Null',\n // 0\n Raw: 'Bytes',\n // 1\n // eslint-disable-next-line sort-keys\n BlakeTwo256: 'H256',\n // 2\n Sha256: 'H256',\n // 3\n // eslint-disable-next-line sort-keys\n Keccak256: 'H256',\n // 4\n ShaThree256: 'H256' // 5\n\n }, ...decodeData(registry, value));\n\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\n get asBlakeTwo256() {\n return this.value;\n }\n\n get asKeccak256() {\n return this.value;\n }\n\n get asRaw() {\n return this.value;\n }\n\n get asSha256() {\n return this.value;\n }\n\n get asShaThree256() {\n return this.value;\n }\n\n get isBlakeTwo256() {\n return this.index === 2;\n }\n\n get isKeccak256() {\n return this.index === 4;\n }\n\n get isNone() {\n return this.index === 0;\n }\n\n get isRaw() {\n return this.index === 1;\n }\n\n get isSha256() {\n return this.index === 3;\n }\n\n get isShaThree256() {\n return this.index === 5;\n }\n /**\n * @description The encoded length\n */\n\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\n\n toU8a() {\n if (this.index === 0) {\n return new Uint8Array(1);\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 } // otherwise we simply have a hash\n\n\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}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport function getSiName(lookup, type) {\n const typeDef = lookup.getTypeDef(type);\n return typeDef.lookupName || typeDef.type;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Bytes } from '@polkadot/types-codec';\nimport { isFunction, isString, isU8a } from '@polkadot/util';\nimport { getSiName } from \"../metadata/util/index.js\";\n// hasher type -> [initialHashLength, canDecodeKey]\nconst HASHER_MAP = {\n // opaque\n Blake2_128: [16, false],\n // eslint-disable-line camelcase\n Blake2_128Concat: [16, true],\n // eslint-disable-line camelcase\n Blake2_256: [32, false],\n // eslint-disable-line camelcase\n Identity: [0, true],\n Twox128: [16, false],\n Twox256: [32, false],\n Twox64Concat: [8, true]\n};\nexport function unwrapStorageSi(type) {\n return type.isPlain ? type.asPlain : type.asMap.value;\n}\n/** @internal */\n\nexport function unwrapStorageType(registry, type, isOptional) {\n const outputType = getSiName(registry.lookup, unwrapStorageSi(type));\n return isOptional ? `Option<${outputType}>` : outputType;\n}\n/** @internal */\n\nfunction decodeStorageKey(value) {\n if (isU8a(value) || !value || isString(value)) {\n // let Bytes handle these inputs\n return {\n key: value\n };\n } else if (value instanceof StorageKey) {\n return {\n key: value,\n method: value.method,\n section: value.section\n };\n } else if (isFunction(value)) {\n return {\n key: value(),\n method: value.method,\n section: value.section\n };\n } else if (Array.isArray(value)) {\n const [fn, args = []] = value;\n\n if (!isFunction(fn)) {\n throw new Error('Expected function input for key construction');\n }\n\n if (fn.meta && fn.meta.type.isMap) {\n const map = fn.meta.type.asMap;\n\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\n return {\n key: fn(...args),\n method: fn.method,\n section: fn.section\n };\n }\n\n throw new Error(`Unable to convert input ${value} to StorageKey`);\n}\n/** @internal */\n\n\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 result = new Array(hashers.length);\n\n for (let i = 0; i < hashers.length; i++) {\n const [hasher, type] = hashers[i];\n const [hashLen, canDecode] = HASHER_MAP[hasher.type];\n const decoded = canDecode ? registry.createTypeUnsafe(getSiName(registry.lookup, type), [value.subarray(offset + hashLen)]) : registry.createTypeUnsafe('Raw', [value.subarray(offset, offset + hashLen)]);\n offset += hashLen + (canDecode ? decoded.encodedLength : 0);\n result[i] = decoded;\n }\n\n return result;\n}\n/** @internal */\n\n\nfunction decodeArgsFromMeta(registry, value, meta) {\n if (!meta || !meta.type.isMap) {\n return [];\n }\n\n const {\n hashers,\n key\n } = meta.type.asMap;\n const keys = hashers.length === 1 ? [key] : registry.lookup.getSiType(key).def.asTuple;\n return decodeHashers(registry, value, hashers.map((h, i) => [h, keys[i]]));\n}\n/** @internal */\n\n\nfunction getMeta(value) {\n if (value instanceof StorageKey) {\n return value.meta;\n } else if (isFunction(value)) {\n return value.meta;\n } else if (Array.isArray(value)) {\n const [fn] = value;\n return fn.meta;\n }\n\n return undefined;\n}\n/** @internal */\n\n\nfunction getType(registry, value) {\n if (value instanceof StorageKey) {\n return value.outputType;\n } else if (isFunction(value)) {\n return unwrapStorageType(registry, value.meta.type);\n } else if (Array.isArray(value)) {\n const [fn] = value;\n\n if (fn.meta) {\n return unwrapStorageType(registry, fn.meta.type);\n }\n } // If we have no type set, default to Raw\n\n\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 */\n\n\nexport class StorageKey extends Bytes {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore This is assigned via this.decodeArgsFromMeta()\n #args;\n #meta;\n #outputType;\n #method;\n #section;\n\n constructor(registry, value, override = {}) {\n const {\n key,\n method,\n section\n } = decodeStorageKey(value);\n super(registry, key);\n this.#outputType = getType(registry, value); // decode the args (as applicable based on the key and the hashers, after all init)\n\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\n\n get args() {\n return this.#args;\n }\n /**\n * @description The metadata or `undefined` when not available\n */\n\n\n get meta() {\n return this.#meta;\n }\n /**\n * @description The key method or `undefined` when not specified\n */\n\n\n get method() {\n return this.#method;\n }\n /**\n * @description The output type\n */\n\n\n get outputType() {\n return this.#outputType;\n }\n /**\n * @description The key section or `undefined` when not specified\n */\n\n\n get section() {\n return this.#section;\n }\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\n\n setMeta(meta, section, method) {\n this.#meta = meta;\n this.#method = method || this.#method;\n this.#section = section || this.#section;\n\n if (meta) {\n this.#outputType = unwrapStorageType(this.registry, meta.type);\n }\n\n try {\n this.#args = decodeArgsFromMeta(this.registry, this.toU8a(true), meta);\n } catch (error) {// ignore...\n }\n\n return this;\n }\n /**\n * @description Returns the Human representation for this type\n */\n\n\n toHuman() {\n return this.#args.length ? this.#args.map(a => a.toHuman()) : super.toHuman();\n }\n /**\n * @description Returns the raw type for this\n */\n\n\n toRawType() {\n return 'StorageKey';\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n Metadata: [{\n methods: {\n metadata: {\n description: 'Returns the metadata of a runtime',\n params: [],\n type: 'OpaqueMetadata'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { AllHashers } from \"./hashers.js\";\nexport const v11 = {\n // v11\n ErrorMetadataV11: 'ErrorMetadataV10',\n EventMetadataV11: 'EventMetadataV10',\n ExtrinsicMetadataV11: {\n version: 'u8',\n signedExtensions: 'Vec'\n },\n FunctionArgumentMetadataV11: 'FunctionArgumentMetadataV10',\n FunctionMetadataV11: 'FunctionMetadataV10',\n MetadataV11: {\n modules: 'Vec',\n extrinsic: 'ExtrinsicMetadataV11'\n },\n ModuleConstantMetadataV11: 'ModuleConstantMetadataV10',\n ModuleMetadataV11: {\n name: 'Text',\n storage: 'Option',\n calls: 'Option>',\n events: 'Option>',\n constants: 'Vec',\n errors: 'Vec'\n },\n StorageEntryModifierV11: 'StorageEntryModifierV10',\n StorageEntryMetadataV11: {\n name: 'Text',\n modifier: 'StorageEntryModifierV11',\n type: 'StorageEntryTypeV11',\n fallback: 'Bytes',\n docs: 'Vec'\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'\n },\n StorageHasherV11: {\n _enum: AllHashers\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const AllHashers = {\n Blake2_128: null,\n // eslint-disable-line camelcase\n Blake2_256: null,\n // eslint-disable-line camelcase\n Blake2_128Concat: null,\n // eslint-disable-line camelcase\n Twox128: null,\n Twox256: null,\n Twox64Concat: null,\n // new in v11\n Identity: null\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const Si1Variant = {\n name: 'Text',\n fields: 'Vec',\n index: 'u8',\n docs: 'Vec'\n};\nexport const v1 = {\n Si1Field: {\n name: 'Option',\n type: 'Si1LookupTypeId',\n typeName: 'Option',\n docs: 'Vec'\n },\n Si1LookupTypeId: 'Compact',\n Si1Path: 'Si0Path',\n Si1Type: {\n path: 'Si1Path',\n params: 'Vec',\n def: 'Si1TypeDef',\n docs: 'Vec'\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'\n },\n Si1TypeDefPrimitive: 'Si0TypeDefPrimitive',\n Si1TypeDefSequence: {\n type: 'Si1LookupTypeId'\n },\n Si1TypeDefTuple: 'Vec',\n Si1TypeParameter: {\n name: 'Text',\n type: 'Option'\n },\n Si1TypeDefVariant: {\n variants: 'Vec'\n },\n Si1Variant\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { objectSpread } from '@polkadot/util';\nimport { 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: objectSpread({}, Si1Variant, {\n args: 'Vec'\n }),\n EventMetadataV14: objectSpread({}, Si1Variant, {\n args: 'Vec'\n }),\n FunctionArgumentMetadataV14: {\n name: 'Text',\n type: 'Type',\n typeName: 'Option'\n },\n FunctionMetadataV14: objectSpread({}, Si1Variant, {\n args: 'Vec'\n }),\n // V14\n ExtrinsicMetadataV14: {\n type: 'SiLookupTypeId',\n version: 'u8',\n signedExtensions: 'Vec'\n },\n MetadataV14: {\n lookup: 'PortableRegistry',\n pallets: 'Vec',\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'\n },\n PalletErrorMetadataV14: {\n type: 'SiLookupTypeId'\n },\n PalletEventMetadataV14: {\n type: 'SiLookupTypeId'\n },\n PalletMetadataV14: {\n name: 'Text',\n storage: 'Option',\n calls: 'Option',\n events: 'Option',\n constants: 'Vec',\n errors: 'Option',\n index: 'u8'\n },\n PalletStorageMetadataV14: {\n prefix: 'Text',\n // NOTE: Renamed from entries\n items: 'Vec'\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'\n },\n StorageEntryModifierV14: 'StorageEntryModifierV13',\n StorageEntryTypeV14: {\n _enum: {\n Plain: 'SiLookupTypeId',\n Map: {\n hashers: 'Vec',\n key: 'SiLookupTypeId',\n // NOTE: Renamed from \"keys\"\n value: 'SiLookupTypeId'\n }\n }\n },\n StorageHasherV14: 'StorageHasherV13'\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { objectSpread } from '@polkadot/util';\nimport { 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\";\nexport { AllHashers };\nexport default {\n rpc: {},\n runtime,\n types: objectSpread({}, v9, v10, v11, v12, v13, v14, {\n // latest mappings\n ErrorMetadataLatest: 'ErrorMetadataV14',\n EventMetadataLatest: 'EventMetadataV14',\n ExtrinsicMetadataLatest: 'ExtrinsicMetadataV14',\n FunctionArgumentMetadataLatest: 'FunctionArgumentMetadataV14',\n FunctionMetadataLatest: 'FunctionMetadataV14',\n MetadataLatest: 'MetadataV14',\n PalletCallMetadataLatest: 'PalletCallMetadataV14',\n PalletConstantMetadataLatest: 'PalletConstantMetadataV14',\n PalletErrorMetadataLatest: 'PalletErrorMetadataV14',\n PalletEventMetadataLatest: 'PalletEventMetadataV14',\n PalletMetadataLatest: 'PalletMetadataV14',\n PalletStorageMetadataLatest: 'PalletStorageMetadataV14',\n PortableType: 'PortableTypeV14',\n SignedExtensionMetadataLatest: 'SignedExtensionMetadataV14',\n StorageEntryMetadataLatest: 'StorageEntryMetadataV14',\n StorageEntryModifierLatest: 'StorageEntryModifierV14',\n StorageEntryTypeLatest: 'StorageEntryTypeV14',\n StorageHasher: 'StorageHasherV14',\n // additional types\n OpaqueMetadata: 'Opaque',\n // the enum containing all the mappings\n MetadataAll: {\n _enum: {\n V0: 'DoNotConstruct',\n V1: 'DoNotConstruct',\n V2: 'DoNotConstruct',\n V3: 'DoNotConstruct',\n V4: 'DoNotConstruct',\n V5: 'DoNotConstruct',\n V6: 'DoNotConstruct',\n V7: 'DoNotConstruct',\n V8: 'DoNotConstruct',\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 }\n }\n })\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const v9 = {\n // v9\n ErrorMetadataV9: {\n name: 'Text',\n docs: 'Vec'\n },\n EventMetadataV9: {\n name: 'Text',\n args: 'Vec',\n docs: 'Vec'\n },\n FunctionArgumentMetadataV9: {\n name: 'Text',\n type: 'Type'\n },\n FunctionMetadataV9: {\n name: 'Text',\n args: 'Vec',\n docs: 'Vec'\n },\n MetadataV9: {\n modules: 'Vec'\n },\n ModuleConstantMetadataV9: {\n name: 'Text',\n type: 'Type',\n value: 'Bytes',\n docs: 'Vec'\n },\n ModuleMetadataV9: {\n name: 'Text',\n storage: 'Option',\n calls: 'Option>',\n events: 'Option>',\n constants: 'Vec',\n errors: 'Vec'\n },\n StorageEntryMetadataV9: {\n name: 'Text',\n modifier: 'StorageEntryModifierV9',\n type: 'StorageEntryTypeV9',\n fallback: 'Bytes',\n docs: 'Vec'\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 // eslint-disable-line camelcase\n Blake2_256: null,\n // eslint-disable-line camelcase\n Twox128: null,\n Twox256: null,\n Twox64Concat: null\n }\n },\n StorageMetadataV9: {\n prefix: 'Text',\n items: 'Vec'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const v10 = {\n // v10\n ErrorMetadataV10: 'ErrorMetadataV9',\n EventMetadataV10: 'EventMetadataV9',\n FunctionArgumentMetadataV10: 'FunctionArgumentMetadataV9',\n FunctionMetadataV10: 'FunctionMetadataV9',\n MetadataV10: {\n modules: 'Vec'\n },\n ModuleConstantMetadataV10: 'ModuleConstantMetadataV9',\n ModuleMetadataV10: {\n name: 'Text',\n storage: 'Option',\n calls: 'Option>',\n events: 'Option>',\n constants: 'Vec',\n errors: 'Vec'\n },\n StorageEntryModifierV10: 'StorageEntryModifierV9',\n StorageEntryMetadataV10: {\n name: 'Text',\n modifier: 'StorageEntryModifierV10',\n type: 'StorageEntryTypeV10',\n fallback: 'Bytes',\n docs: 'Vec'\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'\n },\n StorageHasherV10: {\n _enum: {\n Blake2_128: null,\n // eslint-disable-line camelcase\n Blake2_256: null,\n // eslint-disable-line camelcase\n Blake2_128Concat: null,\n // eslint-disable-line camelcase\n Twox128: null,\n Twox256: null,\n Twox64Concat: null\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const v12 = {\n // v12\n ErrorMetadataV12: 'ErrorMetadataV11',\n EventMetadataV12: 'EventMetadataV11',\n ExtrinsicMetadataV12: 'ExtrinsicMetadataV11',\n FunctionArgumentMetadataV12: 'FunctionArgumentMetadataV11',\n FunctionMetadataV12: 'FunctionMetadataV11',\n MetadataV12: {\n modules: 'Vec',\n extrinsic: 'ExtrinsicMetadataV12'\n },\n ModuleConstantMetadataV12: 'ModuleConstantMetadataV11',\n ModuleMetadataV12: {\n name: 'Text',\n storage: 'Option',\n calls: 'Option>',\n events: 'Option>',\n constants: 'Vec',\n errors: 'Vec',\n index: 'u8'\n },\n StorageEntryModifierV12: 'StorageEntryModifierV11',\n StorageEntryMetadataV12: 'StorageEntryMetadataV11',\n StorageEntryTypeV12: 'StorageEntryTypeV11',\n StorageMetadataV12: 'StorageMetadataV11',\n StorageHasherV12: 'StorageHasherV11'\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const v13 = {\n // v13\n ErrorMetadataV13: 'ErrorMetadataV12',\n EventMetadataV13: 'EventMetadataV12',\n ExtrinsicMetadataV13: 'ExtrinsicMetadataV12',\n FunctionArgumentMetadataV13: 'FunctionArgumentMetadataV12',\n FunctionMetadataV13: 'FunctionMetadataV12',\n MetadataV13: {\n modules: 'Vec',\n extrinsic: 'ExtrinsicMetadataV13'\n },\n ModuleConstantMetadataV13: 'ModuleConstantMetadataV12',\n ModuleMetadataV13: {\n name: 'Text',\n storage: 'Option',\n calls: 'Option>',\n events: 'Option>',\n constants: 'Vec',\n errors: 'Vec',\n index: 'u8'\n },\n StorageEntryModifierV13: 'StorageEntryModifierV12',\n StorageEntryMetadataV13: {\n name: 'Text',\n modifier: 'StorageEntryModifierV13',\n type: 'StorageEntryTypeV13',\n fallback: 'Bytes',\n docs: 'Vec'\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',\n hashers: 'Vec',\n value: 'Type'\n }\n }\n },\n StorageMetadataV13: {\n prefix: 'Text',\n items: 'Vec'\n },\n StorageHasherV13: 'StorageHasherV12'\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util';\nconst CORE_V1_TO_V4 = {\n execute_block: {\n description: 'Execute the given block.',\n params: [{\n name: 'block',\n type: 'Block'\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 name: 'header',\n type: 'Header'\n }],\n type: 'Null'\n }\n};\nexport const runtime = {\n Core: [{\n methods: objectSpread({\n version: {\n description: 'Returns the version of the runtime.',\n params: [],\n type: 'RuntimeVersion'\n }\n }, CORE_V1_TO_V4, CORE_V2_TO_V4),\n version: 4\n }, {\n methods: objectSpread({\n version: {\n description: 'Returns the version of the runtime.',\n params: [],\n type: 'RuntimeVersionPre4'\n }\n }, CORE_V1_TO_V4, CORE_V2_TO_V4),\n version: 3\n }, {\n methods: objectSpread({}, CORE_V1_TO_V2, CORE_V1_TO_V4, CORE_V2_TO_V4),\n version: 2\n }, {\n methods: objectSpread({\n initialise_block: {\n description: 'Initialize a block with the given header.',\n params: [{\n name: 'header',\n type: 'Header'\n }],\n type: 'Null'\n }\n }, CORE_V1_TO_V2, CORE_V1_TO_V4),\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { objectSpread } from '@polkadot/util';\nimport { 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}; // Since we don't have insight into the origin specification, we can only define what we know about\n// in a pure Substrate/Polkadot implementation, any other custom origins won't be handled at all\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: objectSpread({}, 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'\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'\n },\n DigestItem: {\n _enum: {\n Other: 'Bytes',\n // 0\n AuthoritiesChange: 'Vec',\n // 1\n ChangesTrieRoot: 'Hash',\n // 2\n SealV0: 'SealV0',\n // 3\n Consensus: 'Consensus',\n // 4\n Seal: 'Seal',\n // 5\n PreRuntime: 'PreRuntime',\n // 6\n ChangesTrieSignal: 'ChangesTrieSignal',\n // 7\n RuntimeEnvironmentUpdated: 'Null' // 8\n\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',\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',\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',\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 RuntimeDbWeight: {\n read: 'Weight',\n write: 'Weight'\n },\n SignedBlock: 'SignedBlockWithJustifications',\n SignedBlockWithJustification: {\n block: 'Block',\n justification: 'Option'\n },\n SignedBlockWithJustifications: {\n block: 'Block',\n justifications: 'Option'\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',\n maxSize: 'Option'\n },\n StorageProof: {\n trieNodes: 'Vec'\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',\n proof: 'Vec>'\n },\n ValidatorId: 'AccountId',\n ValidatorIdOf: 'ValidatorId',\n Weight: 'u64',\n WeightMultiplier: 'Fixed64',\n // digest\n PreRuntime: '(ConsensusEngineId, Bytes)',\n SealV0: '(u64, Signature)',\n Seal: '(ConsensusEngineId, Bytes)',\n Consensus: '(ConsensusEngineId, Bytes)'\n })\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util';\nimport { v0 } from \"./v0.js\";\nimport { v1 } from \"./v1.js\"; // order important in structs... :)\n\n/* eslint-disable sort-keys */\n\nexport default {\n rpc: {},\n types: objectSpread({}, v0, 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const v0 = {\n Si0Field: {\n name: 'Option',\n type: 'Si0LookupTypeId',\n typeName: 'Option',\n docs: 'Vec'\n },\n Si0LookupTypeId: 'u32',\n Si0Path: 'Vec',\n Si0Type: {\n path: 'Si0Path',\n params: 'Vec',\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'\n },\n Si0TypeDefPhantom: 'Null',\n Si0TypeDefVariant: {\n variants: 'Vec'\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',\n Si0TypeParameter: {\n name: 'Text',\n type: 'Option'\n },\n Si0Variant: {\n name: 'Text',\n fields: 'Vec',\n index: 'Option',\n discriminant: 'Option',\n docs: 'Vec'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\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',\n sufficients: 'Compact',\n approvals: 'Compact'\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',\n symbol: 'Vec',\n decimals: 'u8',\n isFrozen: 'bool'\n },\n TAssetBalance: 'u64',\n TAssetDepositBalance: 'BalanceOf'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n UncleEntryItem: {\n _enum: {\n InclusionHeight: 'BlockNumber',\n Uncle: '(Hash, Option)'\n }\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc: {},\n runtime,\n types: {\n RawAuraPreDigest: {\n slotNumber: 'u64'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n AuraApi: [{\n methods: {\n authorities: {\n description: 'Return the current set of authorities.',\n params: [],\n type: 'Vec'\n },\n slot_duration: {\n description: 'Returns the slot duration for Aura.',\n params: [],\n type: 'SlotDuration'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util';\nconst 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 name: 'slot',\n type: 'Slot'\n }, {\n name: 'authorityId',\n type: 'AuthorityId'\n }],\n type: 'Option'\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 name: 'equivocationProof',\n type: 'BabeEquivocationProof'\n }, {\n name: 'keyOwnerProof',\n type: 'OpaqueKeyOwnershipProof'\n }],\n type: 'Option'\n }\n};\nexport const runtime = {\n BabeApi: [{\n methods: objectSpread({\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 version: 2\n }, {\n methods: objectSpread({\n configuration: {\n description: 'Return the configuration for BABE. Version 1.',\n params: [],\n type: 'BabeGenesisConfigurationV1'\n }\n }, V1_V2_SHARED),\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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',\n MaybeVrf: 'Option',\n Epoch: {\n epochIndex: 'u64',\n startSlot: 'Slot',\n duration: 'u64',\n authorities: 'Vec<(AuthorityId, BabeAuthorityWeight)>',\n randomness: 'Hash',\n // [u8; VRF_OUTPUT_LENGTH],\n config: 'BabeEpochConfiguration'\n },\n EpochAuthorship: {\n primary: 'Vec',\n secondary: 'Vec',\n secondary_vrf: 'Vec'\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 // [u8; RANDOMNESS_LENGTH],\n RawBabePreDigest: {\n _enum: {\n Phantom: 'Null',\n // index starts at 1... empty slot at 0\n Primary: 'RawBabePreDigestPrimary',\n SecondaryPlain: 'RawBabePreDigestSecondaryPlain',\n SecondaryVRF: 'RawBabePreDigestSecondaryVRF'\n }\n },\n RawBabePreDigestPrimary: {\n authorityIndex: 'u32',\n // AuthorityIndex (also in aura)\n slotNumber: 'SlotNumber',\n vrfOutput: 'VrfOutput',\n vrfProof: 'VrfProof'\n },\n RawBabePreDigestSecondaryPlain: {\n authorityIndex: 'u32',\n // AuthorityIndex (also in aura)\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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 params: [],\n type: 'HashMap'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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: 0b00000001,\n Transfer: 0b00000010,\n Reserve: 0b00000100,\n Fee: 0b00001000,\n Tip: 0b00010000\n }\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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 BeefySignedCommitment: {\n commitment: 'BeefyCommitment',\n signatures: 'Vec>'\n },\n BeefyNextAuthoritySet: {\n id: 'u64',\n len: 'u32',\n root: 'H256'\n },\n BeefyPayload: 'Vec<(BeefyPayloadId, Bytes)>',\n BeefyPayloadId: '[u8;2]',\n MmrRootHash: 'H256',\n ValidatorSetId: 'u64',\n ValidatorSet: {\n validators: 'Vec',\n id: 'ValidatorSetId'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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: ['justifications', 'subscribeJustifications', 'unsubscribeJustifications'],\n type: 'BeefySignedCommitment'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n BeefyApi: [{\n methods: {\n validator_set: {\n description: 'Return the current active BEEFY validator set',\n params: [],\n type: 'Option'\n }\n },\n version: 1\n }],\n BeefyMmrApi: [{\n methods: {\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 },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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'\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'\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, u32, u32, bool)>'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n Benchmark: [{\n methods: {\n benchmark_metadata: {\n description: 'Get the benchmark metadata available for this runtime.',\n params: [{\n name: 'extra',\n type: 'bool'\n }],\n type: '(Vec, Vec)'\n },\n dispatch_benchmark: {\n description: 'Dispatch the given benchmark.',\n params: [{\n name: 'config',\n type: 'BenchmarkConfig'\n }],\n type: 'Result, Text>'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util';\nconst 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 name: 'extrinsic',\n type: 'Extrinsic'\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 name: 'block',\n type: 'Block'\n }, {\n name: 'data',\n type: 'InherentData'\n }],\n type: 'CheckInherentsResult'\n },\n inherent_extrinsics: {\n description: 'Generate inherent extrinsics.',\n params: [{\n name: 'inherent',\n type: 'InherentData'\n }],\n type: 'Vec'\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 methods: objectSpread({\n apply_extrinsic: {\n description: 'Apply the given extrinsic.',\n params: [{\n name: 'extrinsic',\n type: 'Extrinsic'\n }],\n type: 'ApplyExtrinsicResult'\n }\n }, BB_V2_TO_V6, BB_V3_TO_V6),\n version: 6\n }, {\n methods: objectSpread({// apply_extrinsic result changed in 6\n }, BB_V2_TO_V5, BB_V2_TO_V6, BB_V3_TO_V6),\n version: 5\n }, {\n methods: objectSpread({// random_seed removed\n }, BB_V2_TO_V4, BB_V2_TO_V5, BB_V2_TO_V6, BB_V3_TO_V6),\n version: 4\n }, {\n methods: objectSpread({// finalize_block renamed\n }, BB_V2_TO_V4, BB_V2_TO_V6, BB_V3_TO_V6),\n version: 3\n }, {\n methods: objectSpread({\n finalise_block: {\n description: 'Finish the current block.',\n params: [],\n type: 'Header'\n }\n }, BB_V2_TO_V4, BB_V2_TO_V6),\n version: 2\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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'\n },\n InherentIdentifier: '[u8; 8]'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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',\n nays: 'Vec'\n },\n Votes: {\n index: 'ProposalIndex',\n threshold: 'MemberCount',\n ayes: 'Vec',\n nays: 'Vec',\n end: 'BlockNumber'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n AuthorityId: 'AccountId',\n RawVRFOutput: '[u8; 32]'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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',\n _reserved: 'Option'\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'\n },\n CodeUploadResult: 'Result',\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',\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',\n ContractExecResultTo267: {\n gasConsumed: 'u64',\n debugMessage: 'Text',\n result: 'ContractExecResultResult'\n },\n ContractExecResult: {\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: 0b00000001,\n CloneInput: 0b00000010,\n TailCall: 0b00000100,\n AllowReentry: 0b00001000\n }\n },\n ContractReturnFlags: {\n _set: {\n _bitLength: 32,\n Revert: 0x00000001\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',\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',\n code: 'CodeSource',\n data: 'Bytes',\n salt: 'Bytes'\n },\n ContractInstantiateResultTo267: 'Result',\n ContractInstantiateResultTo299: 'Result',\n ContractInstantiateResult: {\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'\n },\n InstantiateReturnValueOk: {\n result: 'ExecReturnValue',\n accountId: 'AccountId'\n },\n InstantiateReturnValue: 'Result',\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',\n initial: 'Compact',\n maximum: 'Compact',\n refcount: 'Compact',\n _reserved: 'Option',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n call: {\n description: 'Executes a call to a contract',\n params: [{\n name: 'callRequest',\n type: 'ContractCallRequest'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'ContractExecResult'\n },\n getStorage: {\n description: 'Returns the value under a specified storage key in a contract',\n params: [{\n name: 'address',\n type: 'AccountId'\n }, {\n name: 'key',\n type: 'H256'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Option'\n },\n instantiate: {\n description: 'Instantiate a new contract',\n params: [{\n name: 'request',\n type: 'InstantiateRequest'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'ContractInstantiateResult'\n },\n rentProjection: {\n description: 'Returns the projected time a given contract will be able to sustain paying its rent',\n params: [{\n name: 'address',\n type: 'AccountId'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Option'\n },\n uploadCode: {\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. _\n endpoint: 'contracts_upload_code',\n params: [{\n name: 'uploadRequest',\n type: 'CodeUploadRequest'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'CodeUploadResult'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n ContractsApi: [{\n methods: {\n call: {\n description: 'Perform a call from a specified account to a given contract.',\n params: [{\n name: 'origin',\n type: 'AccountId'\n }, {\n name: 'dest',\n type: 'AccountId'\n }, {\n name: 'value',\n type: 'Balance'\n }, {\n name: 'gasLimit',\n type: 'u64'\n }, {\n name: 'storageDepositLimit',\n type: 'Option'\n }, {\n name: 'inputData',\n type: 'Vec'\n }],\n type: 'ContractExecResult'\n },\n get_storage: {\n description: 'Query a given storage key in a given contract.',\n params: [{\n name: 'address',\n type: 'AccountId'\n }, {\n name: 'key',\n type: 'Bytes'\n }],\n type: 'Option'\n },\n instantiate: {\n description: 'Instantiate a new contract.',\n params: [{\n name: 'origin',\n type: 'AccountId'\n }, {\n name: 'value',\n type: 'Balance'\n }, {\n name: 'gasLimit',\n type: 'u64'\n }, {\n name: 'storageDepositLimit',\n type: 'Option'\n }, {\n name: 'code',\n type: 'Bytes'\n }, {\n name: 'data',\n type: 'Bytes'\n }, {\n name: 'salt',\n type: 'Bytes'\n }],\n type: 'ContractInstantiateResult'\n },\n upload_code: {\n description: 'Upload new code without instantiating a contract from it.',\n params: [{\n name: 'origin',\n type: 'AccountId'\n }, {\n name: 'code',\n type: 'Bytes'\n }, {\n name: 'storageDepositLimit',\n type: 'Option'\n }],\n type: 'CodeUploadResult'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const AllConvictions = [// 0.1x votes, unlocked.\n'None', // 1x votes, locked for an enactment period following a successful vote.\n'Locked1x', // 2x votes, locked for 2x enactment periods following a successful vote.\n'Locked2x', // 3x votes, locked for 4x...\n'Locked3x', // 4x votes, locked for 8x...\n'Locked4x', // 5x votes, locked for 16x...\n'Locked5x', /// 6x votes, locked for 32x...\n'Locked6x'];\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'\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',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n getBlockStats: {\n description: 'Reexecute the specified `block_hash` and gather statistics while doing so',\n params: [{\n isHistoric: true,\n name: 'at',\n type: 'Hash'\n }],\n type: 'Option'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc: {},\n runtime,\n types: {}\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n AuthorityDiscoveryApi: [{\n methods: {\n authorities: {\n description: 'Retrieve authority identifiers of the current and next authority set.',\n params: [],\n type: 'Vec'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n ApprovalFlag: 'u32',\n DefunctVoter: {\n who: 'AccountId',\n voteCount: 'Compact',\n candidateCount: 'Compact'\n },\n Renouncing: {\n _enum: {\n Member: 'Null',\n RunnerUp: 'Null',\n Candidate: 'Compact'\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: ['Super Majority Approve', 'Super Majority Against', 'Simple Majority']\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n createBlock: {\n description: 'Instructs the manual-seal authorship task to create a new block',\n params: [{\n name: 'createEmpty',\n type: 'bool'\n }, {\n name: 'finalize',\n type: 'bool'\n }, {\n isOptional: true,\n name: 'parentHash',\n type: 'BlockHash'\n }],\n type: 'CreatedBlock'\n },\n finalizeBlock: {\n description: 'Instructs the manual-seal authorship task to finalize a block',\n params: [{\n name: 'hash',\n type: 'BlockHash'\n }, {\n isOptional: true,\n name: 'justification',\n type: 'Justification'\n }],\n type: 'bool'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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'\n },\n EvmCreateInfo: {\n exitReason: 'ExitReason',\n value: 'H160',\n usedGas: 'U256',\n logs: 'Vec'\n },\n EvmLog: {\n address: 'H160',\n topics: 'Vec',\n data: 'Bytes'\n },\n EvmVicinity: {\n gasPrice: 'u256',\n origin: 'H160'\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n AssetOptions: {\n initalIssuance: 'Compact',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util';\nconst 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 name: 'setId',\n type: 'SetId'\n }, {\n name: 'authorityId',\n type: 'AuthorityId'\n }],\n type: 'Option'\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 name: 'equivocationProof',\n type: 'GrandpaEquivocationProof'\n }, {\n name: 'keyOwnerProof',\n type: 'OpaqueKeyOwnershipProof'\n }],\n type: 'Option'\n }\n};\nexport const runtime = {\n GrandpaApi: [{\n methods: objectSpread({\n current_set_id: {\n description: 'Get current GRANDPA authority set id.',\n params: [],\n type: 'SetId'\n }\n }, GRANDPA_V2_V3),\n version: 3\n }, {\n methods: GRANDPA_V2_V3,\n version: 2\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { rpc } from \"./rpc.js\";\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc,\n runtime,\n types: {\n AuthorityIndex: 'u64',\n AuthorityList: 'Vec',\n AuthoritySet: {\n currentAuthorities: 'AuthorityList',\n setId: 'u64',\n pendingStandardChanges: 'ForkTreePendingChange',\n pendingForcedChanges: 'Vec',\n authoritySetChanges: 'AuthoritySetChanges'\n },\n ForkTreePendingChange: {\n roots: 'Vec',\n bestFinalizedNumber: 'Option'\n },\n ForkTreePendingChangeNode: {\n hash: 'BlockHash',\n number: 'BlockNumber',\n data: 'PendingChange',\n // actual data, here PendingChange\n children: 'Vec'\n },\n AuthoritySetChange: '(U64, BlockNumber)',\n AuthoritySetChanges: 'Vec',\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'\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
'\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'\n },\n Prevotes: {\n currentWeight: 'u32',\n missing: 'BTreeSet'\n },\n ReportedRoundStates: {\n setId: 'u32',\n best: 'RoundState',\n background: 'Vec'\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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 name: 'blockNumber',\n type: 'BlockNumber'\n }],\n type: 'Option'\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: ['justifications', 'subscribeJustifications', 'unsubscribeJustifications'],\n type: 'JustificationNotification'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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: 0b00000000000000000000000000000001,\n Legal: 0b00000000000000000000000000000010,\n Web: 0b00000000000000000000000000000100,\n Riot: 0b00000000000000000000000000001000,\n Email: 0b00000000000000000000000000010000,\n PgpFingerprint: 0b00000000000000000000000000100000,\n Image: 0b00000000000000000000000001000000,\n Twitter: 0b00000000000000000000000010000000\n }\n },\n IdentityInfoAdditional: '(Data, Data)',\n IdentityInfoTo198: {\n additional: 'Vec',\n display: 'Data',\n legal: 'Data',\n web: 'Data',\n riot: 'Data',\n email: 'Data',\n pgpFingerprint: 'Option',\n image: 'Data'\n },\n IdentityInfo: {\n _fallback: 'IdentityInfoTo198',\n additional: 'Vec',\n display: 'Data',\n legal: 'Data',\n web: 'Data',\n riot: 'Data',\n email: 'Data',\n pgpFingerprint: 'Option',\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',\n deposit: 'Balance',\n info: 'IdentityInfoTo198'\n },\n Registration: {\n _fallback: 'RegistrationTo198',\n judgements: 'Vec',\n deposit: 'Balance',\n info: 'IdentityInfo'\n },\n RegistrarIndex: 'u32',\n RegistrarInfo: {\n account: 'AccountId',\n fee: 'Balance',\n fields: 'IdentityFields'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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',\n OpaquePeerId: 'Opaque',\n OpaqueNetworkState: {\n peerId: 'OpaquePeerId',\n externalAddresses: 'Vec'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { rpc } from \"./rpc.js\";\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc,\n runtime,\n types: {\n MmrBatchProof: {\n leafIndices: 'Vec',\n leafCount: 'MmrNodeIndex',\n items: 'Vec'\n },\n MmrEncodableOpaqueLeaf: 'Bytes',\n MmrError: {\n _enum: ['Push', 'GetRoot', 'Commit', 'GenerateProof', 'Verify', 'LeafNotFound', ' PalletNotIncluded', 'InvalidLeafIndex']\n },\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'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n generateBatchProof: {\n description: 'Generate MMR proof for the given leaf indices.',\n params: [{\n name: 'leafIndices',\n type: 'Vec'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'MmrLeafProof'\n },\n generateProof: {\n description: 'Generate MMR proof for given leaf index.',\n params: [{\n name: 'leafIndex',\n type: 'u64'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'MmrLeafBatchProof'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n MmrApi: [{\n methods: {\n generate_batch_proof: {\n description: 'Generate MMR proof for a series of leaves under given indices.',\n params: [{\n name: 'leafIndices',\n type: 'Vec'\n }],\n type: 'Result<(Vec, MmrBatchProof), MmrError>'\n },\n generate_proof: {\n description: 'Generate MMR proof for a leaf under given index.',\n params: [{\n name: 'leafIndex',\n type: 'MmrLeafIndex'\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'\n },\n verify_batch_proof: {\n description: 'Verify MMR proof against on-chain MMR for a batch of leaves.',\n params: [{\n name: 'leaves',\n type: 'Vec'\n }, {\n name: 'proof',\n type: 'MmrBatchProof'\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 name: 'root',\n type: 'Hash'\n }, {\n name: 'leaves',\n type: 'Vec'\n }, {\n name: 'proof',\n type: 'MmrBatchProof'\n }],\n type: 'Result<(), MmrError>'\n },\n verify_proof: {\n description: 'Verify MMR proof against on-chain MMR.',\n params: [{\n name: 'leaf',\n type: 'MmrEncodableOpaqueLeaf'\n }, {\n name: 'proof',\n type: 'MmrProof'\n }],\n type: 'Result<(), MmrError>'\n },\n verify_proof_stateless: {\n description: 'Verify MMR proof against given root hash.',\n params: [{\n name: 'root',\n type: 'Hash'\n }, {\n name: 'leaf',\n type: 'MmrEncodableOpaqueLeaf'\n }, {\n name: 'proof',\n type: 'MmrProof'\n }],\n type: 'Result<(), MmrError>'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc: {},\n runtime,\n types: {\n NpApiError: {\n _enum: ['MemberNotFound', 'OverflowInPendingRewards']\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n NominationPoolsApi: [{\n methods: {\n pending_rewards: {\n description: 'Returns the pending rewards for the given member.',\n params: [{\n name: 'member',\n type: 'AccountId'\n }],\n type: 'Balance'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n DeferredOffenceOf: '(Vec, Vec, SessionIndex)',\n Kind: '[u8; 16]',\n OffenceDetails: {\n offender: 'Offender',\n reporters: 'Vec'\n },\n Offender: 'IdentificationTuple',\n OpaqueTimeSlot: 'Bytes',\n ReportIdOf: 'Hash',\n Reporter: 'AccountId'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc: {},\n runtime,\n types: {}\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n DifficultyApi: [{\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 TimestampApi: [{\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n ActiveRecovery: {\n created: 'BlockNumber',\n deposit: 'Balance',\n friends: 'Vec'\n },\n RecoveryConfig: {\n delayPeriod: 'BlockNumber',\n deposit: 'Balance',\n friends: 'Vec',\n threshold: 'u16'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n Period: '(BlockNumber, u32)',\n Priority: 'u8',\n SchedulePeriod: 'Period',\n SchedulePriority: 'Priority',\n Scheduled: {\n maybeId: 'Option',\n priority: 'SchedulePriority',\n call: 'Call',\n maybePeriodic: 'Option',\n origin: 'PalletsOrigin'\n },\n ScheduledTo254: {\n maybeId: 'Option',\n priority: 'SchedulePriority',\n call: 'Call',\n maybePeriodic: 'Option'\n },\n TaskAddress: '(BlockNumber, u32)'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { objectSpread } from '@polkadot/util';\nimport { runtime } from \"./runtime.js\"; // The runtime definition of SessionKeys are passed as a Trait to session\n// Defined in `node/runtime/src/lib.rs` as follow\n// impl_opaque_keys! {\n// pub struct SessionKeys {\n// Here we revert to tuples to keep the interfaces \"opaque\", as per the use\n\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: objectSpread({}, keyTypes, {\n FullIdentification: 'Exposure',\n IdentificationTuple: '(ValidatorId, FullIdentification)',\n MembershipProof: {\n session: 'SessionIndex',\n trieNodes: 'Vec',\n validatorCount: 'ValidatorCount'\n },\n SessionIndex: 'u32',\n ValidatorCount: 'u32'\n })\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n SessionKeys: [{\n methods: {\n decode_session_keys: {\n description: 'Decode the given public session keys.',\n params: [{\n name: 'encoded',\n type: 'Bytes'\n }],\n type: 'Option>'\n },\n generate_session_keys: {\n description: 'Generate a set of session keys with optionally using the given seed.',\n params: [{\n name: 'seed',\n type: 'Option'\n }],\n type: 'Bytes'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { objectSpread } from '@polkadot/util';\nconst deprecated = {\n Points: 'u32',\n EraPoints: {\n total: 'Points',\n individual: 'Vec'\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',\n exposures: 'Vec<(AccountId, Exposure)>'\n },\n ElectionScore: '[u128; 3]',\n ElectionSize: {\n validators: 'Compact',\n nominators: 'Compact'\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)>',\n targets: 'Vec'\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',\n targets: 'Compact'\n },\n SolutionSupport: {\n total: 'ExtendedBalance',\n voters: 'Vec<(AccountId, ExtendedBalance)>'\n },\n SolutionSupports: 'Vec<(AccountId, SolutionSupport)>',\n Supports: 'SolutionSupports',\n SubmissionIndicesOf: 'BTreeMap',\n Voter: {\n votes: 'Vec',\n stake: 'Balance',\n deposit: 'Balance'\n },\n VoteWeight: 'u64'\n};\nexport default {\n rpc: {},\n types: objectSpread({}, deprecated, phragmen, {\n ActiveEraInfo: {\n index: 'EraIndex',\n start: 'Option'\n },\n EraIndex: 'u32',\n EraRewardPoints: {\n total: 'RewardPoint',\n individual: 'BTreeMap'\n },\n EraRewards: {\n total: 'u32',\n rewards: 'Vec'\n },\n Exposure: {\n total: 'Compact',\n own: 'Compact',\n others: 'Vec'\n },\n Forcing: {\n _enum: ['NotForcing', 'ForceNew', 'ForceNone', 'ForceAlways']\n },\n IndividualExposure: {\n who: 'AccountId',\n value: 'Compact'\n },\n KeyType: 'AccountId',\n MomentOf: 'Moment',\n Nominations: {\n targets: 'Vec',\n submittedIn: 'EraIndex',\n suppressed: 'bool'\n },\n NominatorIndex: 'u32',\n NominatorIndexCompact: 'Compact',\n OffchainAccuracy: 'PerU16',\n OffchainAccuracyCompact: 'Compact',\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'\n },\n SlashingSpans: {\n spanIndex: 'SpanIndex',\n lastStart: 'EraIndex',\n lastNonzeroSlash: 'EraIndex',\n prior: 'Vec'\n },\n SpanIndex: 'u32',\n SpanRecord: {\n slashed: 'Balance',\n paidOut: 'Balance'\n },\n StakingLedgerTo223: {\n stash: 'AccountId',\n total: 'Compact',\n active: 'Compact',\n unlocking: 'Vec'\n },\n StakingLedgerTo240: {\n _fallback: 'StakingLedgerTo223',\n stash: 'AccountId',\n total: 'Compact',\n active: 'Compact',\n unlocking: 'Vec',\n lastReward: 'Option'\n },\n StakingLedger: {\n stash: 'AccountId',\n total: 'Compact',\n active: 'Compact',\n unlocking: 'Vec',\n claimedRewards: 'Vec'\n },\n UnappliedSlashOther: '(AccountId, Balance)',\n UnappliedSlash: {\n validator: 'AccountId',\n own: 'Balance',\n others: 'Vec',\n reporters: 'Vec',\n payout: 'Balance'\n },\n UnlockChunk: {\n value: 'Compact',\n era: 'Compact'\n },\n ValidatorIndex: 'u16',\n ValidatorIndexCompact: 'Compact',\n ValidatorPrefs: 'ValidatorPrefsWithBlocked',\n ValidatorPrefsWithCommission: {\n commission: 'Compact'\n },\n ValidatorPrefsWithBlocked: {\n commission: 'Compact',\n blocked: 'bool'\n },\n ValidatorPrefsTo196: {\n validatorPayment: 'Compact'\n },\n ValidatorPrefsTo145: {\n unstakeThreshold: 'Compact',\n validatorPayment: 'Compact'\n }\n })\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n WeightToFeeCoefficient: {\n coeffInteger: 'Balance',\n coeffFrac: 'Perbill',\n negative: 'bool',\n degree: 'u8'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { rpc } from \"./rpc.js\";\nexport default {\n rpc,\n types: {}\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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 name: 'raw',\n type: 'bool'\n }],\n type: 'Json'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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',\n ApplyExtrinsicResultPre6: 'Result',\n ArithmeticError: {\n _enum: ['Underflow', 'Overflow', 'DivisionByZero']\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 }\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',\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'\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',\n specName: 'Text'\n },\n NetworkState: {\n peerId: 'Text',\n listenedAddresses: 'Vec',\n externalAddresses: 'Vec',\n connectedPeers: 'HashMap',\n notConnectedPeers: 'HashMap',\n averageDownloadPerSec: 'u64',\n averageUploadPerSec: 'u64',\n peerset: 'NetworkStatePeerset'\n },\n NetworkStatePeerset: {\n messageQueue: 'u64',\n nodes: 'HashMap'\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',\n latestPingTime: 'Option',\n versionString: 'Option'\n },\n Peer: {\n enabled: 'bool',\n endpoint: 'PeerEndpoint',\n knownAddresses: 'Vec',\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'\n },\n SystemOrigin: 'RawOrigin',\n TokenError: {\n _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported', // these are dropped, but still in older versions\n // (if this adjusts, will need to take a re-look)\n 'Underflow', 'Overflow']\n },\n TransactionValidityError: {\n _enum: {\n Invalid: 'InvalidTransaction',\n Unknown: 'UnknownTransaction'\n }\n },\n TransactionalError: {\n _enum: ['LimitReached', 'NoLayer']\n },\n UnknownTransaction: {\n _enum: {\n CannotLookup: 'Null',\n NoUnsignedValidator: 'Null',\n Custom: 'u8'\n }\n },\n WeightPerClass: {\n baseExtrinsic: 'Weight',\n maxExtrinsic: 'Option',\n maxTotal: 'Option',\n reserved: 'Option'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n accountNextIndex: {\n alias: ['account_nextIndex'],\n description: 'Retrieves the next accountIndex as available on the node',\n params: [{\n name: 'accountId',\n type: 'AccountId'\n }],\n type: 'Index'\n },\n addLogFilter: {\n description: 'Adds the supplied directives to the current log filter',\n params: [{\n name: 'directives',\n type: 'Text'\n }],\n type: 'Null'\n },\n addReservedPeer: {\n description: 'Adds a reserved peer',\n params: [{\n name: 'peer',\n type: 'Text'\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 params: [{\n name: 'extrinsic',\n type: 'Bytes'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\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'\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 params: [],\n type: 'NetworkState'\n },\n nodeRoles: {\n description: 'Returns the roles the node is running as',\n params: [],\n type: 'Vec'\n },\n peers: {\n description: 'Returns the currently connected peers',\n params: [],\n type: 'Vec'\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 params: [{\n name: 'peerId',\n type: 'Text'\n }],\n type: 'Text'\n },\n reservedPeers: {\n description: 'Returns the list of reserved peers',\n params: [],\n type: 'Vec'\n },\n resetLogFilter: {\n description: 'Resets the log filter to Substrate defaults',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n AccountNonceApi: [{\n methods: {\n account_nonce: {\n description: 'The API to query account nonce (aka transaction index)',\n params: [{\n name: 'accountId',\n type: 'AccountId'\n }],\n type: 'Index'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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',\n tips: 'Vec',\n findersFee: 'bool'\n },\n OpenTipTo225: {\n reason: 'Hash',\n who: 'AccountId',\n finder: 'Option',\n closes: 'Option',\n tips: 'Vec'\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport default {\n rpc: {},\n types: {\n Multiplier: 'Fixed128'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc: {},\n runtime,\n types: {\n TransactionSource: {\n _enum: ['InBlock', 'Local', 'External']\n },\n TransactionValidity: 'Result',\n ValidTransaction: {\n priority: 'TransactionPriority',\n requires: 'Vec',\n provides: 'Vec',\n longevity: 'TransactionLongevity',\n propagate: 'bool'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n TaggedTransactionQueue: [{\n methods: {\n validate_transaction: {\n description: 'Validate the transaction.',\n params: [{\n name: 'source',\n type: 'TransactionSource'\n }, {\n name: 'tx',\n type: 'Extrinsic'\n }, {\n name: 'blockHash',\n type: 'BlockHash'\n }],\n type: 'TransactionValidity'\n }\n },\n version: 3\n }, {\n methods: {\n validate_transaction: {\n description: 'Validate the transaction.',\n params: [{\n name: 'source',\n type: 'TransactionSource'\n }, {\n name: 'tx',\n type: 'Extrinsic'\n }],\n type: 'TransactionValidity'\n }\n },\n version: 2\n }, {\n methods: {\n validate_transaction: {\n description: 'Validate the transaction.',\n params: [{\n name: 'tx',\n type: 'Extrinsic'\n }],\n type: 'TransactionValidity'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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',\n instanceMetadatas: 'Compact',\n attributes: 'Compact'\n },\n InstanceDetails: {\n owner: 'AccountId',\n approved: 'Option',\n isFrozen: 'bool',\n deposit: 'DepositBalance'\n },\n ClassMetadata: {\n deposit: 'DepositBalance',\n data: 'Vec',\n isFrozen: 'bool'\n },\n InstanceMetadata: {\n deposit: 'DepositBalance',\n data: 'Vec',\n isFrozen: 'bool'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n Multisig: {\n when: 'Timepoint',\n deposit: 'Balance',\n depositor: 'AccountId',\n approvals: 'Vec'\n },\n Timepoint: {\n height: 'BlockNumber',\n index: 'u32'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n VestingInfo: {\n locked: 'Balance',\n perBlock: 'Balance',\n startingBlock: 'BlockNumber'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n BlockAttestations: {\n receipt: 'CandidateReceipt',\n valid: 'Vec',\n invalid: 'Vec'\n },\n IncludedBlocks: {\n actualNumber: 'BlockNumber',\n session: 'SessionIndex',\n randomSeed: 'H256',\n activeParachains: 'Vec',\n paraBlocks: 'Vec'\n },\n MoreAttestations: {}\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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;\n dispatchResults: 'BitVec'\n },\n DispatchFeePayment: {\n _enum: ['AtSourceChain', 'AtTargetChain']\n },\n InboundLaneData: {\n relayers: 'Vec',\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',\n lane: 'LaneId'\n },\n MessageKey: {\n laneId: 'LaneId',\n nonce: 'MessageNonce'\n },\n MessageNonce: 'u64',\n MessagesProofOf: {\n bridgedHeaderHash: 'BridgedBlockHash',\n storageProof: 'Vec',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n StatementKind: {\n _enum: ['Regular', 'Saft']\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nconst dmpQueue = {\n CollationInfo: {\n upwardMessages: 'Vec',\n horizontalMessages: 'Vec',\n newValidationCode: 'Option',\n processedDownwardMessages: 'u32',\n hrmpWatermark: 'RelayBlockNumber',\n headData: 'HeadData'\n },\n CollationInfoV1: {\n upwardMessages: 'Vec',\n horizontalMessages: 'Vec',\n newValidationCode: 'Option',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n CollectCollationInfo: [{\n methods: {\n collect_collation_info: {\n description: 'Collect information about a collation.',\n params: [{\n name: 'header',\n type: 'Header'\n }],\n type: 'CollationInfo'\n }\n },\n version: 2\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// implemented by chains bridging into the relay, not the relay itself\nconst 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc: {},\n runtime,\n types: {}\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util';\nconst 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 name: 'paraId',\n type: 'ParaId'\n }, {\n name: 'hash',\n type: 'Hash'\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'\n },\n candidate_events: {\n description: 'Get a vector of events concerning candidates that occurred within a block.',\n params: [],\n type: 'Vec'\n },\n candidate_pending_availability: {\n description: 'Get the receipt of a candidate pending availability.',\n params: [{\n name: 'paraId',\n type: 'ParaId'\n }],\n type: 'Option'\n },\n check_validation_outputs: {\n description: 'Checks if the given validation outputs pass the acceptance criteria.',\n params: [{\n name: 'paraId',\n type: 'ParaId'\n }, {\n name: 'outputs',\n type: 'CandidateCommitments'\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 name: 'paraId',\n type: 'ParaId'\n }],\n type: 'Vec'\n },\n inbound_hrmp_channels_contents: {\n description: 'Get the contents of all channels addressed to the given recipient.',\n params: [{\n name: 'paraId',\n type: 'ParaId'\n }],\n type: 'Vec'\n },\n on_chain_votes: {\n description: 'Scrape dispute relevant from on-chain, backing votes and resolved disputes.',\n params: [],\n type: 'Option'\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 name: 'paraId',\n type: 'ParaId'\n }, {\n name: 'assumption',\n type: 'OccupiedCoreAssumption'\n }],\n type: 'Option'\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 name: 'paraId',\n type: 'ParaId'\n }, {\n name: 'assumption',\n type: 'OccupiedCoreAssumption'\n }],\n type: 'ValidationCode'\n },\n validation_code_by_hash: {\n description: 'Get the validation code from its hash.',\n params: [{\n name: 'hash',\n type: 'ValidationCodeHash'\n }],\n type: 'Option'\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>, GroupRotationInfo)'\n },\n validators: {\n description: 'Get the current validators.',\n params: [],\n type: 'Vec'\n }\n};\nexport const runtime = {\n ParachainHost: [{\n methods: objectSpread({\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'\n },\n session_info: {\n description: 'Get the session info for the given session, if stored.',\n params: [{\n name: 'index',\n type: 'SessionIndex'\n }],\n type: 'Option'\n },\n submit_pvf_check_statement: {\n description: 'Submits a PVF pre-checking statement into the transaction pool.',\n params: [{\n name: 'stmt',\n type: 'PvfCheckStatement'\n }, {\n name: 'signature',\n type: 'ValidatorSignature'\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 name: 'paraId',\n type: 'ParaId'\n }, {\n name: 'assumption',\n type: 'OccupiedCoreAssumption'\n }],\n type: 'Option'\n }\n }, PH_V1_TO_V2),\n version: 2\n }, {\n methods: objectSpread({\n session_info: {\n description: 'Get the session info for the given session, if stored.',\n params: [{\n name: 'index',\n type: 'SessionIndex'\n }],\n type: 'Option'\n }\n }, PH_V1_TO_V2),\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util'; // order important in structs... :)\n\n/* eslint-disable sort-keys */\n\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 objectSpread({}, 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',\n WinnersData: 'Vec',\n WinnersDataTuple10: '(AccountId, ParaId, BalanceOf, SlotRange10)',\n WinnersDataTuple: '(AccountId, ParaId, BalanceOf, SlotRange)'\n});","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { objectSpread } from '@polkadot/util';\nimport hrmpTypes from \"./hrmp.js\";\nimport { runtime } from \"./runtime.js\";\nimport slotTypes from \"./slots.js\"; // proposeParachain\n\nconst proposeTypes = {\n ParachainProposal: {\n proposer: 'AccountId',\n genesisHead: 'HeadData',\n validators: 'Vec',\n name: 'Bytes',\n balance: 'Balance'\n },\n RegisteredParachainInfo: {\n validators: 'Vec',\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'\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 ExplicitDisputeStatement: {\n valid: 'bool',\n candidateHash: 'CandidateHash',\n session: 'SessionIndex'\n },\n InvalidDisputeStatementKind: {\n _enum: ['Explicit']\n },\n MultiDisputeStatementSet: 'Vec',\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: objectSpread({}, cumulusTypes, disputeTypes, hrmpTypes, proposeTypes, 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'\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',\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',\n validatorIndices: 'BitVec'\n },\n BufferedSessionChange: {\n applyAt: 'BlockNumber',\n validators: 'Vec',\n queued: 'Vec',\n sessionIndex: 'SessionIndex'\n },\n CandidateCommitments: {\n upwardMessages: 'Vec',\n horizontalMessages: 'Vec',\n newValidationCode: 'Option',\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 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',\n maxValidators: 'Option',\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',\n LocalValidationData: {\n parentHead: 'HeadData',\n balance: 'Balance',\n codeUpgradeAllowed: 'Option'\n },\n MessageIngestionType: {\n downwardMessages: 'Vec',\n horizontalMessages: 'BTreeMap'\n },\n MessageQueueChain: 'RelayChainHash',\n OccupiedCore: {\n nextUpOnAvailable: 'Option',\n occupiedSince: 'BlockNumber',\n timeOutAt: 'BlockNumber',\n nextUpOnTimeOut: 'Option',\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 ParachainDispatchOrigin: {\n _enum: ['Signed', 'Parachain', 'Root']\n },\n ParachainInherentData: {\n validationData: 'PersistedValidationData',\n relayChainState: 'StorageProof',\n downwardMessages: 'Vec',\n horizontalMessages: 'BTreeMap'\n },\n ParachainsInherentData: {\n bitfields: 'SignedAvailabilityBitfields',\n backedCandidates: 'Vec',\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',\n lastPruned: 'Option'\n },\n ParaScheduling: {\n _enum: ['Always', 'Dynamic']\n },\n ParathreadClaim: '(ParaId, CollatorId)',\n ParathreadClaimQueue: {\n queue: 'Vec',\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'\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',\n randomSeed: '[u8; 32]',\n disputePeriod: 'SessionIndex',\n validators: 'Vec',\n discoveryKeys: 'Vec',\n assignmentKeys: 'Vec',\n validatorGroups: 'Vec>',\n nCores: 'u32',\n zerothDelayTrancheWidth: 'u32',\n relayVrfModuloSamples: 'u32',\n nDelayTranches: 'u32',\n noShowSlots: 'u32',\n neededApprovals: 'u32'\n },\n OldV1SessionInfo: {\n validators: 'Vec',\n discoveryKeys: 'Vec',\n assignmentKeys: 'Vec',\n validatorGroups: 'Vec>',\n nCores: 'u32',\n zerothDelayTrancheWidth: 'u32',\n relayVrfModuloSamples: 'u32',\n nDelayTranches: 'u32',\n noShowSlots: 'u32',\n neededApprovals: 'u32'\n },\n SessionInfoValidatorGroup: 'Vec',\n SignedAvailabilityBitfield: {\n payload: 'BitVec',\n validatorIndex: 'ParaValidatorIndex',\n signature: 'ValidatorSignature'\n },\n SignedAvailabilityBitfields: 'Vec',\n SigningContext: {\n sessionIndex: 'SessionIndex',\n parentHash: 'Hash'\n },\n Statement: {\n _enum: {\n Never: 'Null',\n // starts at 1\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',\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'\n },\n ValidationCode: 'Bytes',\n ValidationCodeHash: 'Hash',\n ValidationData: {\n persisted: 'PersistedValidationData',\n transient: 'TransientValidationData'\n },\n ValidationDataType: {\n validationData: 'ValidationData',\n relayChainState: 'Vec'\n },\n ValidatorSignature: 'Signature',\n ValidityAttestation: {\n _enum: {\n Never: 'Null',\n // starts at 1\n Implicit: 'ValidatorSignature',\n Explicit: 'ValidatorSignature'\n }\n },\n MessagingStateSnapshot: {\n relayDispatchQueueSize: '(u32, u32)',\n egressChannels: 'Vec'\n },\n MessagingStateSnapshotEgressEntry: '(ParaId, AbridgedHrmpChannel)',\n SystemInherentData: 'ParachainInherentData',\n VecInboundHrmpMessage: 'Vec'\n })\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\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',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n Approvals: '[bool; 4]'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport default {\n rpc: {},\n types: {\n AccountStatus: {\n validity: 'AccountValidity',\n freeBalance: 'Balance',\n lockedBalance: 'Balance',\n signature: 'Vec',\n vat: 'Permill'\n },\n AccountValidity: {\n _enum: ['Invalid', 'Initiated', 'Pending', 'ValidLow', 'ValidHigh', 'Completed']\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { mapXcmTypes } from '@polkadot/types-create';\nimport { objectSpread } from '@polkadot/util';\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'\n};\nconst location = {\n BodyId: {\n _enum: {\n Unit: 'Null',\n Named: 'Vec',\n Index: 'Compact',\n Executive: 'Null',\n Technical: 'Null',\n Legislative: 'Null',\n Judicial: 'Null'\n }\n },\n BodyPart: {\n _enum: {\n Voice: 'Null',\n Members: 'Compact',\n Fraction: {\n nom: 'Compact',\n denom: 'Compact'\n },\n AtLeastProportion: {\n nom: 'Compact',\n denom: 'Compact'\n },\n MoreThanProportion: {\n nom: 'Compact',\n denom: 'Compact'\n }\n }\n },\n InteriorMultiLocation: 'Junctions',\n NetworkId: {\n _enum: {\n Any: 'Null',\n Named: 'Vec',\n Polkadot: 'Null',\n Kusama: 'Null'\n }\n }\n};\nexport default {\n rpc: {},\n types: objectSpread({}, location, xcm, v0, v1, v2, mapXcmTypes(XCM_LATEST), {\n DoubleEncodedCall: {\n encoded: 'Vec'\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',\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',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const v0 = {\n FungibilityV0: 'FungibilityV1',\n WildFungibilityV0: 'WildFungibilityV1',\n AssetInstanceV0: {\n _enum: {\n Undefined: 'Null',\n Index8: 'u8',\n Index16: 'Compact',\n Index32: 'Compact',\n Index64: 'Compact',\n Index128: 'Compact',\n Array4: '[u8; 4]',\n Array8: '[u8; 8]',\n Array16: '[u8; 16]',\n Array32: '[u8; 32]',\n Blob: 'Vec'\n }\n },\n JunctionV0: {\n _enum: {\n Parent: 'Null',\n Parachain: 'Compact',\n AccountId32: {\n network: 'NetworkId',\n id: 'AccountId'\n },\n AccountIndex64: {\n network: 'NetworkId',\n index: 'Compact'\n },\n AccountKey20: {\n network: 'NetworkId',\n key: '[u8; 20]'\n },\n PalletInstance: 'u8',\n GeneralIndex: 'Compact',\n GeneralKey: 'Vec',\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',\n AllAbstractNonFungible: 'Vec',\n AllConcreteFungible: 'MultiLocationV0',\n AllConcreteNonFungible: 'MultiLocationV0',\n AbstractFungible: {\n id: 'Vec',\n instance: 'Compact'\n },\n AbstractNonFungible: {\n class: 'Vec',\n instance: 'AssetInstanceV0'\n },\n ConcreteFungible: {\n id: 'MultiLocationV0',\n amount: 'Compact'\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'\n }\n },\n XcmV0: {\n _enum: {\n WithdrawAsset: {\n assets: 'Vec',\n effects: 'Vec'\n },\n ReserveAssetDeposit: {\n assets: 'Vec',\n effects: 'Vec'\n },\n ReceiveTeleportedAsset: {\n assets: 'Vec',\n effects: 'Vec'\n },\n QueryResponse: {\n queryId: 'Compact',\n response: 'ResponseV0'\n },\n TransferAsset: {\n assets: 'Vec',\n dest: 'MultiLocationV0'\n },\n TransferReserveAsset: {\n assets: 'Vec',\n dest: 'MultiLocationV0',\n effects: 'Vec'\n },\n Transact: {\n originType: 'XcmOriginKind',\n requireWeightAtMost: 'u64',\n call: 'DoubleEncodedCall'\n },\n HrmpNewChannelOpenRequest: {\n sender: 'Compact',\n maxMessageSize: 'Compact',\n maxCapacity: 'Compact'\n },\n HrmpChannelAccepted: {\n recipient: 'Compact'\n },\n HrmpChannelClosing: {\n initiator: 'Compact',\n sender: 'Compact',\n recipient: 'Compact'\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',\n dest: 'MultiLocationV0'\n },\n DepositReserveAsset: {\n assets: 'Vec',\n dest: 'MultiLocationV0',\n effects: 'Vec'\n },\n ExchangeAsset: {\n give: 'Vec',\n receive: 'Vec'\n },\n InitiateReserveWithdraw: {\n assets: 'Vec',\n reserve: 'MultiLocationV0',\n effects: 'Vec'\n },\n InitiateTeleport: {\n assets: 'Vec',\n dest: 'MultiLocationV0',\n effects: 'Vec'\n },\n QueryHolding: {\n queryId: 'Compact',\n dest: 'MultiLocationV0',\n assets: 'Vec'\n },\n BuyExecution: {\n fees: 'MultiAssetV0',\n weight: 'u64',\n debt: 'u64',\n haltOnError: 'bool',\n xcm: 'Vec'\n }\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport const v1 = {\n AssetInstanceV1: {\n _enum: {\n Undefined: 'Null',\n Index: 'Compact',\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',\n NonFungible: 'AssetInstanceV1'\n }\n },\n JunctionV1: {\n _enum: {\n Parachain: 'Compact',\n AccountId32: {\n network: 'NetworkId',\n id: 'AccountId'\n },\n AccountIndex64: {\n network: 'NetworkId',\n index: 'Compact'\n },\n AccountKey20: {\n network: 'NetworkId',\n key: '[u8; 20]'\n },\n PalletInstance: 'u8',\n GeneralIndex: 'Compact',\n GeneralKey: 'Vec',\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',\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'\n },\n ReserveAssetDeposit: {\n assets: 'MultiAssetsV1',\n effects: 'Vec'\n },\n ReceiveTeleportedAsset: {\n assets: 'MultiAssetsV1',\n effects: 'Vec'\n },\n QueryResponse: {\n queryId: 'Compact',\n response: 'ResponseV1'\n },\n TransferAsset: {\n assets: 'MultiAssetsV1',\n dest: 'MultiLocationV1'\n },\n TransferReserveAsset: {\n assets: 'MultiAssetsV1',\n dest: 'MultiLocationV1',\n effects: 'Vec'\n },\n Transact: {\n originType: 'XcmOriginKind',\n requireWeightAtMost: 'u64',\n call: 'DoubleEncodedCall'\n },\n HrmpNewChannelOpenRequest: {\n sender: 'Compact',\n maxMessageSize: 'Compact',\n maxCapacity: 'Compact'\n },\n HrmpChannelAccepted: {\n recipient: 'Compact'\n },\n HrmpChannelClosing: {\n initiator: 'Compact',\n sender: 'Compact',\n recipient: 'Compact'\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'\n },\n ExchangeAsset: {\n give: 'MultiAssetFilterV1',\n receive: 'MultiAssetsV1'\n },\n InitiateReserveWithdraw: {\n assets: 'MultiAssetFilterV1',\n reserve: 'MultiLocationV1',\n effects: 'Vec'\n },\n InitiateTeleport: {\n assets: 'MultiAssetFilterV1',\n dest: 'MultiLocationV1',\n effects: 'Vec'\n },\n QueryHolding: {\n queryId: 'Compact',\n dest: 'MultiLocationV1',\n assets: 'MultiAssetFilterV1'\n },\n BuyExecution: {\n fees: 'MultiAssetV1',\n weight: 'u64',\n debt: 'u64',\n haltOnError: 'bool',\n instructions: 'Vec'\n }\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nexport 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',\n WeightLimitV2: {\n _enum: {\n Unlimited: 'Null',\n Limited: 'Compact'\n }\n },\n InstructionV2: {\n _enum: {\n WithdrawAsset: 'MultiAssetsV2',\n ReserveAssetDeposited: 'MultiAssetsV2',\n ReceiveTeleportedAsset: 'MultiAssetsV2',\n QueryResponse: {\n queryId: 'Compact',\n response: 'ResponseV2',\n maxWeight: 'Compact'\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',\n maxMessageSize: 'Compact',\n maxCapacity: 'Compact'\n },\n HrmpChannelAccepted: {\n recipient: 'Compact'\n },\n HrmpChannelClosing: {\n initiator: 'Compact',\n sender: 'Compact',\n recipient: 'Compact'\n },\n ClearOrigin: 'Null',\n DescendOrigin: 'InteriorMultiLocation',\n ReportError: {\n queryId: 'Compact',\n dest: 'MultiLocationV2',\n maxResponseWeight: 'Compact'\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',\n dest: 'MultiLocationV2',\n assets: 'MultiAssetFilterV2',\n maxResponse_Weight: 'Compact'\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',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util'; // order important in structs... :)\n\n/* eslint-disable sort-keys */\n\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'\n },\n ContractLayoutHash: {\n offset: 'ContractLayoutKey',\n strategy: 'ContractLayoutHashingStrategy',\n layout: 'ContractStorageLayout'\n },\n ContractLayoutHashingStrategy: {\n hasher: 'ContractCryptoHasher',\n postfix: 'Vec',\n prefix: 'Vec'\n },\n ContractLayoutKey: '[u8; 32]',\n ContractLayoutStruct: {\n fields: 'Vec'\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',\n docs: 'Vec'\n },\n ContractConstructorSpecV1: {\n name: 'Vec',\n selector: 'ContractSelector',\n args: 'Vec',\n docs: 'Vec'\n },\n ContractConstructorSpecV2: {\n label: 'Text',\n selector: 'ContractSelector',\n args: 'Vec',\n docs: 'Vec'\n },\n ContractConstructorSpecV3: {\n label: 'Text',\n selector: 'ContractSelector',\n payable: 'bool',\n args: 'Vec',\n docs: 'Vec'\n },\n ContractContractSpecV0: {\n constructors: 'Vec',\n messages: 'Vec',\n events: 'Vec',\n docs: 'Vec'\n },\n ContractContractSpecV1: {\n constructors: 'Vec',\n messages: 'Vec',\n events: 'Vec',\n docs: 'Vec'\n },\n ContractContractSpecV2: {\n constructors: 'Vec',\n messages: 'Vec',\n events: 'Vec',\n docs: 'Vec'\n },\n ContractContractSpecV3: {\n constructors: 'Vec',\n messages: 'Vec',\n events: 'Vec',\n docs: 'Vec'\n },\n ContractContractSpecV4: 'ContractContractSpecV3',\n ContractDisplayName: 'SiPath',\n ContractEventParamSpecV0: {\n name: 'Text',\n indexed: 'bool',\n type: 'ContractTypeSpec',\n docs: 'Vec'\n },\n ContractEventParamSpecV2: {\n label: 'Text',\n indexed: 'bool',\n type: 'ContractTypeSpec',\n docs: 'Vec'\n },\n ContractEventSpecV0: {\n name: 'Text',\n args: 'Vec',\n docs: 'Vec'\n },\n ContractEventSpecV1: {\n name: 'Text',\n args: 'Vec',\n docs: 'Vec'\n },\n ContractEventSpecV2: {\n label: 'Text',\n args: 'Vec',\n docs: 'Vec'\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',\n returnType: 'Option',\n docs: 'Vec'\n },\n ContractMessageSpecV1: {\n name: 'Vec',\n selector: 'ContractSelector',\n mutates: 'bool',\n payable: 'bool',\n args: 'Vec',\n returnType: 'Option',\n docs: 'Vec'\n },\n ContractMessageSpecV2: {\n label: 'Text',\n selector: 'ContractSelector',\n mutates: 'bool',\n payable: 'bool',\n args: 'Vec',\n returnType: 'Option',\n docs: 'Vec'\n },\n ContractSelector: '[u8; 4]',\n ContractTypeSpec: {\n type: 'SiLookupTypeId',\n displayName: 'ContractDisplayName'\n }\n};\nconst ContractMetadataV0 = {\n metadataVersion: 'Text',\n types: 'Vec',\n spec: 'ContractContractSpecV0'\n};\nconst ContractMetadataV1 = {\n types: 'Vec',\n spec: 'ContractContractSpecV1'\n};\nconst ContractMetadataV2 = {\n types: 'Vec',\n spec: 'ContractContractSpecV2'\n};\nconst ContractMetadataV3 = {\n types: 'Vec',\n spec: 'ContractContractSpecV3'\n};\nconst ContractMetadataV4 = ContractMetadataV3;\nconst ContractProjectInfo = {\n source: 'ContractProjectSource',\n contract: 'ContractProjectContract'\n};\nconst latest = {\n ContractConstructorSpecLatest: 'ContractConstructorSpecV3',\n ContractEventSpecLatest: 'ContractEventSpecV2',\n ContractEventParamSpecLatest: 'ContractEventParamSpecV2',\n ContractMessageParamSpecLatest: 'ContractMessageParamSpecV2',\n ContractMessageSpecLatest: 'ContractMessageSpecV2',\n ContractMetadataLatest: 'ContractMetadataV4'\n};\nexport default {\n rpc: {},\n types: objectSpread({}, layout, spec, latest, {\n ContractProjectInfo,\n ContractMetadataV0,\n ContractMetadataV1,\n ContractMetadataV2,\n ContractMetadataV3,\n ContractMetadataV4,\n ContractMetadata: {\n _enum: {\n V0: 'ContractMetadataV0',\n V1: 'ContractMetadataV1',\n V2: 'ContractMetadataV2',\n V3: 'ContractMetadataV3',\n V4: 'ContractMetadataV4'\n }\n },\n ContractProjectV0: objectSpread({\n metadataVersion: 'Text'\n }, ContractProjectInfo, ContractMetadataV0),\n ContractProject: '(ContractProjectInfo, ContractMetadata)',\n ContractProjectContract: {\n _alias: {\n docs: 'documentation'\n },\n name: 'Text',\n version: 'Text',\n authors: 'Vec',\n description: 'Option',\n docs: 'Option',\n repository: 'Option',\n homepage: 'Option',\n license: 'Option'\n },\n ContractProjectSource: {\n _alias: {\n wasmHash: 'hash'\n },\n wasmHash: '[u8; 32]',\n language: 'Text',\n compiler: 'Text',\n wasm: 'Raw'\n }\n })\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\n// As per frontier\nimport { objectSpread } from '@polkadot/util';\nimport { rpc } from \"./rpc.js\";\nimport { runtime } from \"./runtime.js\";\nconst V0 = {\n BlockV0: {\n header: 'EthHeader',\n transactions: 'Vec',\n ommers: 'Vec'\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',\n ommers: 'Vec'\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',\n ommers: 'Vec'\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 = objectSpread({}, V0, V1, V2, {\n EthereumAccountId: 'GenericEthereumAccountId',\n EthereumAddress: 'GenericEthereumAccountId',\n EthereumLookupSource: 'GenericEthereumLookupSource',\n EthereumSignature: '[u8; 65]',\n EthAccessListItem: {\n address: 'EthAddress',\n slots: 'Vec'\n },\n EthAccessList: 'Vec',\n EthAccount: {\n address: 'EthAddress',\n balance: 'U256',\n nonce: 'U256',\n codeHash: 'H256',\n storageHash: 'H256',\n accountProof: 'Vec',\n storageProof: 'Vec'\n },\n EthAddress: 'H160',\n EthBlock: {\n header: 'EthHeader',\n transactions: 'Vec',\n ommers: 'Vec'\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',\n parentHash: 'H256',\n sha3Uncles: 'H256',\n author: 'EthAddress',\n miner: 'EthAddress',\n stateRoot: 'H256',\n transactionsRoot: 'H256',\n receiptsRoot: 'H256',\n number: 'Option',\n gasUsed: 'U256',\n gasLimit: 'U256',\n extraData: 'Bytes',\n logsBloom: 'EthBloom',\n timestamp: 'U256',\n difficulty: 'U256',\n totalDifficulty: 'Option',\n sealFields: 'Vec',\n uncles: 'Vec',\n transactions: 'Vec',\n blockSize: 'Option'\n },\n EthBloom: 'H2048',\n EthCallRequest: {\n from: 'Option',\n to: 'Option',\n gasPrice: 'Option',\n gas: 'Option',\n value: 'Option',\n data: 'Option',\n nonce: 'Option'\n },\n EthFeeHistory: {\n oldestBlock: 'U256',\n baseFeePerGas: 'Vec',\n gasUsedRatio: 'Vec',\n reward: 'Option>>'\n },\n EthFilter: {\n fromBlock: 'Option',\n toBlock: 'Option',\n blockHash: 'Option',\n address: 'Option',\n topics: 'Option'\n },\n EthFilterAddress: {\n _enum: {\n Single: 'EthAddress',\n Multiple: 'Vec',\n Null: 'Null'\n }\n },\n EthFilterChanges: {\n _enum: {\n Logs: 'Vec',\n Hashes: 'Vec',\n Empty: 'Null'\n }\n },\n EthFilterTopic: {\n _enum: {\n Single: 'EthFilterTopicInner',\n Multiple: 'Vec',\n Null: 'Null'\n }\n },\n EthFilterTopicEntry: 'Option',\n EthFilterTopicInner: {\n _enum: {\n Single: 'EthFilterTopicEntry',\n Multiple: 'Vec',\n Null: 'Null'\n }\n },\n EthRichHeader: {\n _alias: {\n blockHash: 'hash',\n blockSize: 'size'\n },\n blockHash: 'Option',\n parentHash: 'H256',\n sha3Uncles: 'H256',\n author: 'EthAddress',\n miner: 'EthAddress',\n stateRoot: 'H256',\n transactionsRoot: 'H256',\n receiptsRoot: 'H256',\n number: 'Option',\n gasUsed: 'U256',\n gasLimit: 'U256',\n extraData: 'Bytes',\n logsBloom: 'EthBloom',\n timestamp: 'U256',\n difficulty: 'U256',\n sealFields: 'Vec',\n blockSize: 'Option'\n },\n EthLog: {\n address: 'EthAddress',\n topics: 'Vec',\n data: 'Bytes',\n blockHash: 'Option',\n blockNumber: 'Option',\n transactionHash: 'Option',\n transactionIndex: 'Option',\n logIndex: 'Option',\n transactionLogIndex: 'Option',\n removed: 'bool'\n },\n EthReceipt: {\n transactionHash: 'Option',\n transactionIndex: 'Option',\n blockHash: 'Option',\n from: 'Option',\n to: 'Option',\n blockNumber: 'Option',\n cumulativeGasUsed: 'U256',\n gasUsed: 'Option',\n contractAddress: 'Option',\n logs: 'Vec',\n root: 'Option',\n logsBloom: 'EthBloom',\n statusCode: 'Option'\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'\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',\n warpChunksProcessed: 'Option'\n },\n EthSyncStatus: {\n _enum: {\n Info: 'EthSyncInfo',\n None: 'Null'\n }\n },\n EthTransaction: {\n hash: 'H256',\n nonce: 'U256',\n blockHash: 'Option',\n blockNumber: 'Option',\n transactionIndex: 'Option',\n from: 'H160',\n to: 'Option',\n value: 'U256',\n gasPrice: 'Option',\n maxFeePerGas: 'Option',\n maxPriorityFeePerGas: 'Option',\n gas: 'U256',\n input: 'Bytes',\n creates: 'Option',\n raw: 'Bytes',\n publicKey: 'Option',\n chainId: 'Option',\n standardV: 'U256',\n v: 'U256',\n r: 'U256',\n s: 'U256',\n accessList: 'Option>',\n transactionType: 'Option'\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',\n to: 'Option',\n gasPrice: 'Option',\n gas: 'Option',\n value: 'Option',\n data: 'Option',\n nonce: 'Option'\n },\n EthTransactionStatus: {\n transactionHash: 'H256',\n transactionIndex: 'u32',\n from: 'EthAddress',\n to: 'Option',\n contractAddress: 'Option',\n logs: 'Vec',\n logsBloom: 'EthBloom'\n },\n EthWork: {\n powHash: 'H256',\n seedHash: 'H256',\n target: 'H256',\n number: 'Option'\n }\n});\nexport default {\n rpc,\n runtime,\n types\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// As per frontier\nimport { objectSpread } from '@polkadot/util'; // We use aliasSection here to override since these are in another namespace\n\nconst 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: [{\n name: 'data',\n type: 'Bytes'\n }],\n type: 'H256'\n }\n};\nexport const rpc = objectSpread({}, netRpc, web3Rpc, {\n accounts: {\n description: 'Returns accounts list.',\n params: [],\n type: 'Vec'\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 name: 'request',\n type: 'EthCallRequest'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'number',\n type: 'BlockNumber'\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 name: 'request',\n type: 'EthCallRequest'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'number',\n type: 'BlockNumber'\n }],\n type: 'U256'\n },\n feeHistory: {\n description: 'Returns fee history for given block count & reward percentiles',\n params: [{\n name: 'blockCount',\n type: 'U256'\n }, {\n name: 'newestBlock',\n type: 'BlockNumber'\n }, {\n name: 'rewardPercentiles',\n type: 'Option>'\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 name: 'address',\n type: 'H160'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'number',\n type: 'BlockNumber'\n }],\n type: 'U256'\n },\n getBlockByHash: {\n description: 'Returns block with given hash.',\n params: [{\n name: 'hash',\n type: 'H256'\n }, {\n name: 'full',\n type: 'bool'\n }],\n type: 'Option'\n },\n getBlockByNumber: {\n description: 'Returns block with given number.',\n params: [{\n name: 'block',\n type: 'BlockNumber'\n }, {\n name: 'full',\n type: 'bool'\n }],\n type: 'Option'\n },\n getBlockTransactionCountByHash: {\n description: 'Returns the number of transactions in a block with given hash.',\n params: [{\n name: 'hash',\n type: 'H256'\n }],\n type: 'U256'\n },\n getBlockTransactionCountByNumber: {\n description: 'Returns the number of transactions in a block with given block number.',\n params: [{\n name: 'block',\n type: 'BlockNumber'\n }],\n type: 'U256'\n },\n getCode: {\n description: 'Returns the code at given address at given time (block number).',\n params: [{\n name: 'address',\n type: 'H160'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'number',\n type: 'BlockNumber'\n }],\n type: 'Bytes'\n },\n getFilterChanges: {\n description: 'Returns filter changes since last poll.',\n params: [{\n name: 'index',\n type: 'U256'\n }],\n type: 'EthFilterChanges'\n },\n getFilterLogs: {\n description: 'Returns all logs matching given filter (in a range \\'from\\' - \\'to\\').',\n params: [{\n name: 'index',\n type: 'U256'\n }],\n type: 'Vec'\n },\n getLogs: {\n description: 'Returns logs matching given filter object.',\n params: [{\n name: 'filter',\n type: 'EthFilter'\n }],\n type: 'Vec'\n },\n getProof: {\n description: 'Returns proof for account and storage.',\n params: [{\n name: 'address',\n type: 'H160'\n }, {\n name: 'storageKeys',\n type: 'Vec'\n }, {\n name: 'number',\n type: 'BlockNumber'\n }],\n type: 'EthAccount'\n },\n getStorageAt: {\n description: 'Returns content of the storage at given address.',\n params: [{\n name: 'address',\n type: 'H160'\n }, {\n name: 'index',\n type: 'U256'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'number',\n type: 'BlockNumber'\n }],\n type: 'H256'\n },\n getTransactionByBlockHashAndIndex: {\n description: 'Returns transaction at given block hash and index.',\n params: [{\n name: 'hash',\n type: 'H256'\n }, {\n name: 'index',\n type: 'U256'\n }],\n type: 'EthTransaction'\n },\n getTransactionByBlockNumberAndIndex: {\n description: 'Returns transaction by given block number and index.',\n params: [{\n name: 'number',\n type: 'BlockNumber'\n }, {\n name: 'index',\n type: 'U256'\n }],\n type: 'EthTransaction'\n },\n getTransactionByHash: {\n description: 'Get transaction by its hash.',\n params: [{\n name: 'hash',\n type: 'H256'\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 name: 'hash',\n type: 'H256'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'number',\n type: 'BlockNumber'\n }],\n type: 'U256'\n },\n getTransactionReceipt: {\n description: 'Returns transaction receipt by transaction hash.',\n params: [{\n name: 'hash',\n type: 'H256'\n }],\n type: 'EthReceipt'\n },\n getUncleByBlockHashAndIndex: {\n description: 'Returns an uncles at given block and index.',\n params: [{\n name: 'hash',\n type: 'H256'\n }, {\n name: 'index',\n type: 'U256'\n }],\n type: 'EthRichBlock'\n },\n getUncleByBlockNumberAndIndex: {\n description: 'Returns an uncles at given block and index.',\n params: [{\n name: 'number',\n type: 'BlockNumber'\n }, {\n name: 'index',\n type: 'U256'\n }],\n type: 'EthRichBlock'\n },\n getUncleCountByBlockHash: {\n description: 'Returns the number of uncles in a block with given hash.',\n params: [{\n name: 'hash',\n type: 'H256'\n }],\n type: 'U256'\n },\n getUncleCountByBlockNumber: {\n description: 'Returns the number of uncles in a block with given block number.',\n params: [{\n name: 'number',\n type: 'BlockNumber'\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 name: 'filter',\n type: 'EthFilter'\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 name: 'bytes',\n type: 'Bytes'\n }],\n type: 'H256'\n },\n sendTransaction: {\n description: 'Sends transaction; will block waiting for signer to return the transaction hash',\n params: [{\n name: 'tx',\n type: 'EthTransactionRequest'\n }],\n type: 'H256'\n },\n submitHashrate: {\n description: 'Used for submitting mining hashrate.',\n params: [{\n name: 'index',\n type: 'U256'\n }, {\n name: 'hash',\n type: 'H256'\n }],\n type: 'bool'\n },\n submitWork: {\n description: 'Used for submitting a proof-of-work solution.',\n params: [{\n name: 'nonce',\n type: 'H64'\n }, {\n name: 'headerHash',\n type: 'H256'\n }, {\n name: 'mixDigest',\n type: 'H256'\n }],\n type: 'bool'\n },\n subscribe: {\n description: 'Subscribe to Eth subscription.',\n params: [{\n name: 'kind',\n type: 'EthSubKind'\n }, {\n isOptional: true,\n name: 'params',\n type: 'EthSubParams'\n }],\n pubsub: ['subscription', 'subscribe', 'unsubscribe'],\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 name: 'index',\n type: 'U256'\n }],\n type: 'bool'\n }\n});","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n ConvertTransactionRuntimeApi: [{\n methods: {\n convert_transaction: {\n description: 'Converts an Ethereum-style transaction to Extrinsic',\n params: [{\n name: 'transaction',\n type: 'TransactionV2'\n }],\n type: 'Extrinsic'\n }\n },\n version: 2\n }],\n DebugRuntimeApi: [{\n methods: {\n trace_block: {\n description: 'Trace all block extrinsics',\n params: [{\n name: 'extrinsics',\n type: 'Vec'\n }, {\n name: 'knownTransactions',\n type: 'Vec'\n }],\n type: 'Result<(), DispatchError>'\n },\n trace_transaction: {\n description: 'Trace transaction extrinsics',\n params: [{\n name: 'extrinsics',\n type: 'Vec'\n }, {\n name: 'transaction',\n type: 'EthTransaction'\n }],\n type: 'Result<(), DispatchError>'\n }\n },\n version: 4\n }],\n EthereumRuntimeRPCApi: [{\n methods: {\n account_basic: {\n description: 'Returns pallet_evm::Accounts by address.',\n params: [{\n name: 'address',\n type: 'H160'\n }],\n type: 'EvmAccount'\n },\n account_code_at: {\n description: 'For a given account address, returns pallet_evm::AccountCodes.',\n params: [{\n name: 'address',\n type: 'H160'\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 name: 'from',\n type: 'H160'\n }, {\n name: 'to',\n type: 'H160'\n }, {\n name: 'data',\n type: 'Vec'\n }, {\n name: 'value',\n type: 'U256'\n }, {\n name: 'gasLimit',\n type: 'U256'\n }, {\n name: 'maxFeePerGas',\n type: 'Option'\n }, {\n name: 'maxPriorityFeePerGas',\n type: 'Option'\n }, {\n name: 'nonce',\n type: 'Option'\n }, {\n name: 'estimate',\n type: 'bool'\n }, {\n name: 'accessList',\n type: 'Option)>>'\n }],\n type: 'Result'\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 name: 'from',\n type: 'H160'\n }, {\n name: 'data',\n type: 'Vec'\n }, {\n name: 'value',\n type: 'U256'\n }, {\n name: 'gasLimit',\n type: 'U256'\n }, {\n name: 'maxFeePerGas',\n type: 'Option'\n }, {\n name: 'maxPriorityFeePerGas',\n type: 'Option'\n }, {\n name: 'nonce',\n type: 'Option'\n }, {\n name: 'estimate',\n type: 'bool'\n }, {\n name: 'accessList',\n type: 'Option)>>'\n }],\n type: 'Result'\n },\n current_all: {\n description: 'Return all the current data for a block in a single runtime call.',\n params: [],\n type: '(Option, Option>, Option>)'\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>'\n },\n current_transaction_statuses: {\n description: 'Return the current transaction status.',\n params: [],\n type: 'Option>'\n },\n elasticity: {\n description: 'Return the elasticity multiplier.',\n params: [],\n type: 'Option'\n },\n extrinsic_filter: {\n description: 'Receives a `Vec` and filters all the ethereum transactions.',\n params: [{\n name: 'xts',\n type: 'Vec'\n }],\n type: 'Vec'\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 name: 'address',\n type: 'H160'\n }, {\n name: 'index',\n type: 'u256'\n }],\n type: 'H256'\n }\n },\n version: 4\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc: {},\n runtime,\n types: {}\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n // deprecated, the NimbusApi is current - this is for backwards compat\n AuthorFilterAPI: [{\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 name: 'author',\n type: 'AccountId'\n }, {\n name: 'relayParent',\n type: 'u32'\n }, {\n name: 'parentHeader',\n type: 'Header'\n }],\n type: 'bool'\n }\n },\n version: 2\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 name: 'author',\n type: 'AccountId'\n }, {\n name: 'relayParent',\n type: 'u32'\n }],\n type: 'bool'\n }\n },\n version: 1\n }],\n NimbusApi: [{\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 name: 'author',\n type: 'AccountId'\n }, {\n name: 'relayParent',\n type: 'u32'\n }, {\n name: 'parentHeader',\n type: 'Header'\n }],\n type: 'bool'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc: {},\n runtime,\n types: {}\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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 methods: {\n get_all_values: {\n description: 'Retrieves all values',\n params: [{\n name: 'providerId',\n // This is a Codec type\n type: 'Raw'\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)>'\n type: 'Raw'\n },\n get_value: {\n description: 'Retrieves a single value',\n params: [{\n name: 'providerId',\n // This is a Codec type\n type: 'Raw'\n }, {\n name: 'key',\n // This is a Codec type\n type: 'Raw'\n }],\n // This is an Option type\n type: 'Option'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc: {},\n runtime,\n types: {}\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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 methods: {\n query_existential_deposit: {\n description: 'Query the existential amount for a specific currency',\n params: [{\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 // 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { rpc } from \"./rpc.js\";\nexport default {\n rpc,\n types: {\n RpcMethods: {\n version: 'u32',\n methods: 'Vec'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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',\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n hasKey: {\n description: 'Returns true if the keystore has private keys for the given public key and key type.',\n params: [{\n name: 'publicKey',\n type: 'Bytes'\n }, {\n name: 'keyType',\n type: 'Text'\n }],\n type: 'bool'\n },\n hasSessionKeys: {\n description: 'Returns true if the keystore has private keys for the given session public keys.',\n params: [{\n name: 'sessionKeys',\n type: 'Bytes'\n }],\n type: 'bool'\n },\n insertKey: {\n description: 'Insert a key into the keystore.',\n params: [{\n name: 'keyType',\n type: 'Text'\n }, {\n name: 'suri',\n type: 'Text'\n }, {\n name: 'publicKey',\n type: 'Bytes'\n }],\n type: 'Bytes'\n },\n pendingExtrinsics: {\n description: 'Returns all pending extrinsics, potentially grouped by sender',\n params: [],\n type: 'Vec'\n },\n removeExtrinsic: {\n description: 'Remove given extrinsic from the pool and temporarily ban it to prevent reimporting',\n params: [{\n name: 'bytesOrHash',\n type: 'Vec'\n }],\n type: 'Vec'\n },\n rotateKeys: {\n description: 'Generate new session keys and returns the corresponding public keys',\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 name: 'extrinsic',\n type: 'Extrinsic'\n }],\n pubsub: ['extrinsicUpdate', 'submitAndWatchExtrinsic', 'unwatchExtrinsic'],\n type: 'ExtrinsicStatus'\n },\n submitExtrinsic: {\n description: 'Submit a fully formatted extrinsic for block inclusion',\n isSigned: true,\n params: [{\n name: 'extrinsic',\n type: 'Extrinsic'\n }],\n type: 'Hash'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { rpc } from \"./rpc.js\";\nexport default {\n rpc,\n types: {\n BlockHash: 'Hash'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n getBlock: {\n description: 'Get header and body of a relay chain block',\n params: [{\n isHistoric: true,\n isOptional: true,\n name: 'hash',\n type: 'BlockHash'\n }],\n type: 'SignedBlock'\n },\n getBlockHash: {\n description: 'Get the block hash for a specific block',\n params: [{\n isOptional: true,\n name: 'blockNumber',\n type: 'BlockNumber'\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 isHistoric: true,\n isOptional: true,\n name: 'hash',\n type: 'BlockHash'\n }],\n type: 'Header'\n },\n subscribeAllHeads: {\n description: 'Retrieves the newest header via subscription',\n params: [],\n pubsub: ['allHead', 'subscribeAllHeads', 'unsubscribeAllHeads'],\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: ['finalizedHead', 'subscribeFinalizedHeads', 'unsubscribeFinalizedHeads'],\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: ['newHead', 'subscribeNewHead', 'unsubscribeNewHead'],\n type: 'Header'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { rpc } from \"./rpc.js\";\nexport default {\n rpc,\n types: {\n // StorageKey extends Bytes\n PrefixedStorageKey: 'StorageKey'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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 name: 'childKey',\n type: 'PrefixedStorageKey'\n }, {\n name: 'prefix',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'Hash'\n }],\n type: 'Vec'\n },\n getKeysPaged: {\n alias: ['childstate_getKeysPagedAt'],\n description: 'Returns the keys with prefix from a child storage with pagination support',\n params: [{\n name: 'childKey',\n type: 'PrefixedStorageKey'\n }, {\n name: 'prefix',\n type: 'StorageKey'\n }, {\n name: 'count',\n type: 'u32'\n }, {\n isOptional: true,\n name: 'startKey',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'Hash'\n }],\n type: 'Vec'\n },\n getStorage: {\n description: 'Returns a child storage entry at a specific block state',\n params: [{\n name: 'childKey',\n type: 'PrefixedStorageKey'\n }, {\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'Hash'\n }],\n type: 'Option'\n },\n getStorageEntries: {\n description: 'Returns child storage entries for multiple keys at a specific block state',\n params: [{\n name: 'childKey',\n type: 'PrefixedStorageKey'\n }, {\n name: 'keys',\n type: 'Vec'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'Hash'\n }],\n type: 'Vec>'\n },\n getStorageHash: {\n description: 'Returns the hash of a child storage entry at a block state',\n params: [{\n name: 'childKey',\n type: 'PrefixedStorageKey'\n }, {\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'Hash'\n }],\n type: 'Option'\n },\n getStorageSize: {\n description: 'Returns the size of a child storage entry at a block state',\n params: [{\n name: 'childKey',\n type: 'PrefixedStorageKey'\n }, {\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'Hash'\n }],\n type: 'Option'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n localStorageGet: {\n description: 'Get offchain local storage under given key and prefix',\n params: [{\n name: 'kind',\n type: 'StorageKind'\n }, {\n name: 'key',\n type: 'Bytes'\n }],\n type: 'Option'\n },\n localStorageSet: {\n description: 'Set offchain local storage under given key and prefix',\n params: [{\n name: 'kind',\n type: 'StorageKind'\n }, {\n name: 'key',\n type: 'Bytes'\n }, {\n name: 'value',\n type: 'Bytes'\n }],\n type: 'Null'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n OffchainWorkerApi: [{\n methods: {\n offchain_worker: {\n description: 'Starts the off-chain task for given block header.',\n params: [{\n name: 'header',\n type: 'Header'\n }],\n type: 'Null'\n }\n },\n version: 2\n }, {\n methods: {\n offchain_worker: {\n description: 'Starts the off-chain task for given block header.',\n params: [{\n name: 'number',\n type: 'BlockNumber'\n }],\n type: 'Null'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { rpc } from \"./rpc.js\";\nimport { runtime } from \"./runtime.js\";\nexport default {\n rpc,\n runtime,\n types: {\n FeeDetails: {\n inclusionFee: 'Option' // skipped in serde\n // tip: 'Balance'\n\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 }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n queryFeeDetails: {\n description: 'Query the detailed fee of a given encoded extrinsic',\n params: [{\n name: 'extrinsic',\n type: 'Bytes'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'FeeDetails'\n },\n queryInfo: {\n description: 'Retrieves the fee information for an encoded extrinsic',\n params: [{\n name: 'extrinsic',\n type: 'Bytes'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'RuntimeDispatchInfo'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const runtime = {\n TransactionPaymentApi: [{\n methods: {\n query_fee_details: {\n description: 'The transaction fee details',\n params: [{\n name: 'uxt',\n type: 'Extrinsic'\n }, {\n name: 'len',\n type: 'u32'\n }],\n type: 'FeeDetails'\n },\n query_info: {\n description: 'The transaction info',\n params: [{\n name: 'uxt',\n type: 'Extrinsic'\n }, {\n name: 'len',\n type: 'u32'\n }],\n type: 'RuntimeDispatchInfo'\n }\n },\n version: 1\n }],\n TransactionPaymentCallApi: [{\n methods: {\n query_call_fee_details: {\n description: 'The call fee details',\n params: [{\n name: 'call',\n type: 'Call'\n }, {\n name: 'len',\n type: 'u32'\n }],\n type: 'FeeDetails'\n },\n query_call_info: {\n description: 'The call info',\n params: [{\n name: 'call',\n type: 'Call'\n }, {\n name: 'len',\n type: 'u32'\n }],\n type: 'RuntimeDispatchInfo'\n }\n },\n version: 1\n }]\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// order important in structs... :)\n\n/* eslint-disable sort-keys */\nimport { 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',\n events: 'Vec'\n },\n BlockTraceEvent: {\n target: 'Text',\n data: 'BlockTraceEventData',\n parentId: 'Option'\n },\n BlockTraceEventData: {\n stringValues: 'HashMap'\n },\n BlockTraceSpan: {\n id: 'u64',\n parentId: 'Option',\n name: 'Text',\n target: 'Text',\n wasm: 'bool'\n },\n KeyValueOption: '(StorageKey, Option)',\n MigrationStatusResult: {\n topRemainingToMigrate: 'u64',\n childRemainingToMigrate: 'u64'\n },\n ReadProof: {\n at: 'Hash',\n proof: 'Vec'\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',\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',\n transactionVersion: 'u32'\n },\n RuntimeVersionPre3: {\n specName: 'Text',\n implName: 'Text',\n authoringVersion: 'u32',\n specVersion: 'u32',\n implVersion: 'u32',\n apis: 'Vec'\n },\n RuntimeVersionPartial: {\n specName: 'Text',\n specVersion: 'u32',\n apis: 'Vec'\n },\n SpecVersion: 'u32',\n StorageChangeSet: {\n block: 'Hash',\n changes: 'Vec'\n },\n TraceBlockResponse: {\n _enum: {\n TraceError: 'TraceError',\n BlockTrace: 'BlockTrace'\n }\n },\n TraceError: {\n error: 'Text'\n }\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const rpc = {\n call: {\n alias: ['state_callAt'],\n description: 'Perform a call to a builtin on the chain',\n params: [{\n name: 'method',\n type: 'Text'\n }, {\n name: 'data',\n type: 'Bytes'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Bytes'\n },\n getChildKeys: {\n description: 'Retrieves the keys with prefix of a specific child storage',\n params: [{\n name: 'childStorageKey',\n type: 'StorageKey'\n }, {\n name: 'childDefinition',\n type: 'StorageKey'\n }, {\n name: 'childType',\n type: 'u32'\n }, {\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Vec'\n },\n getChildReadProof: {\n description: 'Returns proof of storage for child key entries at a specific block state.',\n params: [{\n name: 'childStorageKey',\n type: 'PrefixedStorageKey'\n }, {\n name: 'keys',\n type: 'Vec'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'ReadProof'\n },\n getChildStorage: {\n description: 'Retrieves the child storage for a key',\n params: [{\n name: 'childStorageKey',\n type: 'StorageKey'\n }, {\n name: 'childDefinition',\n type: 'StorageKey'\n }, {\n name: 'childType',\n type: 'u32'\n }, {\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'StorageData'\n },\n getChildStorageHash: {\n description: 'Retrieves the child storage hash',\n params: [{\n name: 'childStorageKey',\n type: 'StorageKey'\n }, {\n name: 'childDefinition',\n type: 'StorageKey'\n }, {\n name: 'childType',\n type: 'u32'\n }, {\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Hash'\n },\n getChildStorageSize: {\n description: 'Retrieves the child storage size',\n params: [{\n name: 'childStorageKey',\n type: 'StorageKey'\n }, {\n name: 'childDefinition',\n type: 'StorageKey'\n }, {\n name: 'childType',\n type: 'u32'\n }, {\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'u64'\n },\n getKeys: {\n description: 'Retrieves the keys with a certain prefix',\n params: [{\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Vec'\n },\n getKeysPaged: {\n alias: ['state_getKeysPagedAt'],\n description: 'Returns the keys with prefix with pagination support.',\n params: [{\n name: 'key',\n type: 'StorageKey'\n }, {\n name: 'count',\n type: 'u32'\n }, {\n isOptional: true,\n name: 'startKey',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Vec'\n },\n getMetadata: {\n description: 'Returns the runtime metadata',\n params: [{\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Metadata'\n },\n getPairs: {\n description: 'Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged)',\n params: [{\n name: 'prefix',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Vec'\n },\n getReadProof: {\n description: 'Returns proof of storage entries at a specific block state',\n params: [{\n name: 'keys',\n type: 'Vec'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'ReadProof'\n },\n getRuntimeVersion: {\n alias: ['chain_getRuntimeVersion'],\n description: 'Get the runtime version',\n params: [{\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'RuntimeVersion'\n },\n getStorage: {\n alias: ['state_getStorageAt'],\n description: 'Retrieves the storage for a key',\n params: [{\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'StorageData'\n },\n getStorageHash: {\n alias: ['state_getStorageHashAt'],\n description: 'Retrieves the storage hash',\n params: [{\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Hash'\n },\n getStorageSize: {\n alias: ['state_getStorageSizeAt'],\n description: 'Retrieves the storage size',\n params: [{\n name: 'key',\n type: 'StorageKey'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'u64'\n },\n queryStorage: {\n description: 'Query historical storage entries (by key) starting from a start block',\n params: [{\n name: 'keys',\n type: 'Vec'\n }, {\n name: 'fromBlock',\n type: 'Hash'\n }, {\n isOptional: true,\n name: 'toBlock',\n type: 'BlockHash'\n }],\n type: 'Vec'\n },\n queryStorageAt: {\n description: 'Query storage entries (by key) starting at block hash given as the second parameter',\n params: [{\n name: 'keys',\n type: 'Vec'\n }, {\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'Vec'\n },\n subscribeRuntimeVersion: {\n alias: ['chain_subscribeRuntimeVersion', 'chain_unsubscribeRuntimeVersion'],\n description: 'Retrieves the runtime version via subscription',\n params: [],\n pubsub: ['runtimeVersion', 'subscribeRuntimeVersion', 'unsubscribeRuntimeVersion'],\n type: 'RuntimeVersion'\n },\n subscribeStorage: {\n description: 'Subscribes to storage changes for the provided keys',\n params: [{\n isOptional: true,\n name: 'keys',\n type: 'Vec'\n }],\n pubsub: ['storage', 'subscribeStorage', 'unsubscribeStorage'],\n type: 'StorageChangeSet'\n },\n traceBlock: {\n description: 'Provides a way to trace the re-execution of a single block',\n params: [{\n name: 'block',\n type: 'Hash'\n }, {\n name: 'targets',\n type: 'Option'\n }, {\n name: 'storageKeys',\n type: 'Option'\n }, {\n name: 'methods',\n type: 'Option'\n }],\n type: 'TraceBlockResponse'\n },\n trieMigrationStatus: {\n description: 'Check current migration state',\n params: [{\n isHistoric: true,\n isOptional: true,\n name: 'at',\n type: 'BlockHash'\n }],\n type: 'MigrationStatusResult'\n }\n};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { lazyMethod } from '@polkadot/util';\nexport function lazyVariants(lookup, {\n type\n}, getName, creator) {\n const result = {};\n const variants = lookup.getSiType(type).def.asVariant.variants;\n\n for (let i = 0; i < variants.length; i++) {\n lazyMethod(result, variants[i], creator, getName, i);\n }\n\n return result;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { stringCamelCase } from '@polkadot/util';\n\nfunction convert(fn) {\n return ({\n name\n }) => fn(name);\n}\n\nexport const objectNameToCamel = convert(stringCamelCase);\nexport const objectNameToString = convert(n => n.toString());","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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({\n args: variant.fields.map(({\n type\n }) => lookup.getTypeDef(type).type)\n }, variant);\n}\n/** @internal */\n\nexport function decorateErrors(registry, {\n lookup,\n pallets\n}, version) {\n const result = {};\n\n for (let i = 0; i < pallets.length; i++) {\n const {\n errors,\n index,\n name\n } = pallets[i];\n\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) && isCodec(errorMod.index) && errorMod.index.eq(sectionIndex) && (isU8a(errorMod.error) ? errorMod.error[0] === variant.index.toNumber() : isCodec(errorMod.error) && errorMod.error.eq(variant.index)),\n meta: registry.createTypeUnsafe('ErrorMetadataLatest', [variantToMeta(lookup, variant)])\n })));\n }\n }\n\n return result;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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({\n events\n}) {\n return events.isSome;\n}\n/** @internal */\n\nexport function decorateEvents(registry, {\n lookup,\n pallets\n}, version) {\n const result = {};\n const filtered = pallets.filter(filterEventsSome);\n\n for (let i = 0; i < filtered.length; i++) {\n const {\n events,\n index,\n name\n } = 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) && isU8a(eventRecord.index) && sectionIndex === eventRecord.index[0] && variant.index.eq(eventRecord.index[1]),\n meta: registry.createTypeUnsafe('EventMetadataLatest', [variantToMeta(lookup, variant)])\n })));\n }\n\n return result;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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({\n calls\n}) {\n return calls.isSome;\n}\nexport function createCallFunction(registry, lookup, variant, sectionName, sectionIndex) {\n const {\n fields,\n index\n } = variant;\n const args = new Array(fields.length);\n\n for (let a = 0; a < fields.length; a++) {\n const {\n name,\n type,\n typeName\n } = fields[a];\n args[a] = objectSpread({\n name: stringCamelCase(name.unwrapOr(`param${a}`)),\n type: getSiName(lookup, type)\n }, typeName.isSome ? {\n typeName: typeName.unwrap()\n } : null);\n }\n\n return createUnchecked(registry, sectionName, new Uint8Array([sectionIndex, index.toNumber()]), registry.createTypeUnsafe('FunctionMetadataLatest', [objectSpread({\n args\n }, variant)]));\n}\n/** @internal */\n\nexport function decorateExtrinsics(registry, {\n lookup,\n pallets\n}, version) {\n const result = {};\n const filtered = pallets.filter(filterCallsSome);\n\n for (let i = 0; i < filtered.length; i++) {\n const {\n calls,\n index,\n name\n } = 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\n return result;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { stringCamelCase } from '@polkadot/util';\n\nfunction isTx(tx, callIndex) {\n return tx.callIndex[0] === callIndex[0] && tx.callIndex[1] === callIndex[1];\n}\n/** @internal */\n\n\nexport function createUnchecked(registry, section, callIndex, callMetadata) {\n const expectedArgs = callMetadata.fields;\n const funcName = stringCamelCase(callMetadata.name);\n\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\n return registry.createTypeUnsafe('Call', [{\n args,\n callIndex\n }, callMetadata]);\n };\n\n extrinsicFn.is = tx => isTx(tx, callIndex);\n\n extrinsicFn.callIndex = callIndex;\n extrinsicFn.meta = callMetadata;\n extrinsicFn.method = funcName;\n extrinsicFn.section = section;\n\n extrinsicFn.toJSON = () => callMetadata.toJSON();\n\n return extrinsicFn;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { hexToU8a, lazyMethod, lazyMethods, stringCamelCase } from '@polkadot/util';\nimport { objectNameToCamel } from \"../util.js\";\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\nexport function decorateConstants(registry, {\n pallets\n}, _version) {\n const result = {};\n\n for (let i = 0; i < pallets.length; i++) {\n const {\n constants,\n name\n } = pallets[i];\n\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 codec.meta = constant;\n return codec;\n }, objectNameToCamel));\n }\n }\n\n return result;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util'; // migrate a storage hasher type\n// see https://github.com/paritytech/substrate/pull/4462\n\n/** @internal */\n\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\n return registry.createTypeUnsafe('StorageHasherV10', [hasher]);\n}\n/** @internal */\n\n\nfunction createStorageType(registry, entryType) {\n if (entryType.isMap) {\n return [objectSpread({}, entryType.asMap, {\n hasher: createStorageHasher(registry, entryType.asMap.hasher)\n }), 1];\n }\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\n return [entryType.asPlain, 0];\n}\n/** @internal */\n\n\nfunction convertModule(registry, mod) {\n const storage = mod.storage.unwrapOr(null);\n return registry.createTypeUnsafe('ModuleMetadataV10', [objectSpread({}, mod, {\n storage: storage ? objectSpread({}, storage, {\n items: storage.items.map(item => objectSpread({}, item, {\n type: registry.createTypeUnsafe('StorageEntryTypeV10', createStorageType(registry, item.type))\n }))\n }) : null\n })]);\n}\n/** @internal */\n\n\nexport function toV10(registry, {\n modules\n}) {\n return registry.createTypeUnsafe('MetadataV10', [{\n modules: modules.map(mod => convertModule(registry, mod))\n }]);\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/** @internal */\nexport function toV11(registry, {\n modules\n}) {\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}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util';\n/**\n * @internal\n **/\n\nexport function toV12(registry, {\n extrinsic,\n modules\n}) {\n return registry.createTypeUnsafe('MetadataV12', [{\n extrinsic,\n modules: modules.map(mod => registry.createTypeUnsafe('ModuleMetadataV12', [objectSpread({}, mod, {\n index: 255\n })]))\n }]);\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @internal\n **/\nexport function toV13(registry, metadata) {\n return registry.createTypeUnsafe('MetadataV13', [metadata]);\n}","// Copyright 2017-2022 @polkadot/types-known authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util'; // type overrides for modules (where duplication between modules exist)\n\nconst 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 */\n\nexport function getAliasTypes({\n knownTypes\n}, section) {\n var _knownTypes$typesAlia;\n\n return objectSpread({}, typesAlias[section], (_knownTypes$typesAlia = knownTypes.typesAlias) === null || _knownTypes$typesAlia === void 0 ? void 0 : _knownTypes$typesAlia[section]);\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 **/\n\nfunction compatType(specs, _type) {\n const type = _type.toString();\n\n const index = specs.findIndex(({\n def\n }) => def.HistoricMetaCompat === type);\n\n if (index !== -1) {\n return index;\n }\n\n return specs.push({\n def: {\n HistoricMetaCompat: type\n }\n }) - 1;\n}\n\nfunction compatTypes(specs, ...types) {\n for (let i = 0; i < types.length; i++) {\n compatType(specs, types[i]);\n }\n}\n\nfunction makeTupleType(specs, entries) {\n return specs.push({\n def: {\n Tuple: entries\n }\n }) - 1;\n}\n\nfunction makeVariantType(modName, variantType, specs, variants) {\n return specs.push({\n def: {\n Variant: {\n variants\n }\n },\n path: [`pallet_${modName.toString()}`, 'pallet', variantType]\n }) - 1;\n}\n/**\n * @internal\n * generate & register the OriginCaller type\n **/\n\n\nfunction registerOriginCaller(registry, modules, metaVersion) {\n registry.register({\n OriginCaller: {\n _enum: modules.map((mod, index) => [mod.name.toString(), metaVersion >= 12 ? mod.index.toNumber() : index]).sort((a, b) => a[1] - b[1]).reduce((result, [name, index]) => {\n for (let i = Object.keys(result).length; i < index; i++) {\n result[`Empty${i}`] = 'Null';\n }\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 **/\n\n\nfunction setTypeOverride(sectionTypes, types) {\n types.forEach(type => {\n const override = Object.keys(sectionTypes).find(aliased => type.eq(aliased));\n\n if (override) {\n type.setOverride(sectionTypes[override]);\n } else {\n // FIXME: NOT happy with this approach, but gets over the initial hump cased by (Vec,BalanceOf)\n const orig = type.toString();\n const alias = Object.entries(sectionTypes).reduce((result, [src, dst]) => BOXES.reduce((result, [a, z]) => result.replace(`${a}${src}${z}`, `${a}${dst}${z}`), result), orig);\n\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 **/\n\n\nfunction convertCalls(specs, registry, modName, calls, sectionTypes) {\n const variants = calls.map(({\n args,\n docs,\n name\n }, index) => {\n setTypeOverride(sectionTypes, args.map(({\n type\n }) => type));\n return registry.createTypeUnsafe('SiVariant', [{\n docs,\n fields: args.map(({\n name,\n type\n }) => registry.createTypeUnsafe('SiField', [{\n name,\n type: compatType(specs, type)\n }])),\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 */\n\n\nfunction convertConstants(specs, registry, constants, sectionTypes) {\n return constants.map(({\n docs,\n name,\n type,\n value\n }) => {\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 */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\nfunction convertErrors(specs, registry, modName, errors, _sectionTypes) {\n const variants = errors.map(({\n docs,\n name\n }, 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 **/\n\n\nfunction convertEvents(specs, registry, modName, events, sectionTypes) {\n const variants = events.map(({\n args,\n docs,\n name\n }, index) => {\n setTypeOverride(sectionTypes, args);\n return registry.createTypeUnsafe('SiVariant', [{\n docs,\n fields: args.map(t => registry.createTypeUnsafe('SiField', [{\n type: compatType(specs, t)\n }])),\n index,\n name\n }]);\n });\n return registry.createTypeUnsafe('PalletEventMetadataV14', [{\n type: makeVariantType(modName, 'Event', specs, variants)\n }]);\n}\n\nfunction createMapEntry(specs, registry, sectionTypes, {\n hashers,\n isLinked,\n isOptional,\n keys,\n value\n}) {\n setTypeOverride(sectionTypes, [value, ...(Array.isArray(keys) ? keys : [keys])]);\n return registry.createTypeUnsafe('StorageEntryTypeV14', [{\n Map: {\n hashers,\n key: hashers.length === 1 ? compatType(specs, keys[0]) : makeTupleType(specs, keys.map(t => compatType(specs, t))),\n value: isLinked // 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()}>)`) : compatType(specs, value)\n }\n }]);\n}\n/**\n * Apply module-specific storage type overrides (always part of toV14)\n * @internal\n **/\n\n\nfunction convertStorage(specs, registry, {\n items,\n prefix\n}, sectionTypes) {\n return registry.createTypeUnsafe('PalletStorageMetadataV14', [{\n items: items.map(({\n docs,\n fallback,\n modifier,\n name,\n type\n }) => {\n let entryType;\n\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 } 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 } 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 } 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\n return registry.createTypeUnsafe('StorageEntryMetadataV14', [{\n docs,\n fallback,\n modifier,\n name,\n type: entryType\n }]);\n }),\n prefix\n }]);\n}\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\nfunction convertExtrinsic(registry, {\n signedExtensions,\n version\n}) {\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 })),\n type: 0,\n // Map to extrinsic like in v14?\n version\n }]);\n}\n/** @internal */\n\n\nfunction createPallet(specs, registry, mod, {\n calls,\n constants,\n errors,\n events,\n storage\n}) {\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 **/\n\n\nexport function toV14(registry, v13, metaVersion) {\n const specs = []; // position 0 always has Null, additionally add internal defaults\n\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', [{\n id,\n type\n }]))\n },\n pallets\n }]);\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Convert the Metadata (which is an alias) to latest\n * @internal\n **/\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function toLatest(registry, v14, _metaVersion) {\n return v14;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { U32 } from '@polkadot/types-codec';\nexport const MAGIC_NUMBER = 0x6174656d; // `meta`, reversed for Little Endian encoding\n\nexport class MagicNumber extends U32 {\n constructor(registry, value) {\n super(registry, value);\n\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}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { objectSpread } from '@polkadot/util';\n\nfunction trimDocs(docs) {\n const strings = docs.map(d => d.toString().trim());\n const firstEmpty = strings.findIndex(d => !d.length);\n return firstEmpty === -1 ? strings : strings.slice(0, firstEmpty);\n}\n/** @internal */\n\n\nexport function toCallsOnly(registry, {\n extrinsic,\n lookup,\n pallets\n}) {\n return registry.createTypeUnsafe('MetadataLatest', [{\n extrinsic,\n lookup: {\n types: lookup.types.map(({\n id,\n type\n }) => registry.createTypeUnsafe('PortableType', [{\n id,\n type: objectSpread({}, type, {\n docs: trimDocs(type.docs)\n })\n }]))\n },\n pallets: pallets.map(({\n calls,\n index,\n name\n }) => ({\n calls: registry.createTypeUnsafe('Option', [calls.unwrapOr(null)]),\n index,\n name\n }))\n }]).toJSON();\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/** @internal */\nexport function flattenUniq(list, result = []) {\n for (let i = 0; i < list.length; i++) {\n const entry = list[i];\n\n if (Array.isArray(entry)) {\n flattenUniq(entry, result);\n } else {\n result.push(entry);\n }\n }\n\n return [...new Set(result)];\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { getTypeDef, TypeDefInfo } from '@polkadot/types-create';\n\nfunction extractSubSingle(_, {\n sub\n}) {\n const {\n lookupName,\n type\n } = sub;\n return extractTypes([lookupName || type]);\n}\n\nfunction extractSubArray(_, {\n sub\n}) {\n return extractTypes(sub.map(({\n lookupName,\n type\n }) => lookupName || type));\n}\n\nfunction unhandled(type, {\n info\n}) {\n throw new Error(`Unhandled: Unable to create and validate type from ${type} (info=${TypeDefInfo[info]})`);\n} // we only handle the types with params here\n\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 */\n\nexport function extractTypes(types) {\n const count = types.length;\n const result = new Array(count);\n\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\n return result;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { logger } from '@polkadot/util';\nimport { extractTypes } from \"./extractTypes.js\";\nimport { flattenUniq } from \"./flattenUniq.js\";\nconst l = logger('metadata');\n/** @internal */\n\nexport function validateTypes(registry, throwError, types) {\n const missing = flattenUniq(extractTypes(types)).filter(type => !registry.hasType(type) && !registry.isLookupType(type)).sort();\n\n if (missing.length !== 0) {\n const message = `Unknown types found, no types for ${missing.join(', ')}`;\n\n if (throwError) {\n throw new Error(message);\n } else {\n l.warn(message);\n }\n }\n\n return types;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { flattenUniq } from \"./flattenUniq.js\";\nimport { validateTypes } from \"./validateTypes.js\";\n/** @internal */\n\nfunction extractTypes(lookup, types) {\n return types.map(({\n type\n }) => lookup.getTypeDef(type).type);\n}\n/** @internal */\n\n\nfunction extractFieldTypes(lookup, type) {\n return lookup.getSiType(type).def.asVariant.variants.map(({\n fields\n }) => extractTypes(lookup, fields));\n}\n/** @internal */\n\n\nfunction getPalletNames({\n lookup,\n pallets\n}) {\n return pallets.reduce((all, {\n calls,\n constants,\n events,\n storage\n }) => {\n all.push([extractTypes(lookup, constants)]);\n\n if (calls.isSome) {\n all.push(extractFieldTypes(lookup, calls.unwrap().type));\n }\n\n if (events.isSome) {\n all.push(extractFieldTypes(lookup, events.unwrap().type));\n }\n\n if (storage.isSome) {\n all.push(storage.unwrap().items.map(({\n type\n }) => {\n if (type.isPlain) {\n return [lookup.getTypeDef(type.asPlain).type];\n }\n\n const {\n hashers,\n key,\n value\n } = type.asMap;\n return hashers.length === 1 ? [lookup.getTypeDef(value).type, lookup.getTypeDef(key).type] : [lookup.getTypeDef(value).type, ...lookup.getSiType(key).def.asTuple.map(t => lookup.getTypeDef(t).type)];\n }));\n }\n\n return all;\n }, []);\n}\n/** @internal */\n\n\nexport function getUniqTypes(registry, meta, throwError) {\n return validateTypes(registry, throwError, flattenUniq(getPalletNames(meta)));\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Struct } from '@polkadot/types-codec';\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 { toLatest } from \"./v14/toLatest.js\";\nimport { MagicNumber } from \"./MagicNumber.js\";\nimport { getUniqTypes, toCallsOnly } from \"./util/index.js\"; // Use these to generate all the Meta* types below via template keys\n// NOTE: Keep from latest -> earliest, see the LATEST_VERSION 0 index\n\nconst KNOWN_VERSIONS = [14, 13, 12, 11, 10, 9];\nconst LATEST_VERSION = KNOWN_VERSIONS[0];\n\n/**\n * @name MetadataVersioned\n * @description\n * The versioned runtime metadata as a decoded structure\n */\nexport class MetadataVersioned extends Struct {\n #converted = new Map();\n\n constructor(registry, value) {\n // const timeStart = performance.now()\n super(registry, {\n magicNumber: MagicNumber,\n metadata: 'MetadataAll'\n }, value); // console.log('MetadataVersioned', `${(performance.now() - timeStart).toFixed(2)}ms`)\n }\n\n #assertVersion = version => {\n if (this.version > version) {\n throw new Error(`Cannot convert metadata from version ${this.version} to ${version}`);\n }\n\n return this.version === version;\n };\n #getVersion = (version, fromPrev) => {\n const asCurr = `asV${version}`;\n const asPrev = version === 'latest' ? `asV${LATEST_VERSION}` : `asV${version - 1}`;\n\n if (version !== 'latest' && this.#assertVersion(version)) {\n return this.#metadata()[asCurr];\n }\n\n if (!this.#converted.has(version)) {\n this.#converted.set(version, fromPrev(this.registry, this[asPrev], this.version));\n }\n\n return this.#converted.get(version);\n };\n /**\n * @description the metadata wrapped\n */\n\n #metadata = () => {\n return this.getT('metadata');\n };\n /**\n * @description Returns the wrapped metadata as a limited calls-only (latest) version\n */\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), LATEST_VERSION])\n });\n }\n /**\n * @description Returns the wrapped metadata as a V9 object\n */\n\n\n get asV9() {\n this.#assertVersion(9);\n return this.#metadata().asV9;\n }\n /**\n * @description Returns the wrapped values as a V10 object\n */\n\n\n get asV10() {\n return this.#getVersion(10, toV10);\n }\n /**\n * @description Returns the wrapped values as a V11 object\n */\n\n\n get asV11() {\n return this.#getVersion(11, toV11);\n }\n /**\n * @description Returns the wrapped values as a V12 object\n */\n\n\n get asV12() {\n return this.#getVersion(12, toV12);\n }\n /**\n * @description Returns the wrapped values as a V13 object\n */\n\n\n get asV13() {\n return this.#getVersion(13, toV13);\n }\n /**\n * @description Returns the wrapped values as a V14 object\n */\n\n\n get asV14() {\n return this.#getVersion(14, toV14);\n }\n /**\n * @description Returns the wrapped values as a latest version object\n */\n\n\n get asLatest() {\n return this.#getVersion('latest', toLatest);\n }\n /**\n * @description The magicNumber for the Metadata (known constant)\n */\n\n\n get magicNumber() {\n return this.getT('magicNumber');\n }\n /**\n * @description the metadata version this structure represents\n */\n\n\n get version() {\n return this.#metadata().index;\n }\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\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}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isString, isU8a, u8aToU8a } from '@polkadot/util';\nimport { MetadataVersioned } from \"./MetadataVersioned.js\"; // magic + lowest supported version\n\nconst EMPTY_METADATA = new Uint8Array([0x6d, 0x65, 0x74, 0x61, 9]); // magic u32 preceding the version id\n\nconst VERSION_IDX = EMPTY_METADATA.length - 1;\n/** @internal */\n\nfunction decodeU8a(registry, u8a) {\n if (u8a.length === 0) {\n return EMPTY_METADATA;\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 } catch (error) {\n u8a[VERSION_IDX] = 10;\n return u8a;\n }\n }\n\n return u8a;\n}\n/**\n * @name Metadata\n * @description\n * The versioned runtime metadata as a decoded structure\n */\n\n\nexport class Metadata extends MetadataVersioned {\n constructor(registry, value) {\n // const timeStart = performance.now()\n super(registry, isU8a(value) || isString(value) ? decodeU8a(registry, u8aToU8a(value)) : value); // console.log('Metadata', `${(performance.now() - timeStart).toFixed(2)}ms`)\n }\n\n}","// Copyright 2017-2022 @polkadot/types-create authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isNumber, isUndefined, objectSpread, stringify } from '@polkadot/util';\nimport { TypeDefInfo } from \"../types/index.js\";\n\nconst stringIdentity = value => value.toString();\n\nconst INFO_WRAP = ['BTreeMap', 'BTreeSet', 'Compact', 'HashMap', 'Option', 'Result', 'Vec'];\nexport function paramsNotation(outer, inner, transform = stringIdentity) {\n return `${outer}${inner ? `<${(Array.isArray(inner) ? inner : [inner]).map(transform).join(', ')}>` : ''}`;\n}\n\nfunction encodeWithParams(registry, typeDef, outer) {\n const {\n info,\n sub\n } = typeDef;\n\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\n throw new Error(`Unable to encode ${stringify(typeDef)} with params`);\n}\n\nfunction encodeSubTypes(registry, sub, asEnum, extra) {\n const names = sub.map(({\n name\n }) => name);\n\n if (!names.every(n => !!n)) {\n throw new Error(`Subtypes does not have consistent names, ${names.join(', ')}`);\n }\n\n const inner = objectSpread({}, extra);\n\n for (let i = 0; i < sub.length; i++) {\n const def = sub[i];\n inner[def.name] = encodeTypeDef(registry, def);\n }\n\n return stringify(asEnum ? {\n _enum: inner\n } : inner);\n} // We setup a record here to ensure we have comprehensive coverage (any item not covered will result\n// in a compile-time error with the missing index)\n\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, {\n displayName,\n lookupIndex,\n lookupName\n }) => `DoNotConstruct<${lookupName || displayName || (isUndefined(lookupIndex) ? 'Unknown' : registry.createLookupType(lookupIndex))}>`,\n [TypeDefInfo.Enum]: (registry, {\n sub\n }) => {\n if (!Array.isArray(sub)) {\n throw new Error('Unable to encode Enum type');\n } // c-like enums have all Null entries\n // TODO We need to take the disciminant into account and auto-add empty entries\n\n\n return sub.every(({\n type\n }) => type === 'Null') ? stringify({\n _enum: sub.map(({\n name\n }, index) => `${name || `Empty${index}`}`)\n }) : encodeSubTypes(registry, sub, true);\n },\n [TypeDefInfo.HashMap]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'HashMap'),\n [TypeDefInfo.Int]: (registry, {\n length = 32\n }) => `Int<${length}>`,\n [TypeDefInfo.Linkage]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'Linkage'),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n [TypeDefInfo.Null]: (registry, typeDef) => 'Null',\n [TypeDefInfo.Option]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'Option'),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n [TypeDefInfo.Plain]: (registry, {\n displayName,\n type\n }) => 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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n [TypeDefInfo.Set]: (registry, {\n length = 8,\n sub\n }) => {\n if (!Array.isArray(sub)) {\n throw new Error('Unable to encode Set type');\n }\n\n return stringify({\n _set: sub.reduce((all, {\n index,\n name\n }, count) => objectSpread(all, {\n [`${name || `Unknown${index || count}`}`]: index || count\n }), {\n _bitLength: length || 8\n })\n });\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n [TypeDefInfo.Si]: (registry, {\n lookupName,\n type\n }) => lookupName || type,\n [TypeDefInfo.Struct]: (registry, {\n alias,\n sub\n }) => {\n if (!Array.isArray(sub)) {\n throw new Error('Unable to encode Struct type');\n }\n\n return encodeSubTypes(registry, sub, false, alias ? {\n _alias: [...alias.entries()].reduce((all, [k, v]) => objectSpread(all, {\n [k]: v\n }), {})\n } : {});\n },\n [TypeDefInfo.Tuple]: (registry, {\n sub\n }) => {\n if (!Array.isArray(sub)) {\n throw new Error('Unable to encode Tuple type');\n }\n\n return `(${sub.map(type => encodeTypeDef(registry, type)).join(',')})`;\n },\n [TypeDefInfo.UInt]: (registry, {\n length = 32\n }) => `UInt<${length}>`,\n [TypeDefInfo.Vec]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'Vec'),\n [TypeDefInfo.VecFixed]: (registry, {\n length,\n sub\n }) => {\n if (!isNumber(length) || !sub || Array.isArray(sub)) {\n throw new Error('Unable to encode VecFixed type');\n }\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};\n\nfunction encodeType(registry, typeDef, withLookup = true) {\n return withLookup && typeDef.lookupName ? typeDef.lookupName : encoders[typeDef.info](registry, typeDef);\n}\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) ? typeDef.displayName : encodeType(registry, typeDef);\n}\nexport function withTypeString(registry, typeDef) {\n return objectSpread({}, typeDef, {\n type: encodeType(registry, typeDef, false)\n });\n}","import _classPrivateFieldLooseBase from \"@babel/runtime/helpers/esm/classPrivateFieldLooseBase\";\nimport _classPrivateFieldLooseKey from \"@babel/runtime/helpers/esm/classPrivateFieldLooseKey\";\n// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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');\n// Just a placeholder for a type.unrwapOr()\nconst TYPE_UNWRAP = {\n toNumber: () => -1\n}; // Alias the primitive enum with our known values\n\nconst PRIMITIVE_ALIAS = {\n Char: 'u32',\n // Rust char is 4-bytes\n Str: 'Text'\n}; // These are types where we have a specific decoding/encoding override + helpers\n\nconst PATHS_ALIAS = splitNamespace([// full matching on exact names...\n// these are well-known types with additional encoding\n'sp_core::crypto::AccountId32', 'sp_runtime::generic::era::Era', 'sp_runtime::multiaddress::MultiAddress', // weights v2 (1.5+) is a structure, treated as a u64 via refTime (these are used compact)\n'frame_support::weights::weight_v2::Weight', 'sp_weights::weight_v2::Weight', // ethereum overrides (Frontier, Moonbeam, Polkadot claims)\n'account::AccountId20', 'polkadot_runtime_common::claims::EthereumAddress', // wildcard matching in place...\n// these have a specific encoding or logic, use a wildcard for {pallet, darwinia}_democracy\n'*_democracy::vote::Vote', '*_conviction_voting::vote::Vote', '*_identity::types::Data', // these are opaque Vec wrappers\n'sp_core::OpaqueMetadata', 'sp_core::OpaquePeerId', 'sp_core::offchain::OpaqueMultiaddr', // shorten some well-known types\n'primitive_types::*', 'sp_arithmetic::per_things::*', // ink!\n'ink_env::types::*']); // Mappings for types that should be converted to set via BitVec\n\nconst PATHS_SET = splitNamespace(['pallet_identity::types::BitFlags']); // These are the set namespaces for BitVec definitions (the last 2 appear in types as well)\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]; // These we never use these as top-level names, they are wrappers\n\nconst WRAPPERS = ['BoundedBTreeMap', 'BoundedBTreeSet', 'BoundedVec', 'Box', 'BTreeMap', 'BTreeSet', 'Cow', 'Option', 'Range', 'RangeInclusive', 'Result', 'WeakBoundedVec', 'WrapperKeepOpaque', 'WrapperOpaque']; // These are reserved and/or conflicts with built-in Codec or JS definitions\n\nconst RESERVED = ['entries', 'hash', 'keys', 'new', 'size']; // Remove these from all paths at index 1\n\nconst PATH_RM_INDEX_1 = ['generic', 'misc', 'pallet', 'traits', 'types'];\n/** @internal */\n\nfunction sanitizeDocs(docs) {\n const result = new Array(docs.length);\n\n for (let i = 0; i < docs.length; i++) {\n result[i] = docs[i].toString();\n }\n\n return result;\n}\n/** @internal */\n\n\nfunction splitNamespace(values) {\n const result = new Array(values.length);\n\n for (let i = 0; i < values.length; i++) {\n result[i] = values[i].split('::');\n }\n\n return result;\n}\n/** @internal */\n\n\nfunction matchParts(first, second) {\n return first.length === second.length && first.every((a, index) => {\n const b = second[index].toString();\n\n if (a === '*' || a === b) {\n return true;\n }\n\n if (a.includes('*') && a.includes('_') && b.includes('_')) {\n let suba = a.split('_');\n let subb = b.split('_'); // match initial *'s to multiples if we have a match for the other\n\n if (suba[0] === '*') {\n const indexOf = subb.indexOf(suba[1]);\n\n if (indexOf !== -1) {\n suba = suba.slice(1);\n subb = subb.slice(indexOf);\n }\n } // check for * matches at the end, adjust accordingly\n\n\n if (suba.length === 2 && suba[1] === '*' && suba[0] === subb[0]) {\n return true;\n }\n\n return matchParts(suba, subb);\n }\n\n return false;\n });\n} // check if the path matches the PATHS_ALIAS (with wildcards)\n\n/** @internal */\n\n\nfunction getAliasPath(path) {\n // TODO We need to handle ink! Balance in some way\n return path.length && PATHS_ALIAS.some(a => matchParts(a, path)) ? path[path.length - 1].toString() : null;\n}\n/** @internal */\n\n\nfunction extractNameFlat(portable, lookupIndex, params, path, isInternal = false) {\n const count = path.length; // if we have no path or determined as a wrapper, we just skip it\n\n if (count === 0 || WRAPPERS.includes(path[count - 1].toString())) {\n return null;\n }\n\n const camels = new Array(count);\n const lowers = new Array(count); // 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\n for (let i = 0; i < count; i++) {\n const c = stringPascalCase(isInternal ? path[i].replace('pallet_', '') : path[i]);\n const l = c.toLowerCase();\n camels[i] = c;\n lowers[i] = l;\n }\n\n let name = '';\n\n for (let i = 0; i < count; i++) {\n const l = lowers[i]; // Remove ::{generic, misc, pallet, traits, types}::\n\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 } // do magic for RawOrigin lookup, e.g. pallet_collective::RawOrigin\n\n\n if (camels[1] === 'RawOrigin' && count === 2 && params.length === 2 && params[1].type.isSome) {\n const instanceType = portable[params[1].type.unwrap().toNumber()];\n\n if (instanceType.type.path.length === 2) {\n name = `${name}${instanceType.type.path[1].toString()}`;\n }\n }\n\n return {\n lookupIndex,\n name,\n params\n };\n}\n/** @internal */\n\n\nfunction extractName(portable, lookupIndex, {\n type: {\n params,\n path\n }\n}) {\n return extractNameFlat(portable, lookupIndex, params, path);\n}\n/** @internal */\n\n\nfunction nextDupeMatches(name, startAt, names) {\n const result = [names[startAt]];\n\n for (let i = startAt + 1; i < names.length; i++) {\n const v = names[i];\n\n if (v.name === name) {\n result.push(v);\n }\n }\n\n return result;\n}\n/** @internal */\n\n\nfunction rewriteDupes(input, rewrite) {\n const count = input.length;\n\n for (let i = 0; i < count; i++) {\n const a = input[i];\n\n for (let j = i + 1; j < count; j++) {\n const b = input[j]; // if the indexes are not the same and the names match, we have a dupe\n\n if (a.lookupIndex !== b.lookupIndex && a.name === b.name) {\n return false;\n }\n }\n } // add all the adjusted values to the rewite map\n\n\n for (let i = 0; i < count; i++) {\n const p = input[i];\n rewrite[p.lookupIndex] = p.name;\n }\n\n return true;\n}\n/** @internal */\n\n\nfunction removeDupeNames(lookup, portable, names) {\n const rewrite = {};\n return names.map((original, startAt) => {\n const {\n lookupIndex,\n name,\n params\n } = original;\n\n if (!name) {\n // the name is empty (this is not expected, but have a failsafe)\n return null;\n } else if (rewrite[lookupIndex]) {\n // we have already rewritten this one, we can skip it\n return original;\n } // those where the name is matching starting from this index\n\n\n const allSame = nextDupeMatches(name, startAt, names); // we only have one, so all ok\n\n if (allSame.length === 1) {\n return original;\n } // are there param differences between matching names\n\n\n const anyDiff = allSame.some(o => params.length !== o.params.length || params.some((p, index) => !p.name.eq(o.params[index].name) || p.type.unwrapOr(TYPE_UNWRAP).toNumber() !== o.params[index].type.unwrapOr(TYPE_UNWRAP).toNumber())); // everything matches, we can combine these\n\n if (!anyDiff) {\n return original;\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\n\n const paramIdx = params.findIndex(({\n type\n }, index) => allSame.every(({\n params\n }, aIndex) => params[index].type.isSome && (aIndex === 0 || !params[index].type.eq(type)))); // No param found that is different\n\n if (paramIdx === -1) {\n return original;\n } // see if using the param type helps\n\n\n const adjusted = new Array(allSame.length); // loop through all, specifically checking that index where the\n // first param yields differences\n\n for (let i = 0; i < allSame.length; i++) {\n const {\n lookupIndex,\n name,\n params\n } = allSame[i];\n const {\n def,\n path\n } = lookup.getSiType(params[paramIdx].type.unwrap()); // if it is not a primitive and it doesn't have a path, we really cannot\n // do anything at this point\n\n if (!def.isPrimitive && !path.length) {\n return null;\n }\n\n adjusted[i] = {\n lookupIndex,\n name: def.isPrimitive ? `${name}${def.asPrimitive.toString()}` : `${name}${path[path.length - 1].toString()}`\n };\n } // check to see if the adjusted names have no issues\n\n\n if (rewriteDupes(adjusted, rewrite)) {\n return original;\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\n\n for (let i = 0; i < allSame.length; i++) {\n const {\n lookupIndex,\n name,\n params\n } = allSame[i];\n const {\n def,\n path\n } = lookup.getSiType(params[paramIdx].type.unwrap());\n const flat = extractNameFlat(portable, lookupIndex, params, path, true);\n\n if (def.isPrimitive || !flat) {\n return null;\n }\n\n adjusted[i] = {\n lookupIndex,\n name: `${name}${flat.name}`\n };\n } // check to see if the adjusted names have no issues\n\n\n if (rewriteDupes(adjusted, rewrite)) {\n return original;\n }\n\n return null;\n }).filter(n => !!n).map(({\n lookupIndex,\n name,\n params\n }) => ({\n lookupIndex,\n name: rewrite[lookupIndex] || name,\n params\n }));\n}\n/** @internal */\n\n\nfunction registerTypes(lookup, lookups, names, params) {\n // Register the types we extracted\n lookup.registry.register(lookups); // Try and extract the AccountId/Address/Signature type from UncheckedExtrinsic\n\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'; // With multiaddress, we check the first type param again\n\n if (isMultiAddress) {\n // AccountId, AccountIndex\n const [idParam] = siAddress.params;\n nsAccountId = lookup.getSiType(idParam.type.unwrap()).path.join('::');\n }\n\n lookup.registry.register({\n AccountId: ['sp_core::crypto::AccountId32'].includes(nsAccountId) ? 'AccountId32' : ['account::AccountId20', 'primitive_types::H160'].includes(nsAccountId) ? 'AccountId20' : 'AccountId32',\n // other, default to AccountId32\n Address: isMultiAddress ? 'MultiAddress' : 'AccountId',\n ExtrinsicSignature: ['sp_runtime::MultiSignature'].includes(nsSignature) ? 'MultiSignature' : names[sigParam.type.unwrap().toNumber()] || 'MultiSignature'\n });\n }\n} // this 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\n/** @internal */\n\n\nfunction extractAliases(params, isContract) {\n const hasParams = Object.keys(params).some(k => !k.startsWith('Pallet'));\n const alias = {};\n\n if (params.SpRuntimeUncheckedExtrinsic) {\n // Address, Call, Signature, Extra\n const [, {\n type\n }] = params.SpRuntimeUncheckedExtrinsic;\n alias[type.unwrap().toNumber()] = 'Call';\n } else if (hasParams && !isContract) {\n l.warn('Unable to determine runtime Call type, cannot inspect sp_runtime::generic::unchecked_extrinsic::UncheckedExtrinsic');\n }\n\n if (params.FrameSystemEventRecord) {\n // Event, Topic\n const [{\n type\n }] = params.FrameSystemEventRecord;\n alias[type.unwrap().toNumber()] = 'Event';\n } else if (hasParams && !isContract) {\n l.warn('Unable to determine runtime Event type, cannot inspect frame_system::EventRecord');\n }\n\n return alias;\n}\n/** @internal */\n\n\nfunction extractTypeInfo(lookup, portable) {\n const nameInfo = [];\n const types = {};\n const porCount = portable.length;\n\n for (let i = 0; i < porCount; i++) {\n const type = portable[i];\n const lookupIndex = type.id.toNumber();\n const extracted = extractName(portable, lookupIndex, portable[i]);\n\n if (extracted) {\n nameInfo.push(extracted);\n }\n\n types[lookupIndex] = type;\n }\n\n const lookups = {};\n const names = {};\n const params = {};\n const dedup = removeDupeNames(lookup, portable, nameInfo);\n const dedupCount = dedup.length;\n\n for (let i = 0; i < dedupCount; i++) {\n const {\n lookupIndex,\n name,\n params: p\n } = dedup[i];\n names[lookupIndex] = name;\n lookups[name] = lookup.registry.createLookupType(lookupIndex);\n params[name] = p;\n }\n\n return {\n lookups,\n names,\n params,\n types\n };\n}\n\nvar _alias = /*#__PURE__*/_classPrivateFieldLooseKey(\"alias\");\n\nvar _lookups = /*#__PURE__*/_classPrivateFieldLooseKey(\"lookups\");\n\nvar _names = /*#__PURE__*/_classPrivateFieldLooseKey(\"names\");\n\nvar _params = /*#__PURE__*/_classPrivateFieldLooseKey(\"params\");\n\nvar _typeDefs = /*#__PURE__*/_classPrivateFieldLooseKey(\"typeDefs\");\n\nvar _types = /*#__PURE__*/_classPrivateFieldLooseKey(\"types\");\n\nvar _createSiDef = /*#__PURE__*/_classPrivateFieldLooseKey(\"createSiDef\");\n\nvar _getLookupId = /*#__PURE__*/_classPrivateFieldLooseKey(\"getLookupId\");\n\nvar _extract = /*#__PURE__*/_classPrivateFieldLooseKey(\"extract\");\n\nvar _extractArray = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractArray\");\n\nvar _extractBitSequence = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractBitSequence\");\n\nvar _extractCompact = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractCompact\");\n\nvar _extractComposite = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractComposite\");\n\nvar _extractCompositeSet = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractCompositeSet\");\n\nvar _extractFields = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractFields\");\n\nvar _extractFieldsAlias = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractFieldsAlias\");\n\nvar _extractHistoric = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractHistoric\");\n\nvar _extractPrimitive = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractPrimitive\");\n\nvar _extractAliasPath = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractAliasPath\");\n\nvar _extractSequence = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractSequence\");\n\nvar _extractTuple = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractTuple\");\n\nvar _extractVariant = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractVariant\");\n\nvar _extractVariantEnum = /*#__PURE__*/_classPrivateFieldLooseKey(\"extractVariantEnum\");\n\nexport class PortableRegistry extends Struct {\n constructor(registry, value, isContract) {\n // const timeStart = performance.now()\n super(registry, {\n types: 'Vec'\n }, value);\n Object.defineProperty(this, _extractVariantEnum, {\n value: _extractVariantEnum2\n });\n Object.defineProperty(this, _extractVariant, {\n value: _extractVariant2\n });\n Object.defineProperty(this, _extractTuple, {\n value: _extractTuple2\n });\n Object.defineProperty(this, _extractSequence, {\n value: _extractSequence2\n });\n Object.defineProperty(this, _extractAliasPath, {\n value: _extractAliasPath2\n });\n Object.defineProperty(this, _extractPrimitive, {\n value: _extractPrimitive2\n });\n Object.defineProperty(this, _extractHistoric, {\n value: _extractHistoric2\n });\n Object.defineProperty(this, _extractFieldsAlias, {\n value: _extractFieldsAlias2\n });\n Object.defineProperty(this, _extractFields, {\n value: _extractFields2\n });\n Object.defineProperty(this, _extractCompositeSet, {\n value: _extractCompositeSet2\n });\n Object.defineProperty(this, _extractComposite, {\n value: _extractComposite2\n });\n Object.defineProperty(this, _extractCompact, {\n value: _extractCompact2\n });\n Object.defineProperty(this, _extractBitSequence, {\n value: _extractBitSequence2\n });\n Object.defineProperty(this, _extractArray, {\n value: _extractArray2\n });\n Object.defineProperty(this, _extract, {\n value: _extract2\n });\n Object.defineProperty(this, _getLookupId, {\n value: _getLookupId2\n });\n Object.defineProperty(this, _createSiDef, {\n value: _createSiDef2\n });\n Object.defineProperty(this, _alias, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _lookups, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _names, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _params, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _typeDefs, {\n writable: true,\n value: {}\n });\n Object.defineProperty(this, _types, {\n writable: true,\n value: void 0\n });\n const {\n lookups,\n names,\n params: _params2,\n types\n } = extractTypeInfo(this, this.types);\n _classPrivateFieldLooseBase(this, _alias)[_alias] = extractAliases(_params2, isContract);\n _classPrivateFieldLooseBase(this, _lookups)[_lookups] = lookups;\n _classPrivateFieldLooseBase(this, _names)[_names] = names;\n _classPrivateFieldLooseBase(this, _params)[_params] = _params2;\n _classPrivateFieldLooseBase(this, _types)[_types] = types; // console.log('PortableRegistry', `${(performance.now() - timeStart).toFixed(2)}ms`)\n }\n\n get names() {\n return Object.values(_classPrivateFieldLooseBase(this, _names)[_names]).sort();\n }\n /**\n * @description The types of the registry\n */\n\n\n get types() {\n return this.getT('types');\n }\n\n register() {\n registerTypes(this, _classPrivateFieldLooseBase(this, _lookups)[_lookups], _classPrivateFieldLooseBase(this, _names)[_names], _classPrivateFieldLooseBase(this, _params)[_params]);\n }\n /**\n * @description Returns the name for a specific lookup\n */\n\n\n getName(lookupId) {\n return _classPrivateFieldLooseBase(this, _names)[_names][_classPrivateFieldLooseBase(this, _getLookupId)[_getLookupId](lookupId)];\n }\n /**\n * @description Finds a specific type in the registry\n */\n\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 = (_classPrivateFieldLooseBase(this, _types)[_types] || this.types)[_classPrivateFieldLooseBase(this, _getLookupId)[_getLookupId](lookupId)];\n\n if (!found) {\n throw new Error(`PortableRegistry: Unable to find type with lookupId ${lookupId.toString()}`);\n }\n\n return found.type;\n }\n /**\n * @description Lookup the type definition for the index\n */\n\n\n getTypeDef(lookupId) {\n const lookupIndex = _classPrivateFieldLooseBase(this, _getLookupId)[_getLookupId](lookupId);\n\n if (!_classPrivateFieldLooseBase(this, _typeDefs)[_typeDefs][lookupIndex]) {\n const lookupName = _classPrivateFieldLooseBase(this, _names)[_names][lookupIndex];\n\n const empty = {\n info: TypeDefInfo.DoNotConstruct,\n lookupIndex,\n lookupName,\n type: this.registry.createLookupType(lookupIndex)\n }; // Set named items since we will get into circular lookups along the way\n\n if (lookupName) {\n _classPrivateFieldLooseBase(this, _typeDefs)[_typeDefs][lookupIndex] = empty;\n }\n\n const extracted = _classPrivateFieldLooseBase(this, _extract)[_extract](this.getSiType(lookupId), lookupIndex); // For non-named items, we only set this right at the end\n\n\n if (!lookupName) {\n _classPrivateFieldLooseBase(this, _typeDefs)[_typeDefs][lookupIndex] = empty;\n }\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 _classPrivateFieldLooseBase(this, _typeDefs)[_typeDefs][lookupIndex][k] = extracted[k];\n }\n }); // don't set lookupName on lower-level, we want to always direct to the type\n\n if (extracted.info === TypeDefInfo.Plain) {\n _classPrivateFieldLooseBase(this, _typeDefs)[_typeDefs][lookupIndex].lookupNameRoot = _classPrivateFieldLooseBase(this, _typeDefs)[_typeDefs][lookupIndex].lookupName;\n delete _classPrivateFieldLooseBase(this, _typeDefs)[_typeDefs][lookupIndex].lookupName;\n }\n }\n\n return _classPrivateFieldLooseBase(this, _typeDefs)[_typeDefs][lookupIndex];\n }\n\n sanitizeField(name) {\n let nameField = null;\n let nameOrig = null;\n\n if (name.isSome) {\n nameField = stringCamelCase(name.unwrap());\n\n if (nameField.includes('#')) {\n nameOrig = nameField;\n nameField = nameOrig.replace(/#/g, '_');\n } else if (RESERVED.includes(nameField)) {\n nameOrig = nameField;\n nameField = `${nameField}_`;\n }\n }\n\n return [nameField, nameOrig];\n }\n\n}\n\nfunction _createSiDef2(lookupId) {\n const typeDef = this.getTypeDef(lookupId);\n const lookupIndex = lookupId.toNumber(); // Setup for a lookup on complex types\n\n return [TypeDefInfo.DoNotConstruct, TypeDefInfo.Enum, TypeDefInfo.Struct].includes(typeDef.info) && typeDef.lookupName ? {\n docs: typeDef.docs,\n info: TypeDefInfo.Si,\n lookupIndex,\n lookupName: _classPrivateFieldLooseBase(this, _names)[_names][lookupIndex],\n type: this.registry.createLookupType(lookupId)\n } : typeDef;\n}\n\nfunction _getLookupId2(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\n return parseInt(lookupId.replace('Lookup', ''), 10);\n } else if (isNumber(lookupId)) {\n return lookupId;\n }\n\n return lookupId.toNumber();\n}\n\nfunction _extract2(type, lookupIndex) {\n const namespace = type.path.join('::');\n let typeDef;\n const aliasType = _classPrivateFieldLooseBase(this, _alias)[_alias][lookupIndex] || getAliasPath(type.path);\n\n try {\n if (aliasType) {\n typeDef = _classPrivateFieldLooseBase(this, _extractAliasPath)[_extractAliasPath](lookupIndex, aliasType);\n } else {\n switch (type.def.type) {\n case 'Array':\n typeDef = _classPrivateFieldLooseBase(this, _extractArray)[_extractArray](lookupIndex, type.def.asArray);\n break;\n\n case 'BitSequence':\n typeDef = _classPrivateFieldLooseBase(this, _extractBitSequence)[_extractBitSequence](lookupIndex, type.def.asBitSequence);\n break;\n\n case 'Compact':\n typeDef = _classPrivateFieldLooseBase(this, _extractCompact)[_extractCompact](lookupIndex, type.def.asCompact);\n break;\n\n case 'Composite':\n typeDef = _classPrivateFieldLooseBase(this, _extractComposite)[_extractComposite](lookupIndex, type, type.def.asComposite);\n break;\n\n case 'HistoricMetaCompat':\n typeDef = _classPrivateFieldLooseBase(this, _extractHistoric)[_extractHistoric](lookupIndex, type.def.asHistoricMetaCompat);\n break;\n\n case 'Primitive':\n typeDef = _classPrivateFieldLooseBase(this, _extractPrimitive)[_extractPrimitive](lookupIndex, type);\n break;\n\n case 'Sequence':\n typeDef = _classPrivateFieldLooseBase(this, _extractSequence)[_extractSequence](lookupIndex, type.def.asSequence);\n break;\n\n case 'Tuple':\n typeDef = _classPrivateFieldLooseBase(this, _extractTuple)[_extractTuple](lookupIndex, type.def.asTuple);\n break;\n\n case 'Variant':\n typeDef = _classPrivateFieldLooseBase(this, _extractVariant)[_extractVariant](lookupIndex, type, type.def.asVariant);\n break;\n\n default:\n assertUnreachable(type.def.type);\n }\n }\n } catch (error) {\n throw new Error(`PortableRegistry: ${lookupIndex}${namespace ? ` (${namespace})` : ''}: Error extracting ${stringify(type)}: ${error.message}`);\n }\n\n return objectSpread({\n docs: sanitizeDocs(type.docs),\n namespace\n }, typeDef);\n}\n\nfunction _extractArray2(_, {\n len,\n type\n}) {\n const length = len.toNumber();\n\n if (length > 2048) {\n throw new Error('Only support for [Type; ], where length <= 2048');\n }\n\n return withTypeString(this.registry, {\n info: TypeDefInfo.VecFixed,\n length,\n sub: _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](type)\n });\n}\n\nfunction _extractBitSequence2(_, {\n bitOrderType,\n bitStoreType\n}) {\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 = _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](bitOrderType);\n\n const b = _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](bitStoreType);\n\n const [bitOrder, bitStore] = BITVEC_NS.includes(a.namespace || '') ? [a, b] : [b, a]; // NOTE: Currently the BitVec type is one-way only, i.e. we only use it to decode, not\n // re-encode stuff. As such we ignore the msb/lsb identifier given by bitOrderType, or rather\n // we don't pass it though at all (all displays in LSB)\n\n if (!BITVEC_NS.includes(bitOrder.namespace || '')) {\n throw new Error(`Unexpected bitOrder found as ${bitOrder.namespace || ''}`);\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\n return {\n info: TypeDefInfo.Plain,\n type: 'BitVec'\n };\n}\n\nfunction _extractCompact2(_, {\n type\n}) {\n return withTypeString(this.registry, {\n info: TypeDefInfo.Compact,\n sub: _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](type)\n });\n}\n\nfunction _extractComposite2(lookupIndex, {\n params,\n path\n}, {\n fields\n}) {\n if (path.length) {\n const pathFirst = path[0].toString();\n const pathLast = path[path.length - 1].toString();\n\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\n return withTypeString(this.registry, {\n info: TypeDefInfo.BTreeMap,\n sub: params.map(({\n type\n }) => _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](type.unwrap()))\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\n return withTypeString(this.registry, {\n info: TypeDefInfo.BTreeSet,\n sub: _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](params[0].type.unwrap())\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\n return withTypeString(this.registry, {\n info: pathFirst === 'Range' ? TypeDefInfo.Range : TypeDefInfo.RangeInclusive,\n sub: _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](params[0].type.unwrap()),\n type: pathFirst\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\n return withTypeString(this.registry, {\n info: pathLast === 'WrapperKeepOpaque' ? TypeDefInfo.WrapperKeepOpaque : TypeDefInfo.WrapperOpaque,\n sub: _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](params[0].type.unwrap()),\n type: pathLast\n });\n }\n }\n\n return PATHS_SET.some(p => matchParts(p, path)) ? _classPrivateFieldLooseBase(this, _extractCompositeSet)[_extractCompositeSet](lookupIndex, params, fields) : _classPrivateFieldLooseBase(this, _extractFields)[_extractFields](lookupIndex, fields);\n}\n\nfunction _extractCompositeSet2(_, params, fields) {\n if (params.length !== 1 || fields.length !== 1) {\n throw new Error('Set handling expects param/field as single entries');\n }\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(({\n index,\n name\n }) => ({\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\nfunction _extractFields2(lookupIndex, fields) {\n let isStruct = true;\n let isTuple = true;\n\n for (let f = 0; f < fields.length; f++) {\n const {\n name\n } = fields[f];\n isStruct = isStruct && name.isSome;\n isTuple = isTuple && name.isNone;\n }\n\n if (!isTuple && !isStruct) {\n throw new Error('Invalid fields type detected, expected either Tuple (all unnamed) or Struct (all named)');\n }\n\n if (fields.length === 0) {\n return {\n info: TypeDefInfo.Null,\n type: 'Null'\n };\n } else if (isTuple && fields.length === 1) {\n const typeDef = _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](fields[0].type);\n\n return objectSpread({}, typeDef, lookupIndex === -1 ? null : {\n lookupIndex,\n lookupName: _classPrivateFieldLooseBase(this, _names)[_names][lookupIndex],\n lookupNameRoot: typeDef.lookupName\n }, fields[0].typeName.isSome ? {\n typeName: sanitize(fields[0].typeName.unwrap())\n } : null);\n }\n\n const [sub, alias] = _classPrivateFieldLooseBase(this, _extractFieldsAlias)[_extractFieldsAlias](fields);\n\n return withTypeString(this.registry, objectSpread({\n info: isTuple // Tuple check first\n ? TypeDefInfo.Tuple : TypeDefInfo.Struct,\n sub\n }, alias.size ? {\n alias\n } : null, lookupIndex === -1 ? null : {\n lookupIndex,\n lookupName: _classPrivateFieldLooseBase(this, _names)[_names][lookupIndex]\n }));\n}\n\nfunction _extractFieldsAlias2(fields) {\n const alias = new Map();\n const sub = new Array(fields.length);\n\n for (let i = 0; i < fields.length; i++) {\n const {\n docs,\n name,\n type,\n typeName\n } = fields[i];\n\n const typeDef = _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](type);\n\n if (name.isNone) {\n sub[i] = typeDef;\n } else {\n const [nameField, nameOrig] = this.sanitizeField(name);\n\n if (nameField && nameOrig) {\n alias.set(nameField, nameOrig);\n }\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\n return [sub, alias];\n}\n\nfunction _extractHistoric2(_, type) {\n return objectSpread({\n displayName: type.toString(),\n isFromSi: true\n }, getTypeDef(type));\n}\n\nfunction _extractPrimitive2(_, 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\nfunction _extractAliasPath2(_, type) {\n return {\n info: TypeDefInfo.Plain,\n type\n };\n}\n\nfunction _extractSequence2(lookupIndex, {\n type\n}) {\n const sub = _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](type);\n\n if (sub.type === 'u8') {\n return {\n info: TypeDefInfo.Plain,\n type: 'Bytes'\n };\n }\n\n return withTypeString(this.registry, {\n info: TypeDefInfo.Vec,\n lookupIndex,\n lookupName: _classPrivateFieldLooseBase(this, _names)[_names][lookupIndex],\n sub\n });\n}\n\nfunction _extractTuple2(lookupIndex, ids) {\n if (ids.length === 0) {\n return {\n info: TypeDefInfo.Null,\n type: 'Null'\n };\n } else if (ids.length === 1) {\n return this.getTypeDef(ids[0]);\n }\n\n const sub = ids.map(t => _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](t));\n return withTypeString(this.registry, {\n info: TypeDefInfo.Tuple,\n lookupIndex,\n lookupName: _classPrivateFieldLooseBase(this, _names)[_names][lookupIndex],\n sub\n });\n}\n\nfunction _extractVariant2(lookupIndex, {\n params,\n path\n}, {\n variants\n}) {\n if (path.length) {\n const specialVariant = path[0].toString();\n\n if (specialVariant === 'Option') {\n if (params.length !== 1) {\n throw new Error(`Option requires 1 parameter, found ${params.length}`);\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\n\n return withTypeString(this.registry, {\n info: TypeDefInfo.Option,\n sub: _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](params[0].type.unwrap())\n });\n } else if (specialVariant === 'Result') {\n if (params.length !== 2) {\n throw new Error(`Result requires 2 parameters, found ${params.length}`);\n }\n\n return withTypeString(this.registry, {\n info: TypeDefInfo.Result,\n sub: params.map(({\n type\n }, index) => objectSpread({\n name: ['Ok', 'Error'][index]\n }, _classPrivateFieldLooseBase(this, _createSiDef)[_createSiDef](type.unwrap())))\n });\n }\n }\n\n if (variants.length === 0) {\n return {\n info: TypeDefInfo.Null,\n type: 'Null'\n };\n }\n\n return _classPrivateFieldLooseBase(this, _extractVariantEnum)[_extractVariantEnum](lookupIndex, variants);\n}\n\nfunction _extractVariantEnum2(lookupIndex, variants) {\n const sub = []; // 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\n variants.slice().sort((a, b) => a.index.cmp(b.index)).forEach(({\n fields,\n index: bnIndex,\n name\n }) => {\n const index = bnIndex.toNumber();\n\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\n sub.push(objectSpread(_classPrivateFieldLooseBase(this, _extractFields)[_extractFields](-1, fields), {\n index,\n name: name.toString()\n }));\n });\n return withTypeString(this.registry, {\n info: TypeDefInfo.Enum,\n lookupIndex,\n lookupName: _classPrivateFieldLooseBase(this, _names)[_names][lookupIndex],\n sub\n });\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { DoNotConstruct, Json, Raw } from '@polkadot/types-codec';\nimport { constructTypeClass, createClassUnsafe, createTypeUnsafe } from '@polkadot/types-create';\nimport { assertReturn, BN_ZERO, formatBalance, 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 { decorateConstants, filterCallsSome, filterEventsSome } from \"../metadata/decorate/index.js\";\nimport { createCallFunction } from \"../metadata/decorate/extrinsics/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');\n\nfunction sortDecimalStrings(a, b) {\n return parseInt(a, 10) - parseInt(b, 10);\n}\n\nfunction valueToString(v) {\n return v.toString();\n}\n\nfunction getFieldArgs(lookup, fields) {\n const args = new Array(fields.length);\n\n for (let i = 0; i < fields.length; i++) {\n args[i] = lookup.getTypeDef(fields[i].type).type;\n }\n\n return args;\n}\n\nfunction clearRecord(record) {\n const keys = Object.keys(record);\n\n for (let i = 0; i < keys.length; i++) {\n delete record[keys[i]];\n }\n}\n\nfunction getVariantStringIdx({\n index\n}) {\n return index.toString();\n} // create error mapping from metadata\n\n\nfunction injectErrors(_, {\n lookup,\n pallets\n}, version, result) {\n clearRecord(result);\n\n for (let i = 0; i < pallets.length; i++) {\n const {\n errors,\n index,\n name\n } = pallets[i];\n\n if (errors.isSome) {\n const sectionName = stringCamelCase(name);\n lazyMethod(result, version >= 12 ? index.toNumber() : i, () => lazyVariants(lookup, errors.unwrap(), getVariantStringIdx, ({\n docs,\n fields,\n index,\n name\n }) => ({\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} // create event classes from metadata\n\n\nfunction injectEvents(registry, {\n lookup,\n pallets\n}, version, result) {\n const filtered = pallets.filter(filterEventsSome);\n clearRecord(result);\n\n for (let i = 0; i < filtered.length; i++) {\n const {\n events,\n index,\n name\n } = filtered[i];\n lazyMethod(result, version >= 12 ? index.toNumber() : i, () => lazyVariants(lookup, events.unwrap(), getVariantStringIdx, variant => {\n const meta = registry.createType('EventMetadataLatest', objectSpread({}, variant, {\n args: getFieldArgs(lookup, variant.fields)\n }));\n return class extends GenericEventData {\n constructor(registry, value) {\n super(registry, value, meta, stringCamelCase(name), variant.name.toString());\n }\n\n };\n }));\n }\n} // create extrinsic mapping from metadata\n\n\nfunction injectExtrinsics(registry, {\n lookup,\n pallets\n}, version, result, mapping) {\n const filtered = pallets.filter(filterCallsSome);\n clearRecord(result);\n clearRecord(mapping);\n\n for (let i = 0; i < filtered.length; i++) {\n const {\n calls,\n index,\n name\n } = 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 {\n path\n } = registry.lookup.getSiType(allCalls.type); // frame_system::pallet::Call / pallet_balances::pallet::Call / polkadot_runtime_parachains::configuration::pallet::Call /\n\n const palletIdx = path.findIndex(v => v.eq('pallet'));\n\n if (palletIdx !== -1) {\n const name = stringCamelCase(path.slice(0, palletIdx).map((p, i) => i === 0 // frame_system || pallet_balances\n ? p.replace(/^(frame|pallet)_/, '') : p).join(' '));\n\n if (!mapping[name]) {\n mapping[name] = [sectionName];\n } else {\n mapping[name].push(sectionName);\n }\n }\n }\n} // extract additional properties from the metadata\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\n if (!ss58Format) {\n return original;\n }\n\n const {\n tokenDecimals,\n tokenSymbol\n } = original || {};\n return registry.createTypeUnsafe('ChainProperties', [{\n ss58Format,\n tokenDecimals,\n tokenSymbol\n }]);\n}\n\nexport class TypeRegistry {\n #classes = new Map();\n #definitions = new Map();\n #firstCallIndex = null;\n #lookup;\n #metadata;\n #metadataVersion = 0;\n #metadataCalls = {};\n #metadataErrors = {};\n #metadataEvents = {};\n #moduleMap = {};\n #unknownTypes = new Map();\n #chainProperties;\n #hasher = blake2AsU8a;\n #knownDefaults;\n #knownDefinitions;\n #knownTypes = {};\n #signedExtensions = fallbackExtensions;\n #userExtensions;\n\n constructor(createdAtHash) {\n this.#knownDefaults = objectSpread({\n Json,\n Metadata,\n PortableRegistry,\n Raw\n }, baseTypes);\n this.#knownDefinitions = definitions;\n const allKnown = Object.values(this.#knownDefinitions);\n\n for (let i = 0; i < allKnown.length; i++) {\n this.register(allKnown[i].types);\n }\n\n if (createdAtHash) {\n this.createdAtHash = this.createType('Hash', createdAtHash);\n }\n }\n\n get chainDecimals() {\n var _this$chainProperties;\n\n if ((_this$chainProperties = this.#chainProperties) !== null && _this$chainProperties !== void 0 && _this$chainProperties.tokenDecimals.isSome) {\n const allDecimals = this.#chainProperties.tokenDecimals.unwrap();\n\n if (allDecimals.length) {\n return allDecimals.map(b => b.toNumber());\n }\n }\n\n return [12];\n }\n\n get chainSS58() {\n var _this$chainProperties2;\n\n return (_this$chainProperties2 = this.#chainProperties) !== null && _this$chainProperties2 !== void 0 && _this$chainProperties2.ss58Format.isSome ? this.#chainProperties.ss58Format.unwrap().toNumber() : undefined;\n }\n\n get chainTokens() {\n var _this$chainProperties3;\n\n if ((_this$chainProperties3 = this.#chainProperties) !== null && _this$chainProperties3 !== void 0 && _this$chainProperties3.tokenSymbol.isSome) {\n const allTokens = this.#chainProperties.tokenSymbol.unwrap();\n\n if (allTokens.length) {\n return allTokens.map(valueToString);\n }\n }\n\n return [formatBalance.getDefaults().unit];\n }\n\n get firstCallIndex() {\n return this.#firstCallIndex || DEFAULT_FIRST_CALL_IDX;\n }\n /**\n * @description Returns true if the type is in a Compat format\n */\n\n\n isLookupType(value) {\n return /Lookup\\d+$/.test(value);\n }\n /**\n * @description Creates a lookup string from the supplied id\n */\n\n\n createLookupType(lookupId) {\n return `Lookup${lookupId.toString()}`;\n }\n\n get knownTypes() {\n return this.#knownTypes;\n }\n\n get lookup() {\n return assertReturn(this.#lookup, 'Lookup has not been set on this registry');\n }\n\n get metadata() {\n return assertReturn(this.#metadata, 'Metadata has not been set on this registry');\n }\n\n get unknownTypes() {\n return [...this.#unknownTypes.keys()];\n }\n\n get signedExtensions() {\n return this.#signedExtensions;\n }\n\n clearCache() {\n this.#classes = new Map();\n }\n /**\n * @describe Creates an instance of the class\n */\n\n\n createClass(type) {\n return createClassUnsafe(this, type);\n }\n /**\n * @describe Creates an instance of the class\n */\n\n\n createClassUnsafe(type) {\n return createClassUnsafe(this, type);\n }\n /**\n * @description Creates an instance of a type as registered\n */\n\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\n\n createTypeUnsafe(type, params, options) {\n return createTypeUnsafe(this, type, params, options);\n } // find a specific call\n\n\n findMetaCall(callIndex) {\n const [section, method] = [callIndex[0], callIndex[1]];\n return assertReturn(this.#metadataCalls[`${section}`] && this.#metadataCalls[`${section}`][`${method}`], () => `findMetaCall: Unable to find Call with index [${section}, ${method}]/[${callIndex.toString()}]`);\n } // finds an error\n\n\n findMetaError(errorIndex) {\n const [section, method] = isU8a(errorIndex) ? [errorIndex[0], errorIndex[1]] : [errorIndex.index.toNumber(), isU8a(errorIndex.error) ? errorIndex.error[0] : errorIndex.error.toNumber()];\n return assertReturn(this.#metadataErrors[`${section}`] && this.#metadataErrors[`${section}`][`${method}`], () => `findMetaError: Unable to find Error with index [${section}, ${method}]/[${errorIndex.toString()}]`);\n }\n\n findMetaEvent(eventIndex) {\n const [section, method] = [eventIndex[0], eventIndex[1]];\n return assertReturn(this.#metadataEvents[`${section}`] && this.#metadataEvents[`${section}`][`${method}`], () => `findMetaEvent: Unable to find Event with index [${section}, ${method}]/[${eventIndex.toString()}]`);\n }\n\n get(name, withUnknown, knownTypeDef) {\n return this.getUnsafe(name, withUnknown, knownTypeDef);\n }\n\n getUnsafe(name, withUnknown, knownTypeDef) {\n let Type = this.#classes.get(name) || this.#knownDefaults[name]; // we have not already created the type, attempt it\n\n if (!Type) {\n const definition = this.#definitions.get(name);\n let BaseType; // we have a definition, so create the class now (lazily)\n\n if (definition) {\n BaseType = createClassUnsafe(this, definition);\n } else if (knownTypeDef) {\n BaseType = constructTypeClass(this, knownTypeDef);\n } else if (withUnknown) {\n l.warn(`Unable to resolve type ${name}, it will fail on construction`);\n this.#unknownTypes.set(name, true);\n BaseType = DoNotConstruct.with(name);\n }\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 this.#classes.set(name, Type); // 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\n if (knownTypeDef && isNumber(knownTypeDef.lookupIndex)) {\n this.#classes.set(this.createLookupType(knownTypeDef.lookupIndex), Type);\n }\n }\n }\n\n return Type;\n }\n\n getChainProperties() {\n return this.#chainProperties;\n }\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\n for (const [name, Clazz] of Object.entries(this.#knownDefaults)) {\n if (Type === Clazz) {\n names.push(name);\n }\n }\n\n for (const [name, Clazz] of this.#classes.entries()) {\n if (Type === Clazz) {\n names.push(name);\n }\n } // both sort and reverse are done in-place\n\n\n names.sort().reverse();\n return names.length ? names[0] : undefined;\n }\n\n getDefinition(typeName) {\n return this.#definitions.get(typeName);\n }\n\n getModuleInstances(specName, moduleName) {\n var _this$knownTypes, _this$knownTypes$type, _this$knownTypes$type2, _this$knownTypes$type3, _this$knownTypes$type4;\n\n return ((_this$knownTypes = this.#knownTypes) === null || _this$knownTypes === void 0 ? void 0 : (_this$knownTypes$type = _this$knownTypes.typesBundle) === null || _this$knownTypes$type === void 0 ? void 0 : (_this$knownTypes$type2 = _this$knownTypes$type.spec) === null || _this$knownTypes$type2 === void 0 ? void 0 : (_this$knownTypes$type3 = _this$knownTypes$type2[specName.toString()]) === null || _this$knownTypes$type3 === void 0 ? void 0 : (_this$knownTypes$type4 = _this$knownTypes$type3.instances) === null || _this$knownTypes$type4 === void 0 ? void 0 : _this$knownTypes$type4[moduleName]) || this.#moduleMap[moduleName];\n }\n\n getOrThrow(name, msg) {\n const Clazz = this.get(name);\n\n if (!Clazz) {\n throw new Error(msg || `type ${name} not found`);\n }\n\n return Clazz;\n }\n\n getOrUnknown(name) {\n return this.get(name, true);\n }\n\n getSignedExtensionExtra() {\n return expandExtensionTypes(this.#signedExtensions, 'payload', this.#userExtensions);\n }\n\n getSignedExtensionTypes() {\n return expandExtensionTypes(this.#signedExtensions, 'extrinsic', this.#userExtensions);\n }\n\n hasClass(name) {\n return this.#classes.has(name) || !!this.#knownDefaults[name];\n }\n\n hasDef(name) {\n return this.#definitions.has(name);\n }\n\n hasType(name) {\n return !this.#unknownTypes.get(name) && (this.hasClass(name) || this.hasDef(name));\n }\n\n hash(data) {\n return this.createType('CodecHash', this.#hasher(data));\n }\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.#classes.set(arg1.name, arg1);\n } else if (isString(arg1)) {\n if (!isFunction(arg2)) {\n throw new Error(`Expected class definition passed to '${arg1}' registration`);\n } else if (arg1 === arg2.toString()) {\n throw new Error(`Unable to register circular ${arg1} === ${arg1}`);\n }\n\n this.#classes.set(arg1, arg2);\n } else {\n this._registerObject(arg1);\n }\n }\n\n _registerObject(obj) {\n const entries = Object.entries(obj);\n\n for (let e = 0; e < entries.length; e++) {\n const [name, type] = entries[e];\n\n if (isFunction(type)) {\n // This _looks_ a bit funny, but `typeof Clazz === 'function'\n this.#classes.set(name, type);\n } else {\n const def = isString(type) ? type : stringify(type);\n\n if (name === def) {\n throw new Error(`Unable to register circular ${name} === ${def}`);\n } // we already have this type, remove the classes registered for it\n\n\n if (this.#classes.has(name)) {\n this.#classes.delete(name);\n }\n\n this.#definitions.set(name, def);\n }\n }\n } // sets the chain properties\n\n\n setChainProperties(properties) {\n if (properties) {\n this.#chainProperties = properties;\n }\n }\n\n setHasher(hasher) {\n this.#hasher = hasher || blake2AsU8a;\n }\n\n setKnownTypes(knownTypes) {\n this.#knownTypes = knownTypes;\n }\n\n setLookup(lookup) {\n this.#lookup = lookup; // register all applicable types found\n\n lookup.register();\n } // sets the metadata\n\n\n setMetadata(metadata, signedExtensions, userExtensions) {\n this.#metadata = metadata.asLatest;\n this.#metadataVersion = metadata.version;\n this.#firstCallIndex = null; // attach the lookup at this point (before injecting)\n\n this.setLookup(this.#metadata.lookup);\n injectExtrinsics(this, this.#metadata, this.#metadataVersion, this.#metadataCalls, this.#moduleMap);\n injectErrors(this, this.#metadata, this.#metadataVersion, this.#metadataErrors);\n injectEvents(this, this.#metadata, this.#metadataVersion, this.#metadataEvents); // set the default call index (the lowest section, the lowest method)\n // in most chains this should be 0,0\n\n const [defSection] = Object.keys(this.#metadataCalls).sort(sortDecimalStrings);\n\n if (defSection) {\n const [defMethod] = Object.keys(this.#metadataCalls[defSection]).sort(sortDecimalStrings);\n\n if (defMethod) {\n this.#firstCallIndex = new Uint8Array([parseInt(defSection, 10), parseInt(defMethod, 10)]);\n }\n } // setup the available extensions\n\n\n this.setSignedExtensions(signedExtensions || (this.#metadata.extrinsic.version.gt(BN_ZERO) // FIXME Use the extension and their injected types\n ? this.#metadata.extrinsic.signedExtensions.map(({\n identifier\n }) => identifier.toString()) : fallbackExtensions), userExtensions); // setup the chain properties with format overrides\n\n this.setChainProperties(extractProperties(this, metadata));\n } // sets the available signed extensions\n\n\n setSignedExtensions(signedExtensions = fallbackExtensions, userExtensions) {\n this.#signedExtensions = signedExtensions;\n this.#userExtensions = userExtensions;\n const unknown = findUnknownExtensions(this.#signedExtensions, this.#userExtensions);\n\n if (unknown.length) {\n l.warn(`Unknown signed extensions ${unknown.join(', ')} found, treating them as no-effect`);\n }\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\n */\nexport class BehaviorSubject extends Subject {\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): 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>(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(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(fn: ((...values: T[]) => R)): OperatorFunction {\n return map(args => callOrApply(fn, args))\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 { 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(arg: T): Observable;\n\n// combineLatest([a, b, c])\nexport function combineLatest(sources: []): Observable;\nexport function combineLatest(sources: readonly [...ObservableInputTuple]): Observable;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function combineLatest(\n sources: readonly [...ObservableInputTuple],\n resultSelector: (...values: A) => R,\n scheduler: SchedulerLike\n): Observable;\nexport function combineLatest(\n sources: readonly [...ObservableInputTuple],\n resultSelector: (...values: A) => R\n): Observable;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function combineLatest(\n sources: readonly [...ObservableInputTuple],\n scheduler: SchedulerLike\n): Observable;\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(...sources: [...ObservableInputTuple]): Observable;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function combineLatest(\n ...sourcesAndResultSelectorAndScheduler: [...ObservableInputTuple, (...values: A) => R, SchedulerLike]\n): Observable;\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(\n ...sourcesAndResultSelector: [...ObservableInputTuple, (...values: A) => R]\n): Observable;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function combineLatest(\n ...sourcesAndScheduler: [...ObservableInputTuple, SchedulerLike]\n): Observable;\n\n// combineLatest({a, b, c})\nexport function combineLatest(sourcesObject: { [K in any]: never }): Observable;\nexport function combineLatest>>(\n sourcesObject: T\n): Observable<{ [K in keyof T]: ObservedValueOf }>;\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 * 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.\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, R>(...args: any[]): Observable | Observable[]> {\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 ampty 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[]>(\n combineLatestInit(\n observables as ObservableInput>[],\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) : result;\n}\n\nexport function combineLatestInit(\n observables: ObservableInput[],\n scheduler?: SchedulerLike,\n valueTransform: (values: any[]) => any = identity\n) {\n return (subscriber: Subscriber) => {\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","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\nexport interface TapObserver extends Observer {\n subscribe: () => void;\n unsubscribe: () => void;\n finalize: () => void;\n}\n\nexport function tap(observer?: Partial>): MonoTypeOperatorFunction;\nexport function tap(next: (value: T) => void): MonoTypeOperatorFunction;\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(\n next?: ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n): MonoTypeOperatorFunction;\n\n/**\n * Used to perform side-effects for notifications from the source observable\n *\n * Used when you want to affect outside state with a notification without altering the notification\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 Observable#subscribe}\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(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e: any) => void) | null,\n complete?: (() => void) | null\n): MonoTypeOperatorFunction {\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>>, error, complete } as Partial>)\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 { 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 * Get all values inside an array when the source completes\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(): OperatorFunction {\n // Because arrays are mutable, and we're mutating the array in this\n // reducer process, we have to escapulate 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 { scanInternals } from './scanInternals';\nimport { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\n\nexport function reduce(accumulator: (acc: A | V, value: V, index: number) => A): OperatorFunction;\nexport function reduce(accumulator: (acc: A, value: V, index: number) => A, seed: A): OperatorFunction;\nexport function reduce(accumulator: (acc: A | S, value: V, index: number) => A, seed: S): OperatorFunction;\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 * 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.\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(accumulator: (acc: V | A, value: V, index: number) => A, seed?: any): OperatorFunction {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, false, true));\n}\n","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { stringify } from \"./stringify.js\";\n\nfunction defaultGetId() {\n return 'none';\n}\n/**\n * @name memoize\n * @description Memomize the function with a specific instanceId\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nexport function memoize(fn, {\n getInstanceId = defaultGetId\n} = {}) {\n const cache = {};\n\n const memoized = (...args) => {\n const stringParams = stringify(args);\n const instanceId = getInstanceId();\n\n if (!cache[instanceId]) {\n cache[instanceId] = {};\n }\n\n if (cache[instanceId][stringParams] === undefined) {\n cache[instanceId][stringParams] = fn(...args);\n }\n\n return cache[instanceId][stringParams];\n };\n\n memoized.unmemoize = (...args) => {\n const stringParams = stringify(args);\n const instanceId = getInstanceId();\n\n if (cache[instanceId] && cache[instanceId][stringParams] !== undefined) {\n delete cache[instanceId][stringParams];\n }\n };\n\n return memoized;\n}","import { MonoTypeOperatorFunction } from '../types';\nimport { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\nexport function distinctUntilChanged(comparator?: (previous: T, current: T) => boolean): MonoTypeOperatorFunction;\nexport function distinctUntilChanged(\n comparator: (previous: K, current: K) => boolean,\n keySelector: (value: T) => K\n): MonoTypeOperatorFunction;\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(\n comparator?: (previous: K, current: K) => boolean,\n keySelector: (value: T) => K = identity as (value: T) => K\n): MonoTypeOperatorFunction {\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 { 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(): MonoTypeOperatorFunction {\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).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\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 extends Observable {\n protected _subject: Subject | 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, protected subjectFactory: () => Subject) {\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) {\n return this.getSubject().subscribe(subscriber);\n }\n\n protected getSubject(): Subject {\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 {\n return higherOrderRefCount()(this) as Observable;\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 {\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;\n}\n\n/**\n * The default configuration for `connect`.\n */\nconst DEFAULT_CONFIG: ConnectConfig = {\n connector: () => new Subject(),\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>(\n selector: (shared: Observable) => O,\n config: ConnectConfig = DEFAULT_CONFIG\n): OperatorFunction> {\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(subscribable: Subscribable) {\n return new Observable((subscriber: Subscriber) => 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(\n bufferSize?: number,\n windowTime?: number,\n timestampProvider?: TimestampProvider\n): MonoTypeOperatorFunction;\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>(\n bufferSize: number | undefined,\n windowTime: number | undefined,\n selector: (shared: Observable) => O,\n timestampProvider?: TimestampProvider\n): OperatorFunction>;\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>(\n bufferSize: number | undefined,\n windowTime: number | undefined,\n selector: undefined,\n timestampProvider: TimestampProvider\n): OperatorFunction>;\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(\n bufferSize?: number,\n windowTime?: number,\n selectorOrScheduler?: TimestampProvider | OperatorFunction,\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) => multicast(new ReplaySubject(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(subject: Subject): UnaryFunction, ConnectableObservable>;\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>(\n subject: Subject,\n selector: (shared: Observable) => O\n): OperatorFunction>;\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(subjectFactory: () => Subject): UnaryFunction, ConnectableObservable>;\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>(\n subjectFactory: () => Subject,\n selector: (shared: Observable) => O\n): OperatorFunction>;\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(\n subjectOrSubjectFactory: Subject | (() => Subject),\n selector?: (source: Observable) => Observable\n): OperatorFunction {\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) => new ConnectableObservable(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 extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, 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;\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';\n\nexport class AsyncAction extends Action {\n public id: any;\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, 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?: any, delay: number = 0): any {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id: any, delay: number | null = 0): any {\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 intervalProvider.clearInterval(id);\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';\n\nexport class AsapAction extends AsyncAction {\n constructor(protected scheduler: AsapScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\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 protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {\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) || (delay == null && 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 if (!scheduler.actions.some((action) => action.id === id)) {\n immediateProvider.clearImmediate(id);\n scheduler._scheduled = undefined;\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(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n","import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\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: any = undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): 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 { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\n\n/**\n *\n * Asap Scheduler\n *\n * Perform task as fast as it can be performed asynchronously\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): 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","// Copyright 2017-2022 @polkadot/rpc-core authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { asapScheduler, Observable, Subscription } from 'rxjs';\n/** @internal */\n\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\n if (refCount++ === 0) {\n if (state === 1) {\n scheduler.unsubscribe();\n } else {\n connection = source.connect();\n }\n\n state = 3;\n }\n\n return () => {\n if (--refCount === 0) {\n if (state === 2) {\n state = 0;\n scheduler.unsubscribe();\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}","// Copyright 2017-2022 @polkadot/rpc-core authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { catchError, distinctUntilChanged, publishReplay, refCount, tap } from 'rxjs';\nimport { stringify } from '@polkadot/util';\nimport { refCountDelay } from \"./refCountDelay.js\";\n\nfunction CMP(a, b) {\n return stringify({\n t: a\n }) === stringify({\n t: b\n });\n}\n\nfunction ERR(error) {\n throw error;\n}\n\nfunction NOOP() {// empty\n}\n/**\n * Shorthand for distinctUntilChanged(), publishReplay(1) and refCount().\n *\n * @ignore\n * @internal\n */\n\n\nexport function drr({\n delay,\n skipChange = false,\n skipTimeout = false\n} = {}) {\n return source$ => source$.pipe(catchError(ERR), skipChange ? tap(NOOP) : distinctUntilChanged(CMP), publishReplay(1), skipTimeout ? refCount() : refCountDelay(delay));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Observable } from 'rxjs';\nimport { memoize } from '@polkadot/util';\nimport { drr } from \"./drr.js\";\n// Wraps a derive, doing 2 things to optimize calls -\n// 1. creates a memo of the inner fn -> Observable, removing when unsubscribed\n// 2. wraps the observable in a drr() (which includes an unsub delay)\n\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function memo(instanceId, inner) {\n const options = {\n getInstanceId: () => instanceId\n };\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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nexport function accountId(instanceId, api) {\n return memo(instanceId, address => {\n const decoded = isU8a(address) ? address : decodeAddress((address || '').toString());\n\n if (decoded.length > 8) {\n return of(api.registry.createType('AccountId', decoded));\n }\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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of } from 'rxjs';\nimport { isFunction } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\n\nfunction parseFlags(address, [electionsMembers, councilMembers, technicalCommitteeMembers, societyMembers, sudoKey]) {\n const addrStr = address && address.toString();\n\n const isIncluded = id => id.toString() === addrStr;\n\n return {\n isCouncil: ((electionsMembers === null || electionsMembers === void 0 ? void 0 : electionsMembers.map(r => Array.isArray(r) ? r[0] : r.who)) || councilMembers || []).some(isIncluded),\n isSociety: (societyMembers || []).some(isIncluded),\n isSudo: (sudoKey === null || sudoKey === void 0 ? void 0 : sudoKey.toString()) === addrStr,\n isTechCommittee: (technicalCommitteeMembers || []).some(isIncluded)\n };\n}\n\nexport function _flags(instanceId, api) {\n return memo(instanceId, () => {\n var _ref, _api$query$council, _api$query$technicalC, _api$query$society, _api$query$sudo;\n\n const results = [undefined, [], [], [], undefined];\n const calls = [(_ref = api.query.phragmenElection || api.query.electionsPhragmen || api.query.elections) === null || _ref === void 0 ? void 0 : _ref.members, (_api$query$council = api.query.council) === null || _api$query$council === void 0 ? void 0 : _api$query$council.members, (_api$query$technicalC = api.query.technicalCommittee) === null || _api$query$technicalC === void 0 ? void 0 : _api$query$technicalC.members, (_api$query$society = api.query.society) === null || _api$query$society === void 0 ? void 0 : _api$query$society.members, (_api$query$sudo = api.query.sudo) === null || _api$query$sudo === void 0 ? void 0 : _api$query$sudo.key];\n const filtered = calls.filter(c => c);\n\n if (!filtered.length) {\n return of(results);\n }\n\n return api.queryMulti(filtered).pipe(map(values => {\n let resultIndex = -1;\n\n for (let i = 0; i < calls.length; i++) {\n if (isFunction(calls[i])) {\n results[i] = values[++resultIndex];\n }\n }\n\n return results;\n }));\n });\n}\n/**\n * @name info\n * @description Returns account membership flags\n */\n\nexport function flags(instanceId, api) {\n return memo(instanceId, address => api.derive.accounts._flags().pipe(map(r => parseFlags(address, r))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * api.derive.accounts.idAndIndex('F7Hs', ([id, ix]) => {\n * console.log(`AccountId #${id} with corresponding AccountIndex ${ix}`);\n * });\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) ? address : decodeAddress((address || '').toString());\n\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\n const accountIndex = api.registry.createType('AccountIndex', decoded);\n return api.derive.accounts.indexToId(accountIndex.toString()).pipe(map(accountId => [accountId, accountIndex]));\n } catch (error) {\n return of([undefined, undefined]);\n }\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\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 */\n\nexport function idToIndex(instanceId, api) {\n return memo(instanceId, accountId => api.derive.accounts.indexes().pipe(map(indexes => (indexes || {})[accountId.toString()])));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { isHex, u8aToString } from '@polkadot/util';\nimport { firstMemo, memo } from \"../util/index.js\";\nconst UNDEF_HEX = {\n toHex: () => undefined\n};\n\nfunction dataAsString(data) {\n return data.isRaw ? u8aToString(data.asRaw.toU8a(true)) : data.isNone ? undefined : data.toHex();\n}\n\nfunction extractOther(additional) {\n return additional.reduce((other, [_key, _value]) => {\n const key = dataAsString(_key);\n const value = dataAsString(_value);\n\n if (key && value) {\n other[key] = value;\n }\n\n return other;\n }, {});\n}\n\nfunction extractIdentity(identityOfOpt, superOf) {\n if (!(identityOfOpt !== null && identityOfOpt !== void 0 && identityOfOpt.isSome)) {\n return {\n judgements: []\n };\n }\n\n const {\n info,\n judgements\n } = 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 && 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}\n\nfunction getParent(api, identityOfOpt, superOfOpt) {\n if (identityOfOpt !== null && identityOfOpt !== void 0 && identityOfOpt.isSome) {\n // this identity has something set\n return of([identityOfOpt, undefined]);\n } else if (superOfOpt !== null && superOfOpt !== void 0 && superOfOpt.isSome) {\n const superOf = superOfOpt.unwrap();\n return combineLatest([api.derive.accounts._identity(superOf[0]).pipe(map(([info]) => info)), of(superOf)]);\n } // nothing of value returned\n\n\n return of([undefined, undefined]);\n}\n\nexport function _identity(instanceId, api) {\n return memo(instanceId, accountId => {\n var _api$query$identity;\n\n return accountId && (_api$query$identity = api.query.identity) !== null && _api$query$identity !== void 0 && _api$query$identity.identityOf ? combineLatest([api.query.identity.identityOf(accountId), api.query.identity.superOf(accountId)]) : of([undefined, undefined]);\n });\n}\n/**\n * @name identity\n * @description Returns identity info for an account\n */\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 = firstMemo((api, accountId) => api.derive.accounts.hasIdentityMulti([accountId]));\nexport function hasIdentityMulti(instanceId, api) {\n return memo(instanceId, accountIds => {\n var _api$query$identity2;\n\n return (_api$query$identity2 = api.query.identity) !== null && _api$query$identity2 !== void 0 && _api$query$identity2.identityOf ? combineLatest([api.query.identity.identityOf.multi(accountIds), api.query.identity.superOf.multi(accountIds)]).pipe(map(([identities, supers]) => identities.map((identityOfOpt, index) => {\n const superOfOpt = supers[index];\n const parentId = superOfOpt && superOfOpt.isSome ? superOfOpt.unwrap()[0].toString() : undefined;\n let display;\n\n if (identityOfOpt && identityOfOpt.isSome) {\n const value = dataAsString(identityOfOpt.unwrap().info.display);\n\n if (value && !isHex(value)) {\n display = value;\n }\n }\n\n return {\n display,\n hasIdentity: !!(display || parentId),\n parentId\n };\n }))) : of(accountIds.map(() => ({\n hasIdentity: false\n })));\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * api.derive.accounts.indexToId('F7Hs', (accountId) => {\n * console.log(`The AccountId of F7Hs is ${accountId}`);\n * });\n * ```\n */\n\nexport function indexToId(instanceId, api) {\n return memo(instanceId, accountIndex => api.query.indices ? api.query.indices.accounts(accountIndex).pipe(map(optResult => optResult.unwrapOr([])[0])) : of(undefined));\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>(\n project: (value: T, index: number) => O,\n concurrent?: number\n): OperatorFunction>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap>(\n project: (value: T, index: number) => O,\n resultSelector: undefined,\n concurrent?: number\n): OperatorFunction>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap>(\n project: (value: T, index: number) => O,\n resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R,\n concurrent?: number\n): OperatorFunction;\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 * Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.\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>(\n project: (value: T, index: number) => O,\n resultSelector?: ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R) | number,\n concurrent: number = Infinity\n): OperatorFunction | 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(\n source: Observable,\n subscriber: Subscriber,\n project: (value: T, index: number) => ObservableInput,\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 * Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.\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>(): OperatorFunction> {\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 * Flattens an Observable-of-Observables.\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>(concurrent: number = Infinity): OperatorFunction> {\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(...inputs: [...ObservableInputTuple]): Observable;\nexport function concat(\n ...inputsAndScheduler: [...ObservableInputTuple, SchedulerLike]\n): Observable;\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 * Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.\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 {\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(value: null): OperatorFunction;\nexport function startWith(value: undefined): OperatorFunction;\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(\n ...valuesAndScheduler: [...A, SchedulerLike]\n): OperatorFunction>;\nexport function startWith(...values: A): OperatorFunction>;\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 * First emits its arguments in order, and then any\n * emissions from the source.\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(...values: D[]): OperatorFunction {\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","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of, startWith } from 'rxjs';\nimport { memo } from \"../util/index.js\";\nlet indicesCache = null;\n\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\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 *
\n *\n * ```javascript\n * api.derive.accounts.indexes((indexes) => {\n * console.log('All existing AccountIndexes', indexes);\n * });\n * ```\n */\n\n\nexport function indexes(instanceId, api) {\n return memo(instanceId, () => indicesCache ? of(indicesCache) : (api.query.indices ? queryAccounts(api).pipe(startWith({})) : of({})).pipe(map(indices => {\n indicesCache = indices;\n return indices;\n })));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { u8aToString } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\n\nfunction retrieveNick(api, accountId) {\n var _api$query$nicks;\n\n return (accountId && (_api$query$nicks = api.query.nicks) !== null && _api$query$nicks !== void 0 && _api$query$nicks.nameOf ? api.query.nicks.nameOf(accountId) : of(undefined)).pipe(map(nameOf => nameOf !== null && nameOf !== void 0 && nameOf.isSome ? u8aToString(nameOf.unwrap()[0]).substring(0, api.consts.nicks.maxLength.toNumber()) : 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 */\n\n\nexport function info(instanceId, api) {\n return memo(instanceId, address => api.derive.accounts.idAndIndex(address).pipe(switchMap(([accountId, accountIndex]) => combineLatest([of({\n accountId,\n accountIndex\n }), api.derive.accounts.identity(accountId), retrieveNick(api, accountId)])), map(([{\n accountId,\n accountIndex\n }, identity, nickname]) => ({\n accountId,\n accountIndex,\n identity,\n nickname\n }))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 && instances.length ? instances[0] : 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 === null || query === void 0 ? void 0 : query[method]) ? query[method]() : of(empty));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { callMethod } from \"./helpers.js\"; // We are re-exporting these from here to ensure that *.d.ts generation is correct\n\nexport const members = callMethod('members', []);","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { catchError, combineLatest, map, of, switchMap } from 'rxjs';\nimport { isFunction } from '@polkadot/util';\nimport { firstObservable } from \"../util/index.js\";\nimport { callMethod, withSection } from \"./helpers.js\"; // We are re-exporting these from here to ensure that *.d.ts generation is correct\n\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 ? o.unwrap() : null,\n votes: votes[index].unwrapOr(null)\n }));\n}\n\nfunction _proposalsFrom(api, query, hashes) {\n return (isFunction(query === null || query === void 0 ? void 0 : query.proposals) && hashes.length ? combineLatest([of(hashes), // this should simply be api.query[section].proposalOf.multi>(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)))), query.voting.multi(hashes)]) : of([[], [], []])).pipe(map(r => parse(api, r)));\n}\n\nexport function hasProposals(section) {\n return withSection(section, query => () => of(isFunction(query === null || query === void 0 ? void 0 : 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 === null || query === void 0 ? void 0 : query.proposals) ? firstObservable(_proposalsFrom(api, query, [hash])) : of(null));\n}\nexport const proposalCount = callMethod('proposalCount', null);\nexport const proposalHashes = callMethod('proposals', []);","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of } from 'rxjs';\nimport { isFunction } from '@polkadot/util';\nimport { withSection } from \"./helpers.js\"; // We are re-exporting these from here to ensure that *.d.ts generation is correct\n\nexport function prime(section) {\n return withSection(section, query => () => isFunction(query === null || query === void 0 ? void 0 : query.prime) ? query.prime().pipe(map(o => o.unwrapOr(null))) : of(null));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 = collectiveMembers('allianceMotion');\nexport const hasProposals = collectiveHasProposals('allianceMotion');\nexport const proposal = collectiveProposal('allianceMotion');\nexport const proposalCount = collectiveProposalCount('allianceMotion');\nexport const proposalHashes = collectiveProposalHashes('allianceMotion');\nexport const proposals = collectiveProposals('allianceMotion');\nexport const prime = collectivePrime('allianceMotion');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of, switchMap } from 'rxjs';\nimport { BN_ZERO, bnToBn, objectSpread } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\n\nfunction orderBags(ids, bags) {\n const sorted = ids.map((id, index) => ({\n bag: bags[index].unwrapOr(null),\n id,\n key: id.toString()\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 ? BN_ZERO : sorted[index + 1].id,\n bagUpper: entry.id,\n index\n }));\n}\n\nexport function _getIds(instanceId, api) {\n return memo(instanceId, _ids => {\n const ids = _ids.map(id => bnToBn(id));\n\n return ids.length ? (api.query.voterList || api.query.bagsList).listBags.multi(ids).pipe(map(bags => orderBags(ids, bags))) : of([]);\n });\n}\nexport function all(instanceId, api) {\n return memo(instanceId, () => (api.query.voterList || api.query.bagsList).listBags.keys().pipe(switchMap(keys => api.derive.bagsList._getIds(keys.map(({\n args: [id]\n }) => id))), map(list => list.filter(({\n bag\n }) => bag))));\n}\nexport function get(instanceId, api) {\n return memo(instanceId, id => api.derive.bagsList._getIds([bnToBn(id)]).pipe(map(bags => bags[0])));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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({\n nodes\n }, 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}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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.resolve().then(() => {\n onExec();\n }).catch(error => {\n if (onError) {\n onError(error);\n } else {\n console.error(error);\n }\n });\n }, 0);\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BehaviorSubject, map, of, switchMap, tap, toArray } from 'rxjs';\nimport { nextTick } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\n\nfunction traverseLinks(api, head) {\n const subject = new BehaviorSubject(head);\n return subject.pipe(switchMap(account => (api.query.voterList || api.query.bagsList).listNodes(account)), tap(node => {\n nextTick(() => {\n node.isSome && node.value.next.isSome ? subject.next(node.unwrap().next.unwrap()) : subject.complete();\n });\n }), toArray(), // toArray since we want to startSubject to be completed\n map(all => all.map(o => o.unwrap())));\n}\n\nexport function listNodes(instanceId, api) {\n return memo(instanceId, bag => bag && bag.head.isSome ? traverseLinks(api, bag.head.unwrap()) : of([]));\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/** @internal */\nexport function createCmp(cmp) {\n return (...items) => {\n if (items.length === 0) {\n throw new Error('Must provide one or more arguments');\n }\n\n let result = items[0];\n\n for (let i = 1; i < items.length; i++) {\n if (cmp(items[i], result)) {\n result = items[i];\n }\n }\n\n return result;\n };\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { createCmp } from \"../bi/helpers.js\";\n\n/**\n * @name bnMax\n * @summary Finds and returns the highest value in an array of BNs.\n * @example\n *
\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 = 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 *
\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 */\n\nexport const bnMin = createCmp((a, b) => a.lt(b));","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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';\n\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\n if (Array.isArray(locks)) {\n // only get the locks that are valid until passed the current block\n lockedBreakdown = locks.filter(({\n until\n }) => !until || bestNumber && until.gt(bestNumber));\n allLocked = lockedBreakdown.some(({\n amount\n }) => amount && amount.isMax());\n vestingLocked = api.registry.createType('Balance', lockedBreakdown.filter(({\n id\n }) => id.eq(VESTING_ID)).reduce((result, {\n amount\n }) => result.iadd(amount), new BN(0))); // get the maximum of the locks according to https://github.com/paritytech/substrate/blob/master/srml/balances/src/lib.rs#L699\n\n const notAll = lockedBreakdown.filter(({\n amount\n }) => amount && !amount.isMax());\n\n if (notAll.length) {\n lockedBalance = api.registry.createType('Balance', bnMax(...notAll.map(({\n amount\n }) => amount)));\n }\n }\n\n return {\n allLocked,\n lockedBalance,\n lockedBreakdown,\n vestingLocked\n };\n}\n\nfunction calcShared(api, bestNumber, data, locks) {\n const {\n allLocked,\n lockedBalance,\n lockedBreakdown,\n vestingLocked\n } = calcLocked(api, bestNumber, locks);\n return objectSpread({}, data, {\n availableBalance: api.registry.createType('Balance', allLocked ? 0 : bnMax(new BN(0), data.freeBalance.sub(lockedBalance))),\n lockedBalance,\n lockedBreakdown,\n vestingLocked\n });\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(({\n locked,\n perBlock,\n startingBlock\n }) => bestNumber.gt(startingBlock) ? bnMin(locked, perBlock.mul(bestNumber.sub(startingBlock))) : BN_ZERO);\n const vestedBalance = vestedBalances.reduce((all, value) => all.iadd(value), new BN(0));\n const vestingTotal = vesting.reduce((all, {\n locked\n }) => all.iadd(locked), new BN(0));\n return {\n isVesting,\n vestedBalance,\n vestedClaimable: isVesting ? shared.vestingLocked.sub(vestingTotal.sub(vestedBalance)) : BN_ZERO,\n vesting: vesting.map(({\n locked,\n perBlock,\n startingBlock\n }, index) => ({\n endBlock: locked.div(perBlock).iadd(startingBlock),\n locked,\n perBlock,\n startingBlock,\n vested: vestedBalances[index]\n })).filter(({\n locked\n }) => !locked.isZero()),\n vestingTotal\n };\n}\n\nfunction calcBalances(api, [data, [vesting, allLocks, namedReserves], bestNumber]) {\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.slice(1).map((l, index) => calcShared(api, bestNumber, data.additional[index], l)),\n namedReserves\n });\n} // old\n\n\nfunction queryOld(api, accountId) {\n return combineLatest([api.query.balances.locks(accountId), api.query.balances.vesting(accountId)]).pipe(map(([locks, optVesting]) => {\n let vestingNew = null;\n\n if (optVesting.isSome) {\n const {\n offset: locked,\n perBlock,\n startingBlock\n } = optVesting.unwrap();\n vestingNew = api.registry.createType('VestingInfo', {\n locked,\n perBlock,\n startingBlock\n });\n }\n\n return [vestingNew ? [vestingNew] : null, [locks], []];\n }));\n}\n\nconst isNonNullable = nullable => !!nullable;\n\nfunction createCalls(calls) {\n return [calls.map(c => !c), calls.filter(isNonNullable)];\n} // current (balances, vesting)\n\n\nfunction queryCurrent(api, accountId, balanceInstances = ['balances']) {\n var _api$query$vesting;\n\n const [lockEmpty, lockQueries] = createCalls(balanceInstances.map(m => {\n var _m, _api$query;\n\n return ((_m = api.derive[m]) === null || _m === void 0 ? void 0 : _m.customLocks) || ((_api$query = api.query[m]) === null || _api$query === void 0 ? void 0 : _api$query.locks);\n }));\n const [reserveEmpty, reserveQueries] = createCalls(balanceInstances.map(m => {\n var _api$query2;\n\n return (_api$query2 = api.query[m]) === null || _api$query2 === void 0 ? void 0 : _api$query2.reserves;\n }));\n return combineLatest([(_api$query$vesting = api.query.vesting) !== null && _api$query$vesting !== void 0 && _api$query$vesting.vesting ? api.query.vesting.vesting(accountId) : of(api.registry.createType('Option')), lockQueries.length ? combineLatest(lockQueries.map(c => c(accountId))) : of([]), reserveQueries.length ? combineLatest(reserveQueries.map(c => c(accountId))) : of([])]).pipe(map(([opt, locks, reserves]) => {\n let offsetLock = -1;\n let offsetReserve = -1;\n const vesting = opt.unwrapOr(null);\n return [vesting ? Array.isArray(vesting) ? vesting : [vesting] : null, lockEmpty.map(e => e ? api.registry.createType('Vec') : locks[++offsetLock]), reserveEmpty.map(e => e ? api.registry.createType('Vec') : reserves[++offsetReserve])];\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 *
\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 */\n\n\nexport function all(instanceId, api) {\n const balanceInstances = api.registry.getModuleInstances(api.runtimeVersion.specName, 'balances');\n return memo(instanceId, address => {\n var _api$query$system, _api$query$balances;\n\n return combineLatest([api.derive.balances.account(address), isFunction((_api$query$system = api.query.system) === null || _api$query$system === void 0 ? void 0 : _api$query$system.account) || isFunction((_api$query$balances = api.query.balances) === null || _api$query$balances === void 0 ? void 0 : _api$query$balances.account) ? queryCurrent(api, address, balanceInstances) : queryOld(api, address)]).pipe(switchMap(([account, locks]) => combineLatest([of(account), of(locks), api.derive.chain.bestNumber()])), map(result => calcBalances(api, result)));\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { isFunction, objectSpread } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\n\nfunction zeroBalance(api) {\n return api.registry.createType('Balance');\n}\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}\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} // old\n\n\nfunction queryBalancesFree(api, accountId) {\n return combineLatest([api.query.balances.freeBalance(accountId), api.query.balances.reservedBalance(accountId), api.query.system.accountNonce(accountId)]).pipe(map(([freeBalance, reservedBalance, accountNonce]) => [accountNonce, [[freeBalance, reservedBalance, zeroBalance(api), zeroBalance(api)]]]));\n}\n\nfunction queryNonceOnly(api, accountId) {\n const fill = nonce => [nonce, [[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]];\n\n return isFunction(api.query.system.account) ? api.query.system.account(accountId).pipe(map(({\n nonce\n }) => fill(nonce))) : isFunction(api.query.system.accountNonce) ? api.query.system.accountNonce(accountId).pipe(map(nonce => fill(nonce))) : of(fill(api.registry.createType('Index')));\n}\n\nfunction queryBalancesAccount(api, accountId, modules = ['balances']) {\n const balances = modules.map(m => {\n var _m, _api$query$m;\n\n return ((_m = api.derive[m]) === null || _m === void 0 ? void 0 : _m.customAccount) || ((_api$query$m = api.query[m]) === null || _api$query$m === void 0 ? void 0 : _api$query$m.account);\n }).filter(q => isFunction(q));\n\n const extract = (nonce, data) => [nonce, data.map(({\n feeFrozen,\n free,\n miscFrozen,\n reserved\n }) => [free, reserved, feeFrozen, miscFrozen])]; // NOTE this is for the first case where we do have instances specified\n\n\n return balances.length ? isFunction(api.query.system.account) ? combineLatest([api.query.system.account(accountId), ...balances.map(c => c(accountId))]).pipe(map(([{\n nonce\n }, ...balances]) => extract(nonce, balances))) : combineLatest([api.query.system.accountNonce(accountId), ...balances.map(c => c(accountId))]).pipe(map(([nonce, ...balances]) => extract(nonce, balances))) : queryNonceOnly(api, accountId);\n}\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 ? infoOrTuple.data : infoOrTuple[1];\n const nonce = infoOrTuple.nonce || infoOrTuple[0];\n\n if (!data || data.isEmpty) {\n return [nonce, [[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]];\n }\n\n const {\n feeFrozen,\n free,\n miscFrozen,\n reserved\n } = data;\n return [nonce, [[free, reserved, feeFrozen, miscFrozen]]];\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 *
\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 */\n\n\nexport function account(instanceId, api) {\n const balanceInstances = api.registry.getModuleInstances(api.runtimeVersion.specName, 'balances');\n const nonDefaultBalances = balanceInstances && (balanceInstances.length !== 1 || balanceInstances[0] !== 'balances');\n return memo(instanceId, address => api.derive.accounts.accountId(address).pipe(switchMap(accountId => {\n var _api$query$system, _api$query$balances, _api$query$balances2;\n\n return accountId ? combineLatest([of(accountId), nonDefaultBalances ? queryBalancesAccount(api, accountId, balanceInstances) : isFunction((_api$query$system = api.query.system) === null || _api$query$system === void 0 ? void 0 : _api$query$system.account) ? querySystemAccount(api, accountId) : isFunction((_api$query$balances = api.query.balances) === null || _api$query$balances === void 0 ? void 0 : _api$query$balances.account) ? queryBalancesAccount(api, accountId) : isFunction((_api$query$balances2 = api.query.balances) === null || _api$query$balances2 === void 0 ? void 0 : _api$query$balances2.freeBalance) ? queryBalancesFree(api, accountId) : queryNonceOnly(api, accountId)]) : of([api.registry.createType('AccountId'), [api.registry.createType('Index'), [[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]]]);\n }), map(result => calcBalances(api, result))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, of } from 'rxjs';\nimport { memo } from \"../util/index.js\";\nexport function votingBalances(instanceId, api) {\n return memo(instanceId, addresses => !addresses || !addresses.length ? of([]) : combineLatest(addresses.map(accountId => api.derive.balances.account(accountId))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { all } from \"./all.js\";\nexport * from \"./account.js\";\nexport * from \"./votingBalances.js\";\nconst votingBalance = all;\nexport { all, votingBalance };","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { memo } from \"../util/index.js\";\nimport { filterBountiesProposals } from \"./helpers/filterBountyProposals.js\";\n\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}\n\nexport function bounties(instanceId, api) {\n const bountyBase = api.query.bounties || api.query.treasury;\n return memo(instanceId, () => bountyBase.bounties ? combineLatest([bountyBase.bountyCount(), api.query.council ? api.query.council.proposalCount() : of(0)]).pipe(switchMap(() => combineLatest([bountyBase.bounties.keys(), api.derive.council ? api.derive.council.proposals() : of([])])), switchMap(([keys, proposals]) => {\n const ids = keys.map(({\n args: [id]\n }) => id);\n return combineLatest([bountyBase.bounties.multi(ids), bountyBase.bountyDescriptions.multi(ids), of(ids), of(filterBountiesProposals(api, proposals))]);\n }), map(parseResult)) : of(parseResult([[], [], [], []])));\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isOnObject } from \"./helpers.js\";\n\n/**\n * @name isCompact\n * @summary Tests for SCALE-Compact-like object instance.\n */\nexport const isCompact = isOnObject('toBigInt', 'toBn', 'toNumber', 'unwrap');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isCompact } from '@polkadot/util';\nexport function unwrapBlockNumber(hdr) {\n return isCompact(hdr.number) ? hdr.number.unwrap() : hdr.number;\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of } from 'rxjs';\nimport { memo, unwrapBlockNumber } from \"../util/index.js\"; // re-export these - since these needs to be resolvable from api-derive, i.e. without this\n// we would emit code with ..//src embedded in the *.d.ts files\n\nexport function createBlockNumberDerive(fn) {\n return (instanceId, api) => memo(instanceId, () => fn(api).pipe(map(unwrapBlockNumber)));\n}\nexport function getAuthorDetails(header, queryAt) {\n // this is Moonbeam specific\n if (queryAt.authorMapping && queryAt.authorMapping.mappingWithDeposit) {\n const mapId = header.digest.logs[0] && (header.digest.logs[0].isConsensus && header.digest.logs[0].asConsensus[1] || header.digest.logs[0].isPreRuntime && header.digest.logs[0].asPreRuntime[1]);\n\n if (mapId) {\n return combineLatest([of(header), queryAt.session ? queryAt.session.validators() : of(null), queryAt.authorMapping.mappingWithDeposit(mapId).pipe(map(opt => opt.unwrapOr({\n account: null\n }).account))]);\n }\n } // normal operation, non-mapping\n\n\n return combineLatest([of(header), queryAt.session ? queryAt.session.validators() : of(null), of(null)]);\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { createBlockNumberDerive } from \"./util.js\";\n/**\n * @name bestNumber\n * @returns The latest block number.\n * @example\n *
\n *\n * ```javascript\n * api.derive.chain.bestNumber((blockNumber) => {\n * console.log(`the current best block is #${blockNumber}`);\n * });\n * ```\n */\n\nexport const bestNumber = createBlockNumberDerive(api => api.rpc.chain.subscribeNewHeads());","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { createBlockNumberDerive } from \"./util.js\";\n/**\n * @name bestNumberFinalized\n * @returns A BlockNumber\n * @description Get the latest finalized block number.\n * @example\n *
\n *\n * ```javascript\n * api.derive.chain.bestNumberFinalized((blockNumber) => {\n * console.log(`the current finalized block is #${blockNumber}`);\n * });\n * ```\n */\n\nexport const bestNumberFinalized = createBlockNumberDerive(api => api.rpc.chain.subscribeFinalizedHeads());","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * api.derive.chain.bestNumberLag((lag) => {\n * console.log(`finalized is ${lag} blocks behind head`);\n * });\n * ```\n */\n\nexport function bestNumberLag(instanceId, api) {\n return memo(instanceId, () => combineLatest([api.derive.chain.bestNumber(), api.derive.chain.bestNumberFinalized()]).pipe(map(([bestNumber, bestNumberFinalized]) => api.registry.createType('BlockNumber', bestNumber.sub(bestNumberFinalized)))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport 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\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\n if (!accountId && citem) {\n const [engine, data] = citem.asConsensus;\n accountId = engine.extractAuthor(data, sessionValidators);\n } // SEAL, still used in e.g. Kulupu for pow\n\n\n if (!accountId && sitem) {\n const [engine, data] = sitem.asSeal;\n accountId = engine.extractAuthor(data, sessionValidators);\n }\n } catch {// ignore\n }\n\n return accountId;\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\n class Implementation extends HeaderBase {\n #author;\n\n constructor(registry, header, validators, author) {\n super(registry, header);\n this.#author = author || extractAuthor(this.digest, validators || []);\n this.createdAtHash = header === null || header === void 0 ? void 0 : header.createdAtHash;\n }\n /**\n * @description Convenience method, returns the author for the block\n */\n\n\n get author() {\n return this.#author;\n }\n\n }\n\n return new Implementation(registry, header, validators, author);\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, 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 *
\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 */\n\nexport function getHeader(instanceId, api) {\n return memo(instanceId, blockHash => combineLatest([api.rpc.chain.getHeader(blockHash), api.queryAt(blockHash)]).pipe(switchMap(([header, queryAt]) => getAuthorDetails(header, queryAt)), map(([header, validators, author]) => createHeaderExtended((validators || header).registry, header, validators, author))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\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 */\n\nexport function getBlock(instanceId, api) {\n return memo(instanceId, blockHash => combineLatest([api.rpc.chain.getBlock(blockHash), api.queryAt(blockHash)]).pipe(switchMap(([signedBlock, queryAt]) => combineLatest([of(signedBlock), queryAt.system.events(), getAuthorDetails(signedBlock.block.header, queryAt)])), map(([signedBlock, events, [, validators, author]]) => createSignedBlockExtended(events.registry, signedBlock, events, validators, author))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { extractAuthor } from \"./util.js\";\n\nfunction mapExtrinsics(extrinsics, records) {\n return extrinsics.map((extrinsic, index) => {\n let dispatchError;\n let dispatchInfo;\n const events = records.filter(({\n phase\n }) => phase.isApplyExtrinsic && phase.asApplyExtrinsic.eq(index)).map(({\n event\n }) => {\n if (event.section === 'system') {\n if (event.method === 'ExtrinsicSuccess') {\n dispatchInfo = event.data[0];\n } else if (event.method === 'ExtrinsicFailed') {\n dispatchError = event.data[0];\n dispatchInfo = event.data[1];\n }\n }\n\n return event;\n });\n return {\n dispatchError,\n dispatchInfo,\n events,\n extrinsic\n };\n });\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\n class Implementation extends SignedBlockBase {\n #author;\n #events;\n #extrinsics;\n\n constructor(registry, block, events, validators, author) {\n super(registry, block);\n this.#author = author || extractAuthor(this.block.header.digest, validators || []);\n this.#events = events || [];\n this.#extrinsics = mapExtrinsics(this.block.extrinsics, this.#events);\n this.createdAtHash = block === null || block === void 0 ? void 0 : block.createdAtHash;\n }\n /**\n * @description Convenience method, returns the author for the block\n */\n\n\n get author() {\n return this.#author;\n }\n /**\n * @description Convenience method, returns the events associated with the block\n */\n\n\n get events() {\n return this.#events;\n }\n /**\n * @description Returns the extrinsics and their events, mapped\n */\n\n\n get extrinsics() {\n return this.#extrinsics;\n }\n\n }\n\n return new Implementation(registry, block, events, validators, author);\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\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) ? of([header, ...prev]) : 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 */\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) ? of(header) : api.derive.chain._getHeaderRange(startHash, endHash, [header]).pipe(switchMap(headers => from(headers)));\n }));\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { switchMap } from 'rxjs';\nimport { memo } from \"../util/index.js\";\n/**\n * @name subscribeNewBlocks\n * @returns The latest block & events for that block\n */\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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, 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 *
\n *\n * ```javascript\n * api.derive.chain.subscribeNewHeads((header) => {\n * console.log(`block #${header.number} was authored by ${header.author}`);\n * });\n * ```\n */\n\nexport function subscribeNewHeads(instanceId, api) {\n return memo(instanceId, () => api.rpc.chain.subscribeNewHeads().pipe(switchMap(header => combineLatest([of(header), api.queryAt(header.hash)])), switchMap(([header, queryAt]) => getAuthorDetails(header, queryAt)), map(([header, validators, author]) => {\n header.createdAtHash = header.hash;\n return createHeaderExtended(header.registry, header, validators, author);\n })));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of } from 'rxjs';\nimport { memo } from \"../util/index.js\";\n\n// query via constants (current applicable path)\nfunction queryConstants(api) {\n return of([// deprecated\n api.consts.contracts.callBaseFee || api.registry.createType('Balance'), api.consts.contracts.contractFee || api.registry.createType('Balance'), api.consts.contracts.creationFee || api.registry.createType('Balance'), api.consts.contracts.transactionBaseFee || api.registry.createType('Balance'), api.consts.contracts.transactionByteFee || api.registry.createType('Balance'), api.consts.contracts.transferFee || api.registry.createType('Balance'), // current\n api.consts.contracts.rentByteFee, api.consts.contracts.rentDepositOffset, api.consts.contracts.surchargeReward, api.consts.contracts.tombstoneDeposit]);\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 *
\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 */\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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of } from 'rxjs';\nimport { memo } from \"../util/index.js\"; // Voter is current tuple is 2.x-era\n\nfunction isVoter(value) {\n return !Array.isArray(value);\n}\n\nfunction retrieveStakeOf(elections) {\n return elections.stakeOf.entries().pipe(map(entries => entries.map(([{\n args: [accountId]\n }, stake]) => [accountId, stake])));\n}\n\nfunction retrieveVoteOf(elections) {\n return elections.votesOf.entries().pipe(map(entries => entries.map(([{\n args: [accountId]\n }, votes]) => [accountId, votes])));\n}\n\nfunction retrievePrev(api, elections) {\n return combineLatest([retrieveStakeOf(elections), retrieveVoteOf(elections)]).pipe(map(([stakes, votes]) => {\n const result = [];\n votes.forEach(([voter, votes]) => {\n result.push([voter, {\n stake: api.registry.createType('Balance'),\n votes\n }]);\n });\n stakes.forEach(([staker, stake]) => {\n const entry = result.find(([voter]) => voter.eq(staker));\n\n if (entry) {\n entry[1].stake = stake;\n } else {\n result.push([staker, {\n stake,\n votes: []\n }]);\n }\n });\n return result;\n }));\n}\n\nfunction retrieveCurrent(elections) {\n return elections.voting.entries().pipe(map(entries => entries.map(([{\n args: [accountId]\n }, value]) => [accountId, isVoter(value) ? {\n stake: value.stake,\n votes: value.votes\n } : {\n stake: value[0],\n votes: value[1]\n }])));\n}\n\nexport function votes(instanceId, api) {\n const elections = api.query.phragmenElection || api.query.electionsPhragmen || api.query.elections;\n return memo(instanceId, () => elections ? elections.stakeOf ? retrievePrev(api, elections) : retrieveCurrent(elections) : of([]));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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)) || [null, {\n stake: api.registry.createType('Balance'),\n votes: []\n }])[1])));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 = collectiveMembers('council');\nexport const hasProposals = collectiveHasProposals('council');\nexport const proposal = collectiveProposal('council');\nexport const proposalCount = collectiveProposalCount('council');\nexport const proposalHashes = collectiveProposalHashes('council');\nexport const proposals = collectiveProposals('council');\nexport const prime = collectivePrime('council');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map } from 'rxjs';\nimport { u8aConcat, u8aToHex } from '@polkadot/util';\nimport { blake2AsU8a } from '@polkadot/util-crypto';\nimport { memo } from \"../util/index.js\";\n\nfunction createChildKey(info) {\n return u8aToHex(u8aConcat(':child_storage:default:', blake2AsU8a(u8aConcat('crowdloan', (info.fundIndex || info.trieIndex).toU8a()))));\n}\n\nexport function childKey(instanceId, api) {\n return memo(instanceId, paraId => api.query.crowdloan.funds(paraId).pipe(map(optInfo => optInfo.isSome ? createChildKey(optInfo.unwrap()) : null)));\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 * Just emits 'complete', and nothing else.\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((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((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// This is supposed to be a faster concat...\n// https://dev.to/uilicious/javascript-array-push-is-945x-faster-than-array-concat-1oki\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 *
\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 // noop for the empty & single-entry case\n if (arrays.length === 0) {\n return [];\n } else if (arrays.length === 1) {\n return arrays[0];\n } // pre-allocate based on the combined size\n\n\n let size = 0;\n\n for (let i = 0; i < arrays.length; i++) {\n size += arrays[i].length;\n }\n\n const output = new Array(size);\n let i = -1;\n\n for (let j = 0; j < arrays.length; j++) {\n const a = arrays[j]; // instead of pushing, we just set the entries\n\n for (let e = 0; e < a.length; e++) {\n output[++i] = a[e];\n }\n }\n\n return output;\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport function extractContributed(paraId, events) {\n var _events$createdAtHash;\n\n const added = [];\n const removed = [];\n return events.filter(({\n event: {\n data: [, eventParaId],\n method,\n section\n }\n }) => section === 'crowdloan' && ['Contributed', 'Withdrew'].includes(method) && eventParaId.eq(paraId)).reduce((result, {\n event: {\n data: [accountId],\n method\n }\n }) => {\n if (method === 'Contributed') {\n result.added.push(accountId.toHex());\n } else {\n result.removed.push(accountId.toHex());\n }\n\n return result;\n }, {\n added,\n blockHash: ((_events$createdAtHash = events.createdAtHash) === null || _events$createdAtHash === void 0 ? void 0 : _events$createdAtHash.toHex()) || '-',\n removed\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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)\n\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\n if (changes.added.length || changes.removed.length) {\n var _events$createdAtHash;\n\n added = added.concat(...changes.added);\n removed = removed.concat(...changes.removed);\n return of({\n added,\n addedDelta: changes.added,\n blockHash: ((_events$createdAtHash = events.createdAtHash) === null || _events$createdAtHash === void 0 ? void 0 : _events$createdAtHash.toHex()) || '-',\n removed,\n removedDelta: changes.removed\n });\n }\n\n return EMPTY;\n }), startWith({\n added,\n addedDelta: [],\n blockHash: '-',\n removed,\n removedDelta: []\n }));\n}\n\nfunction _eventTriggerAll(api, paraId) {\n return api.query.system.events().pipe(switchMap(events => {\n var _events$createdAtHash2;\n\n const items = events.filter(({\n event: {\n data: [eventParaId],\n method,\n section\n }\n }) => section === 'crowdloan' && ['AllRefunded', 'Dissolved', 'PartiallyRefunded'].includes(method) && eventParaId.eq(paraId));\n return items.length ? of(((_events$createdAtHash2 = events.createdAtHash) === null || _events$createdAtHash2 === void 0 ? void 0 : _events$createdAtHash2.toHex()) || '-') : EMPTY;\n }), startWith('-'));\n}\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 ? subject.next(keys[PAGE_SIZE_K - 1].toHex()) : subject.complete();\n });\n }), toArray(), // toArray since we want to startSubject to be completed\n map(keyArr => arrayFlatten(keyArr)));\n}\n\nfunction _getAll(api, paraId, childKey) {\n return _eventTriggerAll(api, paraId).pipe(switchMap(() => isFunction(api.rpc.childstate.getKeysPaged) ? _getKeysPaged(api, childKey) : api.rpc.childstate.getKeys(childKey, '0x')), map(keys => keys.map(k => k.toHex())));\n}\n\nfunction _contributions(api, paraId, childKey) {\n return combineLatest([_getAll(api, paraId, childKey), _getUpdates(api, paraId)]).pipe(map(([keys, {\n added,\n blockHash,\n removed\n }]) => {\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}\n\nexport function contributions(instanceId, api) {\n return memo(instanceId, paraId => api.derive.crowdloan.childKey(paraId).pipe(switchMap(childKey => childKey ? _contributions(api, paraId, childKey) : of({\n blockHash: '-',\n contributorsHex: []\n }))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, EMPTY, map, of, startWith, switchMap } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\nimport { extractContributed } from \"./util.js\";\n\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.map(v => api.registry.createType('Option', v)).map(o => o.isSome ? api.registry.createType('Balance', o.unwrap()) : api.registry.createType('Balance')).reduce((all, b, index) => objectSpread(all, {\n [keys[index]]: b\n }), {})));\n}\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) || changes.removed.includes(k));\n return filtered.length ? _getValues(api, childkey, filtered) : EMPTY;\n }), startWith({}));\n}\n\nfunction _contributions(api, paraId, childKey, keys) {\n return combineLatest([_getValues(api, childKey, keys), _watchOwnChanges(api, paraId, childKey, keys)]).pipe(map(([all, latest]) => objectSpread({}, all, latest)));\n}\n\nexport function ownContributions(instanceId, api) {\n return memo(instanceId, (paraId, keys) => api.derive.crowdloan.childKey(paraId).pipe(switchMap(childKey => childKey && keys.length ? _contributions(api, paraId, childKey, keys) : of({}))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\";\nconst DEMOCRACY_ID = stringToHex('democrac');\n\nfunction isMaybeHashed(call) {\n // check for enum\n return call instanceof Enum;\n}\n\nfunction queryQueue(api) {\n return api.query.democracy.dispatchQueue().pipe(switchMap(dispatches => combineLatest([of(dispatches), api.derive.democracy.preimages(dispatches.map(([, hash]) => hash))])), map(([dispatches, images]) => dispatches.map(([at, imageHash, index], dispatchIndex) => ({\n at,\n image: images[dispatchIndex],\n imageHash,\n index\n }))));\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(({\n args: [blockNumber]\n }) => blockNumber);\n return blockNumbers.length ? combineLatest([of(blockNumbers), // 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(() => []))))]) : of([[], []]);\n }));\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\n if (scheduled.maybeId.isSome) {\n const id = scheduled.maybeId.unwrap().toHex();\n\n if (id.startsWith(DEMOCRACY_ID)) {\n const imageHash = isMaybeHashed(scheduled.call) ? scheduled.call.isHash ? scheduled.call.asHash : scheduled.call.asValue.args[0] : scheduled.call.args[0];\n result.push({\n at,\n imageHash,\n index: api.registry.createType('(u64, ReferendumIndex)', id)[1]\n });\n }\n }\n });\n });\n return combineLatest([of(result), result.length ? api.derive.democracy.preimages(result.map(({\n imageHash\n }) => imageHash)) : of([])]);\n }), map(([infos, images]) => infos.map((info, index) => objectSpread({\n image: images[index]\n }, info))));\n}\n\nexport function dispatchQueue(instanceId, api) {\n return memo(instanceId, () => {\n var _api$query$scheduler;\n\n return isFunction((_api$query$scheduler = api.query.scheduler) === null || _api$query$scheduler === void 0 ? void 0 : _api$query$scheduler.agenda) ? queryScheduler(api) : api.query.democracy.dispatchQueue ? queryQueue(api) : of([]);\n });\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * import { stringToHex } from '@polkadot/util';\n *\n * stringToU8a('hello'); // 0x68656c6c6f\n * ```\n */\n\nexport function stringToHex(value) {\n return u8aToHex(stringToU8a(value));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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];\n\nfunction parseEnd(api, vote, {\n approved,\n end\n}) {\n return [end, approved.isTrue && vote.isAye || approved.isFalse && vote.isNay ? end.add((api.consts.democracy.voteLockingPeriod || api.consts.democracy.enactmentPeriod).muln(LOCKUPS[vote.conviction.index])) : BN_ZERO];\n}\n\nfunction parseLock(api, [referendumId, accountVote], referendum) {\n const {\n balance,\n vote\n } = accountVote.asStandard;\n const [referendumEnd, unlockAt] = referendum.isFinished ? parseEnd(api, vote, referendum.asFinished) : [BN_ZERO, BN_ZERO];\n return {\n balance,\n isDelegated: false,\n isFinished: referendum.isFinished,\n referendumEnd,\n referendumId,\n unlockAt,\n vote\n };\n}\n\nfunction delegateLocks(api, {\n balance,\n conviction,\n target\n}) {\n return api.derive.democracy.locks(target).pipe(map(available => available.map(({\n isFinished,\n referendumEnd,\n referendumId,\n unlockAt,\n vote\n }) => ({\n balance,\n isDelegated: true,\n isFinished,\n referendumEnd,\n referendumId,\n unlockAt: unlockAt.isZero() ? unlockAt : referendumEnd.add((api.consts.democracy.voteLockingPeriod || api.consts.democracy.enactmentPeriod).muln(LOCKUPS[conviction.index])),\n vote: api.registry.createType('Vote', {\n aye: vote.isAye,\n conviction\n })\n }))));\n}\n\nfunction directLocks(api, {\n votes\n}) {\n if (!votes.length) {\n return of([]);\n }\n\n return api.query.democracy.referendumInfoOf.multi(votes.map(([referendumId]) => referendumId)).pipe(map(referendums => votes.map((vote, index) => [vote, referendums[index].unwrapOr(null)]).filter(item => !!item[1] && isUndefined(item[1].end) && item[0][1].isStandard).map(([directVote, referendum]) => parseLock(api, directVote, referendum))));\n}\n\nexport function locks(instanceId, api) {\n return memo(instanceId, accountId => api.query.democracy.votingOf ? api.query.democracy.votingOf(accountId).pipe(switchMap(voting => voting.isDirect ? directLocks(api, voting.asDirect) : voting.isDelegating ? delegateLocks(api, voting.asDelegating) : of([]))) : of([]));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of, switchMap } from 'rxjs';\nimport { memo } from \"../util/index.js\";\n\nfunction withImage(api, nextOpt) {\n if (nextOpt.isNone) {\n return of(null);\n }\n\n const [imageHash, threshold] = nextOpt.unwrap();\n return api.derive.democracy.preimage(imageHash).pipe(map(image => ({\n image,\n imageHash,\n threshold\n })));\n}\n\nexport function nextExternal(instanceId, api) {\n return memo(instanceId, () => {\n var _api$query$democracy;\n\n return (_api$query$democracy = api.query.democracy) !== null && _api$query$democracy !== void 0 && _api$query$democracy.nextExternal ? api.query.democracy.nextExternal().pipe(switchMap(nextOpt => withImage(api, nextOpt))) : of(null);\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of } from 'rxjs';\nimport { isFunction } from '@polkadot/util';\nimport { firstMemo, memo } from \"../util/index.js\";\n\nfunction isDemocracyPreimage(api, imageOpt) {\n return !!imageOpt && !api.query.democracy.dispatchQueue;\n}\n\nfunction constructProposal(api, [bytes, proposer, balance, at]) {\n let proposal;\n\n try {\n proposal = api.registry.createType('Proposal', bytes.toU8a(true));\n } catch (error) {\n console.error(error);\n }\n\n return {\n at,\n balance,\n proposal,\n proposer\n };\n}\n\nfunction parseDemocracy(api, imageOpt) {\n if (imageOpt.isNone) {\n return;\n }\n\n if (isDemocracyPreimage(api, imageOpt)) {\n const status = imageOpt.unwrap();\n\n if (status.isMissing) {\n return;\n }\n\n const {\n data,\n deposit,\n provider,\n since\n } = status.asAvailable;\n return constructProposal(api, [data, provider, deposit, since]);\n }\n\n return constructProposal(api, imageOpt.unwrap());\n}\n\nfunction getDemocracyImages(api, hashes) {\n return api.query.democracy.preimages.multi(hashes).pipe(map(images => images.map(imageOpt => parseDemocracy(api, imageOpt))));\n}\n\nexport function preimages(instanceId, api) {\n return memo(instanceId, hashes => hashes.length ? isFunction(api.query.democracy.preimages) ? getDemocracyImages(api, hashes) : of([]) : of([]));\n}\nexport const preimage = firstMemo((api, hash) => api.derive.democracy.preimages([hash]));","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { isFunction, objectSpread } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\n\nfunction isNewDepositors(depositors) {\n // Detect balance...\n // eslint-disable-next-line @typescript-eslint/unbound-method\n return isFunction(depositors[1].mul);\n}\n\nfunction parse([proposals, images, optDepositors]) {\n return proposals.filter(([,, proposer], index) => {\n var _optDepositors$index;\n\n return !!((_optDepositors$index = optDepositors[index]) !== null && _optDepositors$index !== void 0 && _optDepositors$index.isSome) && !proposer.isEmpty;\n }).map(([index, imageHash, proposer], proposalIndex) => {\n const depositors = optDepositors[proposalIndex].unwrap();\n return objectSpread({\n image: images[proposalIndex],\n imageHash,\n index,\n proposer\n }, isNewDepositors(depositors) ? {\n balance: depositors[1],\n seconds: depositors[0]\n } : {\n balance: depositors[0],\n seconds: depositors[1]\n });\n });\n}\n\nexport function proposals(instanceId, api) {\n return memo(instanceId, () => {\n var _api$query$democracy, _api$query$democracy2;\n\n return isFunction((_api$query$democracy = api.query.democracy) === null || _api$query$democracy === void 0 ? void 0 : _api$query$democracy.publicProps) && isFunction((_api$query$democracy2 = api.query.democracy) === null || _api$query$democracy2 === void 0 ? void 0 : _api$query$democracy2.preimages) ? api.query.democracy.publicProps().pipe(switchMap(proposals => proposals.length ? combineLatest([of(proposals), api.derive.democracy.preimages(proposals.map(([, hash]) => hash)), api.query.democracy.depositOf.multi(proposals.map(([index]) => index))]) : of([[], [], []])), map(parse)) : of([]);\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of } from 'rxjs';\nimport { memo } from \"../util/index.js\";\nexport function referendumIds(instanceId, api) {\n return memo(instanceId, () => {\n var _api$query$democracy;\n\n return (_api$query$democracy = api.query.democracy) !== null && _api$query$democracy !== void 0 && _api$query$democracy.lowestUnbaked ? api.queryMulti([api.query.democracy.lowestUnbaked, api.query.democracy.referendumCount]).pipe(map(([first, total]) => total.gt(first) // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n ? [...Array(total.sub(first).toNumber())].map((_, i) => first.addn(i)) : [])) : of([]);\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 ? combineLatest([of(referendums), api.derive.democracy._referendumsVotes(referendums)]) : of([[], []])), map(([referendums, votes]) => referendums.map((referendum, index) => objectSpread({}, referendum, votes[index])))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 ? api.derive.democracy.referendumsInfo(ids) : of([]))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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.map(o => o.unwrapOr(null)).filter(info => !!info && info.isFinished).map(info => info.asFinished))));\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BN } from \"./bn.js\";\nimport { BN_MAX_INTEGER, BN_ONE } from \"./consts.js\";\nimport { bnToBn } from \"./toBn.js\";\n/** @internal */\n\nexport const SQRT_MAX_SAFE_INTEGER = new BN(94906265);\n/**\n * @name bnSqrt\n * @summary Calculates the integer square root of a BN\n * @example\n *
\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 */\n\nexport function bnSqrt(value) {\n const n = bnToBn(value);\n\n if (n.isNeg()) {\n throw new Error('square root of negative numbers is not supported');\n } // https://stackoverflow.com/questions/53683995/javascript-big-integer-square-root/\n // shortcut <= 2^53 - 1 to use the JS utils\n\n\n if (n.lte(BN_MAX_INTEGER)) {\n // ~~ More performant version of Math.floor\n return new BN(~~Math.sqrt(n.toNumber()));\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\n\n let x0 = SQRT_MAX_SAFE_INTEGER.clone();\n\n while (true) {\n const x1 = n.div(x0).iadd(x0).ishrn(1);\n\n if (x0.eq(x1) || x0.eq(x1.sub(BN_ONE))) {\n return x0;\n }\n\n x0 = x1;\n }\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BN, bnSqrt, objectSpread } from '@polkadot/util';\n\nfunction isOldInfo(info) {\n return !!info.proposalHash;\n}\n\nfunction isCurrentStatus(status) {\n return !!status.tally;\n}\n\nexport function compareRationals(n1, d1, n2, d2) {\n while (true) {\n const q1 = n1.div(d1);\n const q2 = n2.div(d2);\n\n if (q1.lt(q2)) {\n return true;\n } else if (q2.lt(q1)) {\n return false;\n }\n\n const r1 = n1.mod(d1);\n const r2 = n2.mod(d2);\n\n if (r2.isZero()) {\n return false;\n } else if (r1.isZero()) {\n return true;\n }\n\n n1 = d2;\n n2 = d1;\n d1 = r2;\n d2 = r1;\n }\n}\n\nfunction calcPassingOther(threshold, sqrtElectorate, {\n votedAye,\n votedNay,\n votedTotal\n}) {\n const sqrtVoters = bnSqrt(votedTotal);\n return sqrtVoters.isZero() ? false : threshold.isSuperMajorityApprove ? compareRationals(votedNay, sqrtVoters, votedAye, sqrtElectorate) : compareRationals(votedNay, sqrtElectorate, votedAye, sqrtVoters);\n}\n\nexport function calcPassing(threshold, sqrtElectorate, state) {\n return threshold.isSimpleMajority ? state.votedAye.gt(state.votedNay) : calcPassingOther(threshold, sqrtElectorate, state);\n}\n\nfunction calcVotesPrev(votesFor) {\n return votesFor.reduce((state, derived) => {\n const {\n balance,\n vote\n } = derived;\n const isDefault = vote.conviction.index === 0;\n const counted = balance.muln(isDefault ? 1 : vote.conviction.index).divn(isDefault ? 10 : 1);\n\n if (vote.isAye) {\n state.allAye.push(derived);\n state.voteCountAye++;\n state.votedAye.iadd(counted);\n } else {\n state.allNay.push(derived);\n state.voteCountNay++;\n state.votedNay.iadd(counted);\n }\n\n state.voteCount++;\n state.votedTotal.iadd(counted);\n return state;\n }, {\n allAye: [],\n allNay: [],\n voteCount: 0,\n voteCountAye: 0,\n voteCountNay: 0,\n votedAye: new BN(0),\n votedNay: new BN(0),\n votedTotal: new BN(0)\n });\n}\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 } 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}\n\nexport function calcVotes(sqrtElectorate, referendum, votes) {\n const state = isCurrentStatus(referendum.status) ? calcVotesCurrent(referendum.status.tally, votes) : 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\n const unwrapped = info.unwrap();\n return isOldInfo(unwrapped) ? unwrapped : unwrapped.isOngoing ? unwrapped.asOngoing // done, we don't include it here... only currently active\n : null;\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { isFunction, objectSpread } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\nimport { calcVotes, getStatus } from \"./util.js\";\n\nfunction votesPrev(api, referendumId) {\n return api.query.democracy.votersFor(referendumId).pipe(switchMap(votersFor => combineLatest([of(votersFor), votersFor.length ? api.query.democracy.voteOf.multi(votersFor.map(accountId => [referendumId, accountId])) : of([]), api.derive.balances.votingBalances(votersFor)])), 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}\n\nfunction extractVotes(mapped, referendumId) {\n return mapped.filter(([, voting]) => voting.isDirect).map(([accountId, voting]) => [accountId, voting.asDirect.votes.filter(([idx]) => idx.eq(referendumId))]).filter(([, directVotes]) => !!directVotes.length).reduce((result, [accountId, votes]) => // 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\n return result;\n }, result), []);\n}\n\nfunction votesCurr(api, referendumId) {\n return api.query.democracy.votingOf.entries().pipe(map(allVoting => {\n const mapped = allVoting.map(([{\n args: [accountId]\n }, voting]) => [accountId, voting]);\n const votes = extractVotes(mapped, referendumId);\n const delegations = mapped.filter(([, voting]) => voting.isDelegating).map(([accountId, voting]) => [accountId, voting.asDelegating]); // add delegations\n\n delegations.forEach(([accountId, {\n balance,\n conviction,\n target\n }]) => {\n // Are we delegating to a delegator\n const toDelegator = delegations.find(([accountId]) => accountId.eq(target));\n const to = votes.find(({\n accountId\n }) => accountId.eq(toDelegator ? toDelegator[0] : target)); // this delegation has a target\n\n if (to) {\n votes.push({\n accountId,\n balance,\n isDelegating: true,\n vote: api.registry.createType('Vote', {\n aye: to.vote.isAye,\n conviction\n })\n });\n }\n });\n return votes;\n }));\n}\n\nexport function _referendumVotes(instanceId, api) {\n return memo(instanceId, referendum => combineLatest([api.derive.democracy.sqrtElectorate(), isFunction(api.query.democracy.votingOf) ? votesCurr(api, referendum.index) : votesPrev(api, referendum.index)]).pipe(map(([sqrtElectorate, votes]) => calcVotes(sqrtElectorate, referendum, votes))));\n}\nexport function _referendumsVotes(instanceId, api) {\n return memo(instanceId, referendums => referendums.length ? combineLatest(referendums.map(referendum => api.derive.democracy._referendumVotes(referendum))) : of([]));\n}\nexport function _referendumInfo(instanceId, api) {\n return memo(instanceId, (index, info) => {\n const status = getStatus(info);\n return status ? api.derive.democracy.preimage(status.proposalHash).pipe(map(image => ({\n image,\n imageHash: status.proposalHash,\n index: api.registry.createType('ReferendumIndex', index),\n status\n }))) : of(null);\n });\n}\nexport function referendumsInfo(instanceId, api) {\n return memo(instanceId, ids => ids.length ? 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(referendum => !!referendum))) : of([]));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from \"../util/index.js\"; // SeatHolder is current tuple is 2.x-era Substrate\n\nfunction isSeatHolder(value) {\n return !Array.isArray(value);\n}\n\nfunction isCandidateTuple(value) {\n return Array.isArray(value);\n}\n\nfunction getAccountTuple(value) {\n return isSeatHolder(value) ? [value.who, value.stake] : value;\n}\n\nfunction getCandidate(value) {\n return isCandidateTuple(value) ? value[0] : value;\n}\n\nfunction sortAccounts([, balanceA], [, balanceB]) {\n return balanceB.cmp(balanceA);\n}\n\nfunction getConstants(api, elections) {\n return elections ? {\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 } : {};\n}\n\nfunction getModules(api) {\n const [council] = api.registry.getModuleInstances(api.runtimeVersion.specName, 'council') || ['council'];\n const elections = api.query.phragmenElection ? 'phragmenElection' : api.query.electionsPhragmen ? 'electionsPhragmen' : api.query.elections ? 'elections' : null;\n return [council, elections];\n}\n\nfunction queryAll(api, council, elections) {\n return api.queryMulti([api.query[council].members, api.query[elections].candidates, api.query[elections].members, api.query[elections].runnersUp]);\n}\n\nfunction queryCouncil(api, council) {\n return combineLatest([api.query[council].members(), of([]), of([]), of([])]);\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 *
\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 */\n\n\nexport function info(instanceId, api) {\n return memo(instanceId, () => {\n const [council, elections] = getModules(api);\n return (elections ? queryAll(api, council, elections) : 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 ? members.map(getAccountTuple).sort(sortAccounts) : councilMembers.map(a => [a, api.registry.createType('Balance')]),\n runnersUp: runnersUp.map(getAccountTuple).sort(sortAccounts)\n })));\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { BN_ZERO } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\n\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\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 */\n\n\nexport function receivedHeartbeats(instanceId, api) {\n return memo(instanceId, () => {\n var _api$query$imOnline;\n\n return (_api$query$imOnline = api.query.imOnline) !== null && _api$query$imOnline !== void 0 && _api$query$imOnline.receivedHeartbeats ? api.derive.staking.overview().pipe(switchMap(({\n currentIndex,\n validators\n }) => combineLatest([of({}), of(validators), api.query.imOnline.receivedHeartbeats.multi(validators.map((_address, index) => [currentIndex, index])), api.query.imOnline.authoredBlocks.multi(validators.map(address => [currentIndex, address]))])), map(mapResult)) : of({});\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 = collectiveMembers('membership');\nexport const hasProposals = collectiveHasProposals('membership');\nexport const proposal = collectiveProposal('membership');\nexport const proposalCount = collectiveProposalCount('membership');\nexport const proposalHashes = collectiveProposalHashes('membership');\nexport const proposals = collectiveProposals('membership');\nexport const prime = collectivePrime('membership');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport function didUpdateToBool(didUpdate, id) {\n return didUpdate.isSome ? didUpdate.unwrap().some(paraId => paraId.eq(id)) : false;\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\nimport { didUpdateToBool } from \"./util.js\";\n\nfunction parseActive(id, active) {\n const found = active.find(([paraId]) => paraId === id);\n\n if (found && found[1].isSome) {\n const [collatorId, retriable] = found[1].unwrap();\n return objectSpread({\n collatorId\n }, retriable.isWithRetries ? {\n isRetriable: true,\n retries: retriable.asWithRetries.toNumber()\n } : {\n isRetriable: false,\n retries: 0\n });\n }\n\n return null;\n}\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}\n\nfunction parse(id, [active, retryQueue, selectedThreads, didUpdate, info, pendingSwap, heads, relayDispatchQueue]) {\n if (info.isNone) {\n return null;\n }\n\n return {\n active: parseActive(id, active),\n didUpdate: didUpdateToBool(didUpdate, id),\n heads,\n id,\n info: objectSpread({\n id\n }, info.unwrap()),\n pendingSwapId: pendingSwap.unwrapOr(null),\n relayDispatchQueue,\n retryCollators: parseCollators(id, retryQueue),\n selectedCollators: parseCollators(id, selectedThreads)\n };\n}\n\nexport function info(instanceId, api) {\n return memo(instanceId, id => api.query.registrar && api.query.parachains ? api.queryMulti([api.query.registrar.active, api.query.registrar.retryQueue, api.query.registrar.selectedThreads, api.query.parachains.didUpdate, [api.query.registrar.paras, id], [api.query.registrar.pendingSwap, id], [api.query.parachains.heads, id], [api.query.parachains.relayDispatchQueue, id]]).pipe(map(result => parse(api.registry.createType('ParaId', id), result))) : of(null));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\nimport { didUpdateToBool } from \"./util.js\";\n\nfunction parse([ids, didUpdate, infos, pendingSwaps, relayDispatchQueueSizes]) {\n return ids.map((id, index) => ({\n didUpdate: didUpdateToBool(didUpdate, id),\n id,\n info: objectSpread({\n id\n }, infos[index].unwrapOr(null)),\n pendingSwapId: pendingSwaps[index].unwrapOr(null),\n relayDispatchQueueSize: relayDispatchQueueSizes[index][0].toNumber()\n }));\n}\n\nexport function overview(instanceId, api) {\n return memo(instanceId, () => {\n var _api$query$registrar;\n\n return (_api$query$registrar = api.query.registrar) !== null && _api$query$registrar !== void 0 && _api$query$registrar.parachains && api.query.parachains ? api.query.registrar.parachains().pipe(switchMap(paraIds => combineLatest([of(paraIds), api.query.parachains.didUpdate(), api.query.registrar.paras.multi(paraIds), api.query.registrar.pendingSwap.multi(paraIds), api.query.parachains.relayDispatchQueueSize.multi(paraIds)])), map(parse)) : of([]);\n });\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, of } from 'rxjs';\nimport { memo } from \"../util/index.js\"; // parse into Indexes\n\nfunction parse([currentIndex, activeEra, activeEraStart, currentEra, validatorCount]) {\n return {\n activeEra,\n activeEraStart,\n currentEra,\n currentIndex,\n validatorCount\n };\n} // query based on latest\n\n\nfunction queryStaking(api) {\n return api.queryMulti([api.query.session.currentIndex, api.query.staking.activeEra, api.query.staking.currentEra, api.query.staking.validatorCount]).pipe(map(([currentIndex, activeOpt, currentEra, validatorCount]) => {\n const {\n index,\n start\n } = activeOpt.unwrapOrDefault();\n return parse([currentIndex, index, start, currentEra.unwrapOrDefault(), validatorCount]);\n }));\n} // query based on latest\n\n\nfunction querySession(api) {\n return api.query.session.currentIndex().pipe(map(currentIndex => parse([currentIndex, api.registry.createType('EraIndex'), api.registry.createType('Option'), api.registry.createType('EraIndex'), api.registry.createType('u32')])));\n} // empty set when none is available\n\n\nfunction empty(api) {\n return of(parse([api.registry.createType('SessionIndex', 1), api.registry.createType('EraIndex'), api.registry.createType('Option'), api.registry.createType('EraIndex'), api.registry.createType('u32')]));\n}\n\nexport function indexes(instanceId, api) {\n return memo(instanceId, () => api.query.session ? api.query.staking ? queryStaking(api) : querySession(api) : empty(api));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nexport function info(instanceId, api) {\n return memo(instanceId, () => api.derive.session.indexes().pipe(map(indexes => {\n var _api$consts, _api$consts$babe, _api$consts2, _api$consts2$staking;\n\n const sessionLength = ((_api$consts = api.consts) === null || _api$consts === void 0 ? void 0 : (_api$consts$babe = _api$consts.babe) === null || _api$consts$babe === void 0 ? void 0 : _api$consts$babe.epochDuration) || api.registry.createType('u64', 1);\n const sessionsPerEra = ((_api$consts2 = api.consts) === null || _api$consts2 === void 0 ? void 0 : (_api$consts2$staking = _api$consts2.staking) === null || _api$consts2$staking === void 0 ? void 0 : _api$consts2$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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\n\nfunction withProgressField(field) {\n return (instanceId, api) => memo(instanceId, () => api.derive.session.progress().pipe(map(info => info[field])));\n}\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}\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}\n\nfunction queryBabe(api) {\n return api.derive.session.info().pipe(switchMap(info => {\n var _api$query$staking;\n\n return combineLatest([of(info), // we may have no staking, but have babe (permissioned)\n (_api$query$staking = api.query.staking) !== null && _api$query$staking !== void 0 && _api$query$staking.erasStartSessionIndex ? api.queryMulti([api.query.babe.currentSlot, api.query.babe.epochIndex, api.query.babe.genesisSlot, [api.query.staking.erasStartSessionIndex, info.activeEra]]) : api.queryMulti([api.query.babe.currentSlot, api.query.babe.epochIndex, api.query.babe.genesisSlot])]);\n }), map(([info, [currentSlot, epochIndex, genesisSlot, optStartIndex]]) => [info, [currentSlot, epochIndex, genesisSlot, optStartIndex && optStartIndex.isSome ? optStartIndex.unwrap() : api.registry.createType('SessionIndex', 1)]]));\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 */\n\n\nexport function progress(instanceId, api) {\n return memo(instanceId, () => api.query.babe ? queryBabe(api).pipe(map(([info, slots]) => createDerive(api, info, slots))) : queryAura(api));\n}\nexport const eraLength = withProgressField('eraLength');\nexport const eraProgress = withProgressField('eraProgress');\nexport const sessionProgress = withProgressField('sessionProgress');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { memo } from \"../util/index.js\";\n\n/**\n * @description Get the candidate info for a society\n */\nexport function candidates(instanceId, api) {\n return memo(instanceId, () => api.query.society.candidates().pipe(switchMap(candidates => combineLatest([of(candidates), api.query.society.suspendedCandidates.multi(candidates.map(({\n who\n }) => who))])), map(([candidates, suspended]) => candidates.map(({\n kind,\n value,\n who\n }, index) => ({\n accountId: who,\n isSuspended: suspended[index].isSome,\n kind,\n value\n })))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map } from 'rxjs';\nimport { memo } from \"../util/index.js\";\n\n/**\n * @description Get the overall info for a society\n */\nexport function info(instanceId, api) {\n return memo(instanceId, () => api.queryMulti([api.query.society.bids, api.query.society.defender, api.query.society.founder, api.query.society.head, api.query.society.maxMembers, api.query.society.pot]).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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map } from 'rxjs';\nimport { memo } from \"../util/index.js\";\n/**\n * @description Get the member info for a society\n */\n\nexport function member(instanceId, api) {\n return memo(instanceId, accountId => api.derive.society._members([accountId]).pipe(map(([result]) => result)));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { memo } from \"../util/index.js\";\nexport function _members(instanceId, api) {\n return memo(instanceId, accountIds => combineLatest([of(accountIds), api.query.society.payouts.multi(accountIds), api.query.society.strikes.multi(accountIds), api.query.society.defenderVotes.multi(accountIds), api.query.society.suspendedMembers.multi(accountIds), api.query.society.vouching.multi(accountIds)]).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}\n/**\n * @description Get the member info for a society\n */\n\nexport function members(instanceId, api) {\n return memo(instanceId, () => api.query.society.members().pipe(switchMap(members => api.derive.society._members(members))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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};\n\nfunction groupByEra(list) {\n return list.reduce((map, {\n era,\n value\n }) => {\n const key = era.toString();\n map[key] = (map[key] || BN_ZERO).add(value.unwrap());\n return map;\n }, {});\n}\n\nfunction calculateUnlocking(api, stakingLedger, sessionInfo) {\n const results = Object.entries(groupByEra(((stakingLedger === null || stakingLedger === void 0 ? void 0 : stakingLedger.unlocking) || []).filter(({\n era\n }) => era.unwrap().gt(sessionInfo.activeEra)))).map(([eraString, value]) => ({\n remainingEras: new BN(eraString).isub(sessionInfo.activeEra),\n value: api.registry.createType('Balance', value)\n }));\n return results.length ? results : undefined;\n}\n\nfunction redeemableSum(api, stakingLedger, sessionInfo) {\n return api.registry.createType('Balance', ((stakingLedger === null || stakingLedger === void 0 ? void 0 : stakingLedger.unlocking) || []).reduce((total, {\n era,\n value\n }) => {\n return sessionInfo.activeEra.gte(era.unwrap()) ? total.iadd(value.unwrap()) : total;\n }, new BN(0)));\n}\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 */\n\n\nexport function accounts(instanceId, api) {\n return memo(instanceId, (accountIds, opts = QUERY_OPTS) => api.derive.session.info().pipe(switchMap(sessionInfo => combineLatest([api.derive.staking.keysMulti(accountIds), api.derive.staking.queryMulti(accountIds, opts)]).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 */\n\nexport const account = firstMemo((api, accountId, opts) => api.derive.staking.accounts([accountId], opts));","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { switchMap } from 'rxjs';\nimport { memo } from \"../util/index.js\";\n/**\n * @description Retrieve the staking overview, including elected and points earned\n */\n\nexport function currentPoints(instanceId, api) {\n return memo(instanceId, () => api.derive.session.indexes().pipe(switchMap(({\n activeEra\n }) => api.query.staking.erasRewardPoints(activeEra))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nconst 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};","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { deriveNoopCache } from \"./cacheImpl.js\";\nconst CHACHE_EXPIRY = 7 * (24 * 60) * (60 * 1000);\nlet deriveCache;\n\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\n if (cached) {\n cached.x = Date.now();\n cache.set(key, cached);\n return cached.v;\n }\n\n return undefined;\n },\n set: (partial, v) => {\n cache.set(`${keyStart}${partial}`, {\n v,\n x: Date.now()\n });\n }\n };\n}\n\nfunction clearCache(cache) {\n // clear all expired values\n const now = Date.now();\n const all = [];\n cache.forEach((key, {\n x\n }) => {\n now - x > CHACHE_EXPIRY && all.push(key);\n }); // don't do delete inside loop, just in-case\n\n all.forEach(key => cache.del(key));\n}\n\nexport function setDeriveCache(prefix = '', cache) {\n deriveCache = cache ? wrapCache(`derive:${prefix}:`, cache) : deriveNoopCache;\n\n if (cache) {\n clearCache(cache);\n }\n}\nsetDeriveCache();\nexport { deriveCache };","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { deriveCache } from \"../util/index.js\";\nexport function getEraCache(CACHE_KEY, era, withActive) {\n const cacheKey = `${CACHE_KEY}-${era.toString()}`;\n return [cacheKey, withActive ? undefined : deriveCache.get(cacheKey)];\n}\nexport function getEraMultiCache(CACHE_KEY, eras, withActive) {\n const cached = withActive ? [] : eras.map(e => deriveCache.get(`${CACHE_KEY}-${e.toString()}`)).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.map(e => cached.find(({\n era\n }) => e.eq(era)) || query.find(({\n era\n }) => e.eq(era)));\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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 *
\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); // noop for the single-split case\n\n if (outputSize === 1) {\n return [array];\n }\n\n const output = Array(outputSize);\n\n for (let i = 0; i < outputSize; i++) {\n const offset = i * chunkSize;\n output[i] = array.slice(offset, offset + chunkSize);\n }\n\n return output;\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BehaviorSubject, combineLatest, map, of, switchMap, tap, toArray } from 'rxjs';\nimport { arrayChunk, arrayFlatten, nextTick } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\n// only retrieve a maximum of 14 eras (84 / 6) at a time\n// (This is not empirically calculated. Rather smaller sizes take longer\n// time due to the serial nature, large sizes may tie up the RPCs)\nconst ERA_CHUNK_SIZE = 14;\n\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 ? subject.complete() : subject.next(chunked[index]);\n });\n }), toArray(), map(arrayFlatten));\n}\n\nexport function filterEras(eras, list) {\n return eras.filter(e => !list.some(({\n era\n }) => e.eq(era)));\n}\nexport function erasHistoricApply(fn) {\n return (instanceId, api) => // 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) => // 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) => // 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) => // 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 ? of([]) : chunkEras(eras, eras => combineLatest(eras.map(e => api.derive.staking[fn](e, withActive)))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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';\n\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(({\n who\n }, validatorIndex) => {\n const nominatorId = who.toString();\n nominators[nominatorId] = nominators[nominatorId] || [];\n nominators[nominatorId].push({\n validatorId,\n validatorIndex\n });\n });\n });\n return {\n era,\n nominators,\n validators\n };\n}\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 ? of(cached) : api.query.staking.erasStakersClipped.entries(era).pipe(map(r => setEraCache(cacheKey, withActive, mapStakers(era, r))));\n });\n}\nexport const eraExposure = singleEra('_eraExposure');\nexport const _erasExposure = combineEras('_eraExposure');\nexport const erasExposure = erasHistoricApply('_erasExposure');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map } 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 => api.queryMulti([api.query.staking.activeEra, api.query.staking.historyDepth]).pipe(map(([activeEraOpt, historyDepth]) => {\n const result = [];\n const max = historyDepth.toNumber();\n const activeEra = activeEraOpt.unwrapOrDefault().index;\n let lastEra = activeEra;\n\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\n lastEra = lastEra.sub(BN_ONE);\n } // go from oldest to newest\n\n\n return result.reverse();\n })));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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';\n\nfunction mapValidators({\n individual\n}) {\n return [...individual.entries()].filter(([, points]) => points.gt(BN_ZERO)).reduce((result, [validatorId, points]) => {\n result[validatorId.toString()] = points;\n return result;\n }, {});\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}\n\nexport function _erasPoints(instanceId, api) {\n return memo(instanceId, (eras, withActive) => {\n if (!eras.length) {\n return of([]);\n }\n\n const cached = getEraMultiCache(CACHE_KEY, eras, withActive);\n const remaining = filterEras(eras, cached);\n return !remaining.length ? of(cached) : api.query.staking.erasRewardPoints.multi(remaining).pipe(map(p => filterCachedEras(eras, cached, setEraMultiCache(CACHE_KEY, withActive, mapPoints(remaining, p)))));\n });\n}\nexport const erasPoints = erasHistoricApply('_erasPoints');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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';\n\nfunction mapPrefs(era, all) {\n const validators = {};\n all.forEach(([key, prefs]) => {\n validators[key.args[1].toString()] = prefs;\n });\n return {\n era,\n validators\n };\n}\n\nexport function _eraPrefs(instanceId, api) {\n return memo(instanceId, (era, withActive) => {\n const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive);\n return cached ? of(cached) : api.query.staking.erasValidatorPrefs.entries(era).pipe(map(r => setEraCache(cacheKey, withActive, mapPrefs(era, r))));\n });\n}\nexport const eraPrefs = singleEra('_eraPrefs');\nexport const _erasPrefs = combineEras('_eraPrefs');\nexport const erasPrefs = erasHistoricApply('_erasPrefs');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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';\n\nfunction mapRewards(eras, optRewards) {\n return eras.map((era, index) => ({\n era,\n eraReward: optRewards[index].unwrapOrDefault()\n }));\n}\n\nexport function _erasRewards(instanceId, api) {\n return memo(instanceId, (eras, withActive) => {\n if (!eras.length) {\n return of([]);\n }\n\n const cached = getEraMultiCache(CACHE_KEY, eras, withActive);\n const remaining = filterEras(eras, cached);\n\n if (!remaining.length) {\n return of(cached);\n }\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 = erasHistoricApply('_erasRewards');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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';\n\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 {\n era,\n nominators,\n validators\n };\n}\n\nexport function _eraSlashes(instanceId, api) {\n return memo(instanceId, (era, withActive) => {\n const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive);\n return cached ? of(cached) : combineLatest([api.query.staking.nominatorSlashInEra.entries(era), api.query.staking.validatorSlashInEra.entries(era)]).pipe(map(([n, v]) => setEraCache(cacheKey, withActive, mapSlashes(era, n, v))));\n });\n}\nexport const eraSlashes = singleEra('_eraSlashes');\nexport const _erasSlashes = combineEras('_eraSlashes');\nexport const erasSlashes = erasHistoricApply('_erasSlashes');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, switchMap } from 'rxjs';\nimport { arrayFlatten } from '@polkadot/util';\nimport { memo } from \"../util/index.js\";\nconst DEFAULT_FLAGS = {\n withController: true,\n withExposure: true,\n withPrefs: true\n};\n\nfunction combineAccounts(nextElected, validators) {\n return arrayFlatten([nextElected, validators.filter(v => !nextElected.find(n => n.eq(v)))]);\n}\n\nexport function electedInfo(instanceId, api) {\n return memo(instanceId, (flags = DEFAULT_FLAGS) => api.derive.staking.validators().pipe(switchMap(({\n nextElected,\n validators\n }) => api.derive.staking.queryMulti(combineAccounts(nextElected, validators), flags).pipe(map(info => ({\n info,\n nextElected,\n validators\n }))))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { firstMemo, memo } from \"../util/index.js\";\n\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) ? nextSessionIds : [...nextSessionIds.values()],\n sessionIds: Array.isArray(sessionIds) ? sessionIds : [...sessionIds.values()]\n };\n}\n\nexport const keys = firstMemo((api, stashId) => api.derive.staking.keysMulti([stashId]));\nexport function keysMulti(instanceId, api) {\n return memo(instanceId, stashIds => stashIds.length ? api.query.session.queuedKeys().pipe(switchMap(queuedKeys => {\n var _api$consts$session;\n\n return combineLatest([of(queuedKeys), (_api$consts$session = api.consts.session) !== null && _api$consts$session !== void 0 && _api$consts$session.dedupKeyPrefix ? api.query.session.nextKeys.multi(stashIds.map(s => [api.consts.session.dedupKeyPrefix, s])) : combineLatest(stashIds.map(s => api.query.session.nextKeys(s)))]);\n }), map(([queuedKeys, nextKeys]) => stashIds.map((stashId, index) => extractsIds(stashId, queuedKeys, nextKeys[index])))) : of([]));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nexport function overview(instanceId, api) {\n return memo(instanceId, () => combineLatest([api.derive.session.indexes(), api.derive.staking.validators()]).pipe(map(([indexes, {\n nextElected,\n validators\n }]) => objectSpread({}, indexes, {\n nextElected,\n validators\n }))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of } from 'rxjs';\nimport { firstMemo, memo } from \"../util/index.js\";\nimport { erasHistoricApplyAccount } from \"./util.js\";\nexport function _ownExposures(instanceId, api) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return memo(instanceId, (accountId, eras, _withActive) => eras.length ? combineLatest([combineLatest(eras.map(e => api.query.staking.erasStakersClipped(e, accountId))), combineLatest(eras.map(e => api.query.staking.erasStakers(e, accountId)))]).pipe(map(([clp, exp]) => eras.map((era, index) => ({\n clipped: clp[index],\n era,\n exposure: exp[index]\n })))) : of([]));\n}\nexport const ownExposure = firstMemo((api, accountId, era) => api.derive.staking._ownExposures(accountId, [era], true));\nexport const ownExposures = erasHistoricApplyAccount('_ownExposures');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of } from 'rxjs';\nimport { firstMemo, memo } from \"../util/index.js\";\nimport { erasHistoricApplyAccount } from \"./util.js\";\nexport function _ownSlashes(instanceId, api) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return memo(instanceId, (accountId, eras, _withActive) => eras.length ? combineLatest([combineLatest(eras.map(e => api.query.staking.validatorSlashInEra(e, accountId))), combineLatest(eras.map(e => api.query.staking.nominatorSlashInEra(e, accountId)))]).pipe(map(([vals, noms]) => eras.map((era, index) => ({\n era,\n total: vals[index].isSome ? vals[index].unwrap()[1] : noms[index].unwrapOrDefault()\n })))) : of([]));\n}\nexport const ownSlash = firstMemo((api, accountId, era) => api.derive.staking._ownSlashes(accountId, [era], true));\nexport const ownSlashes = erasHistoricApplyAccount('_ownSlashes');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { firstMemo, memo } from \"../util/index.js\";\n\nfunction parseDetails(stashId, controllerIdOpt, nominatorsOpt, rewardDestination, validatorPrefs, exposure, stakingLedgerOpt) {\n return {\n accountId: stashId,\n controllerId: controllerIdOpt && controllerIdOpt.unwrapOr(null),\n exposure,\n nominators: nominatorsOpt.isSome ? nominatorsOpt.unwrap().targets : [],\n rewardDestination,\n stakingLedger: stakingLedgerOpt.unwrapOrDefault(),\n stashId,\n validatorPrefs\n };\n}\n\nfunction getLedgers(api, optIds, {\n withLedger = false\n}) {\n const ids = optIds.filter(o => withLedger && !!o && o.isSome).map(o => o.unwrap());\n const emptyLed = api.registry.createType('Option');\n return (ids.length ? combineLatest(ids.map(s => api.query.staking.ledger(s))) : of([])).pipe(map(optLedgers => {\n let offset = -1;\n return optIds.map(o => o && o.isSome ? optLedgers[++offset] || emptyLed : emptyLed);\n }));\n}\n\nfunction getStashInfo(api, stashIds, activeEra, {\n withController,\n withDestination,\n withExposure,\n withLedger,\n withNominations,\n withPrefs\n}) {\n const emptyNoms = api.registry.createType('Option');\n const emptyRewa = api.registry.createType('RewardDestination');\n const emptyExpo = api.registry.createType('Exposure');\n const emptyPrefs = api.registry.createType('ValidatorPrefs');\n return combineLatest([withController || withLedger ? combineLatest(stashIds.map(s => api.query.staking.bonded(s))) : of(stashIds.map(() => null)), withNominations ? combineLatest(stashIds.map(s => api.query.staking.nominators(s))) : of(stashIds.map(() => emptyNoms)), withDestination ? combineLatest(stashIds.map(s => api.query.staking.payee(s))) : of(stashIds.map(() => emptyRewa)), withPrefs ? combineLatest(stashIds.map(s => api.query.staking.validators(s))) : of(stashIds.map(() => emptyPrefs)), withExposure ? combineLatest(stashIds.map(s => api.query.staking.erasStakers(activeEra, s))) : 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/**\n * @description From a stash, retrieve the controllerId and all relevant details\n */\n\n\nexport const query = 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(({\n activeEra\n }) => {\n const stashIds = accountIds.map(a => api.registry.createType('AccountId', a));\n return stashIds.length ? getBatch(api, activeEra, stashIds, flags) : of([]);\n })));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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(({\n era,\n nominators: allNominators,\n validators: allValidators\n }) => {\n const isValidator = !!allValidators[stakerId];\n const validators = {};\n const nominating = allNominators[stakerId] || [];\n\n if (isValidator) {\n validators[stakerId] = allValidators[stakerId];\n } else if (nominating) {\n nominating.forEach(({\n validatorId\n }) => {\n validators[validatorId] = allValidators[validatorId];\n });\n }\n\n return {\n era,\n isEmpty: !Object.keys(validators).length,\n isValidator,\n nominating,\n validators\n };\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 = firstMemo((api, accountId, withActive) => api.derive.staking.stakerExposures([accountId], withActive));","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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(({\n era,\n eraPoints,\n validators\n }) => ({\n era,\n eraPoints,\n points: validators[stakerId] || api.registry.createType('RewardPoint')\n }))));\n });\n}\nexport const stakerPoints = erasHistoricApplyAccount('_stakerPoints');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map } from 'rxjs';\nimport { memo } from \"../util/index.js\";\nimport { erasHistoricApplyAccount } from \"./util.js\";\nexport function _stakerPrefs(instanceId, api) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\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 = erasHistoricApplyAccount('_stakerPrefs');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { BN_BILLION, BN_ZERO, objectSpread } from '@polkadot/util';\nimport { firstMemo, memo } from \"../util/index.js\";\n\nfunction parseRewards(api, stashId, [erasPoints, erasPrefs, erasRewards], exposures) {\n return exposures.map(({\n era,\n isEmpty,\n isValidator,\n nominating,\n validators: eraValidators\n }) => {\n const {\n eraPoints,\n validators: allValPoints\n } = erasPoints.find(p => p.era.eq(era)) || {\n eraPoints: BN_ZERO,\n validators: {}\n };\n const {\n eraReward\n } = erasRewards.find(r => r.era.eq(era)) || {\n eraReward: api.registry.createType('Balance')\n };\n const {\n validators: allValPrefs\n } = erasPrefs.find(p => p.era.eq(era)) || {\n validators: {}\n };\n const validators = {};\n const stakerId = stashId.toString();\n Object.entries(eraValidators).forEach(([validatorId, exposure]) => {\n var _allValPrefs$validato, _exposure$total;\n\n const valPoints = allValPoints[validatorId] || BN_ZERO;\n const valComm = ((_allValPrefs$validato = allValPrefs[validatorId]) === null || _allValPrefs$validato === void 0 ? void 0 : _allValPrefs$validato.commission.unwrap()) || BN_ZERO;\n const expTotal = ((_exposure$total = exposure.total) === null || _exposure$total === void 0 ? void 0 : _exposure$total.unwrap()) || BN_ZERO;\n let avail = BN_ZERO;\n let value;\n\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\n if (validatorId === stakerId) {\n staked = exposure.own.unwrap();\n } else {\n const stakerExp = exposure.others.find(({\n who\n }) => who.eq(stakerId));\n staked = stakerExp ? stakerExp.value.unwrap() : BN_ZERO;\n }\n\n value = avail.sub(valCut).imul(staked).div(expTotal).iadd(validatorId === stakerId ? valCut : BN_ZERO);\n }\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}\n\nfunction allUniqValidators(rewards) {\n return rewards.reduce(([all, perStash], rewards) => {\n const uniq = [];\n perStash.push(uniq);\n rewards.forEach(({\n validators\n }) => Object.keys(validators).forEach(validatorId => {\n if (!uniq.includes(validatorId)) {\n uniq.push(validatorId);\n\n if (!all.includes(validatorId)) {\n all.push(validatorId);\n }\n }\n }));\n return [all, perStash];\n }, [[], []]);\n}\n\nfunction removeClaimed(validators, queryValidators, reward) {\n const rm = [];\n Object.keys(reward.validators).forEach(validatorId => {\n const index = validators.indexOf(validatorId);\n\n if (index !== -1) {\n const valLedger = queryValidators[index].stakingLedger;\n\n if (valLedger !== null && valLedger !== void 0 && 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}\n\nfunction filterRewards(eras, valInfo, {\n rewards,\n stakingLedger\n}) {\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.filter(({\n isEmpty\n }) => !isEmpty).filter(reward => {\n if (!filter.some(e => reward.era.eq(e))) {\n return false;\n }\n\n removeClaimed(validators, queryValidators, reward);\n return true;\n }).filter(({\n validators\n }) => Object.keys(validators).length !== 0).map(reward => objectSpread({}, reward, {\n nominators: reward.nominating.filter(n => reward.validators[n.validatorId])\n }));\n}\n\nexport function _stakerRewardsEras(instanceId, api) {\n return memo(instanceId, (eras, withActive = false) => combineLatest([api.derive.staking._erasPoints(eras, withActive), api.derive.staking._erasPrefs(eras, withActive), api.derive.staking._erasRewards(eras, withActive)]));\n}\nexport function _stakerRewards(instanceId, api) {\n return memo(instanceId, (accountIds, eras, withActive = false) => combineLatest([api.derive.staking.queryMulti(accountIds, {\n withLedger: true\n }), api.derive.staking._stakerExposures(accountIds, eras, withActive), api.derive.staking._stakerRewardsEras(eras, withActive)]).pipe(switchMap(([queries, exposures, erasResult]) => {\n const allRewards = queries.map(({\n stakingLedger,\n stashId\n }, index) => !stashId || !stakingLedger ? [] : parseRewards(api, stashId, erasResult, exposures[index]));\n\n if (withActive) {\n return of(allRewards);\n }\n\n const [allValidators, stashValidators] = allUniqValidators(allRewards);\n return api.derive.staking.queryMulti(allValidators, {\n withLedger: true\n }).pipe(map(queriedVals => queries.map(({\n stakingLedger\n }, index) => filterRewards(eras, stashValidators[index].map(validatorId => [validatorId, queriedVals.find(q => q.accountId.eq(validatorId))]), {\n rewards: allRewards[index],\n stakingLedger\n }))));\n })));\n}\nexport const stakerRewards = 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 ? api.derive.staking._stakerRewards(accountIds, eras, false) : 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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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(({\n era,\n nominators,\n validators\n }) => ({\n era,\n total: nominators[stakerId] || validators[stakerId] || api.registry.createType('Balance')\n }))));\n });\n}\nexport const stakerSlashes = erasHistoricApplyAccount('_stakerSlashes');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { map, startWith, switchMap } from 'rxjs';\nimport { drr, memo } from \"../util/index.js\";\n\nfunction onBondedEvent(api) {\n let current = Date.now();\n return api.query.system.events().pipe(map(events => {\n current = events.filter(({\n event,\n phase\n }) => {\n try {\n return phase.isApplyExtrinsic && event.section === 'staking' && event.method === 'Bonded';\n } catch {\n return false;\n }\n }) ? Date.now() : current;\n return current;\n }), startWith(current), drr({\n skipTimeout: true\n }));\n}\n/**\n * @description Retrieve the list of all validator stashes\n */\n\n\nexport function stashes(instanceId, api) {\n return memo(instanceId, () => onBondedEvent(api).pipe(switchMap(() => api.query.staking.validators.keys()), map(keys => keys.map(({\n args: [v]\n }) => v).filter(a => a))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 ? api.derive.session.indexes().pipe( // 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(({\n currentEra\n }) => api.query.staking.erasStakers.keys(currentEra)), map(keys => keys.map(({\n args: [, accountId]\n }) => accountId))) : api.query.staking.currentElected());\n}\n/**\n * @description Retrieve latest list of validators\n */\n\nexport function validators(instanceId, api) {\n return memo(instanceId, () => // 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([api.query.session ? api.query.session.validators() : of([]), api.query.staking ? api.derive.staking.nextElected() : of([])]).pipe(map(([validators, nextElected]) => ({\n nextElected: nextElected.length ? nextElected : validators,\n validators\n }))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, switchMap } from 'rxjs';\nimport { memo } from \"../util/index.js\";\nconst DEFAULT_FLAGS = {\n withController: true,\n withPrefs: true\n};\nexport function waitingInfo(instanceId, api) {\n return memo(instanceId, (flags = DEFAULT_FLAGS) => combineLatest([api.derive.staking.validators(), api.derive.staking.stashes()]).pipe(switchMap(([{\n nextElected\n }, 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}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 = collectiveMembers('technicalCommittee');\nexport const hasProposals = collectiveHasProposals('technicalCommittee');\nexport const proposal = collectiveProposal('technicalCommittee');\nexport const proposalCount = collectiveProposalCount('technicalCommittee');\nexport const proposalHashes = collectiveProposalHashes('technicalCommittee');\nexport const proposals = collectiveProposals('technicalCommittee');\nexport const prime = collectivePrime('technicalCommittee');","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, of, switchMap } from 'rxjs';\nimport { memo } from \"../util/index.js\";\n\nfunction parseResult(api, {\n allIds,\n allProposals,\n approvalIds,\n councilProposals,\n proposalCount\n}) {\n const approvals = [];\n const proposals = [];\n const councilTreasury = councilProposals.filter(({\n proposal\n }) => proposal && (api.tx.treasury.approveProposal.is(proposal) || api.tx.treasury.rejectProposal.is(proposal)));\n allIds.forEach((id, index) => {\n if (allProposals[index].isSome) {\n const council = councilTreasury.filter(({\n proposal\n }) => proposal && id.eq(proposal.args[0])).sort((a, b) => a.proposal && b.proposal ? a.proposal.method.localeCompare(b.proposal.method) : a.proposal ? -1 : 1);\n const isApproval = approvalIds.some(approvalId => approvalId.eq(id));\n const derived = {\n council,\n id,\n proposal: allProposals[index].unwrap()\n };\n\n if (isApproval) {\n approvals.push(derived);\n } else {\n proposals.push(derived);\n }\n }\n });\n return {\n approvals,\n proposalCount,\n proposals\n };\n}\n\nfunction retrieveProposals(api, proposalCount, approvalIds) {\n const proposalIds = [];\n const count = proposalCount.toNumber();\n\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\n const allIds = [...proposalIds, ...approvalIds];\n return combineLatest([api.query.treasury.proposals.multi(allIds), api.derive.council ? api.derive.council.proposals() : of([])]).pipe(map(([allProposals, councilProposals]) => parseResult(api, {\n allIds,\n allProposals,\n approvalIds,\n councilProposals,\n proposalCount\n })));\n}\n/**\n * @description Retrieve all active and approved treasury proposals, along with their info\n */\n\n\nexport function proposals(instanceId, api) {\n return memo(instanceId, () => api.query.treasury ? combineLatest([api.query.treasury.proposalCount(), api.query.treasury.approvals()]).pipe(switchMap(([proposalCount, approvalIds]) => retrieveProposals(api, proposalCount, approvalIds))) : of({\n approvals: [],\n proposalCount: api.registry.createType('ProposalIndex'),\n proposals: []\n }));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { combineLatest, map, switchMap } from 'rxjs';\nimport { memo } from \"../util/index.js\";\nexport function events(instanceId, api) {\n return memo(instanceId, blockHash => combineLatest([api.rpc.chain.getBlock(blockHash), api.queryAt(blockHash).pipe(switchMap(queryAt => queryAt.system.events()))]).pipe(map(([block, events]) => ({\n block,\n events\n }))));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BN } from '@polkadot/util';\nexport const FALLBACK_MAX_HASH_COUNT = 250; // default here to 5 min eras, adjusted based on the actual blocktime\n\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);","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\";\n\nfunction latestNonce(api, address) {\n return api.derive.balances.account(address).pipe(map(({\n accountNonce\n }) => accountNonce));\n}\n\nfunction nextNonce(api, address) {\n var _api$rpc$system;\n\n return (_api$rpc$system = api.rpc.system) !== null && _api$rpc$system !== void 0 && _api$rpc$system.accountNextIndex ? api.rpc.system.accountNextIndex(address) : latestNonce(api, address);\n}\n\nfunction signingHeader(api) {\n return combineLatest([api.rpc.chain.getHeader().pipe(switchMap(header => // 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 ? of(header) // 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))), api.rpc.chain.getFinalizedHead().pipe(switchMap(hash => api.rpc.chain.getHeader(hash)))]).pipe(map(([current, finalized]) => // determine the hash to use, current when lag > max, else finalized\n unwrapBlockNumber(current).sub(unwrapBlockNumber(finalized)).gt(MAX_FINALITY_LAG) ? current : finalized));\n}\n\nexport function signingInfo(_instanceId, api) {\n // no memo, we want to do this fresh on each run\n return (address, nonce, era) => combineLatest([// retrieve nonce if none was specified\n isUndefined(nonce) ? latestNonce(api, address) : nonce === -1 ? nextNonce(api, address) : of(api.registry.createType('Index', nonce)), // if no era (create) or era > 0 (mortal), do block retrieval\n isUndefined(era) || isNumber(era) && era > 0 ? signingHeader(api) : of(null)]).pipe(map(([nonce, header]) => {\n var _api$consts$system, _api$consts$system$bl, _api$consts$babe, _api$consts$timestamp;\n\n return {\n header,\n mortalLength: Math.min(((_api$consts$system = api.consts.system) === null || _api$consts$system === void 0 ? void 0 : (_api$consts$system$bl = _api$consts$system.blockHashCount) === null || _api$consts$system$bl === void 0 ? void 0 : _api$consts$system$bl.toNumber()) || FALLBACK_MAX_HASH_COUNT, MORTAL_PERIOD.div(((_api$consts$babe = api.consts.babe) === null || _api$consts$babe === void 0 ? void 0 : _api$consts$babe.expectedBlockTime) || ((_api$consts$timestamp = api.consts.timestamp) === null || _api$consts$timestamp === void 0 ? void 0 : _api$consts$timestamp.minimumPeriod.muln(2)) || FALLBACK_PERIOD).iadd(MAX_FINALITY_LAG).toNumber()),\n nonce\n };\n }));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport * 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 = {\n accounts,\n alliance,\n bagsList,\n balances,\n bounties,\n chain,\n contracts,\n council,\n crowdloan,\n democracy,\n elections,\n imOnline,\n membership,\n parachains,\n session,\n society,\n staking,\n technicalCommittee,\n treasury,\n tx\n};","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { lazyMethod, lazyMethods } from '@polkadot/util';\nexport function lazyDeriveSection(result, section, getKeys, creator) {\n lazyMethod(result, section, () => lazyMethods({}, getKeys(section), method => creator(section, method)));\n}","// Copyright 2017-2022 @polkadot/api-derive authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { derive } from \"./derive.js\";\nimport { lazyDeriveSection } from \"./util/index.js\";\nexport * from \"./derive.js\";\nexport * from \"./type/index.js\";\nexport { lazyDeriveSection }; // Enable derive only if some of these modules are available\n\nconst checks = {\n allianceMotion: {\n instances: ['allianceMotion'],\n methods: []\n },\n bagsList: {\n instances: ['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};\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\n/** @internal */\n\n\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\n const filterKeys = q => keys.includes(q);\n\n const filterInstances = q => getModuleInstances(api, specName, q).some(filterKeys);\n\n const filterMethods = all => m => all.some(q => keys.includes(q) && api.query[q][m]);\n\n const getKeys = s => Object.keys(derives[s]);\n\n const creator = (s, m) => derives[s][m](instanceId, api);\n\n const isIncluded = c => !checks[c] || checks[c].instances.some(filterKeys) && (!checks[c].methods.length || checks[c].methods.every(filterMethods(checks[c].instances))) || checks[c].withDetect && checks[c].instances.some(filterInstances);\n\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n isIncluded(name) && lazyDeriveSection(result, name, getKeys, creator);\n }\n\n return result;\n} // FIXME The return type of this function should be {...ExactDerive, ...DeriveCustom}\n// For now we just drop the custom derive typings\n\n/** @internal */\n\n\nexport function getAvailableDerives(instanceId, api, custom = {}) {\n return { ...injectFunctions(instanceId, api, derive),\n ...injectFunctions(instanceId, api, custom)\n };\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\n if (!jsonrpc[section]) {\n jsonrpc[section] = {};\n }\n\n jsonrpc[section][method] = objectSpread({}, def, {\n isSubscription: !!def.pubsub,\n jsonrpc: `${section}_${method}`,\n method,\n section\n });\n}));\nexport default jsonrpc;","// Copyright 2017-2022 @polkadot/rpc-core authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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: {\n isOptional: true\n },\n type: {\n asMap: {\n linked: {\n isTrue: false\n }\n },\n isMap: false\n }\n}; // utility method to create a nicely-formatted error\n\n/** @internal */\n\nfunction logErrorMessage(method, {\n noErrorLog,\n params,\n type\n}, error) {\n if (noErrorLog) {\n return;\n }\n\n const inputs = params.map(({\n isOptional,\n name,\n type\n }) => `${name}${isOptional ? '?' : ''}: ${type}`).join(', ');\n l.error(`${method}(${inputs}): ${type}:: ${error.message}`);\n}\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 *
\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 */\n\n\nexport class RpcCore {\n #instanceId;\n #registryDefault;\n #getBlockRegistry;\n #getBlockHash;\n #storageCache = new Map();\n mapping = new Map();\n sections = [];\n /**\n * @constructor\n * Default constructor for the Api Object\n * @param {ProviderInterface} provider An API provider using HTTP or WebSocket\n */\n\n constructor(instanceId, registry, provider, userRpc = {}) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (!provider || !isFunction(provider.send)) {\n throw new Error('Expected Provider to API create');\n }\n\n this.#instanceId = instanceId;\n this.#registryDefault = registry;\n this.provider = provider;\n const sectionNames = Object.keys(rpcDefinitions); // these are the base keys (i.e. part of jsonrpc)\n\n this.sections.push(...sectionNames); // decorate all interfaces, defined and user on this instance\n\n this.addUserInterfaces(userRpc);\n }\n /**\n * @description Returns the connected status of a provider\n */\n\n\n get isConnected() {\n return this.provider.isConnected;\n }\n /**\n * @description Manually connect from the attached provider\n */\n\n\n connect() {\n return this.provider.connect();\n }\n /**\n * @description Manually disconnect from the attached provider\n */\n\n\n disconnect() {\n return this.provider.disconnect();\n }\n /**\n * @description Sets a registry swap (typically from Api)\n */\n\n\n setRegistrySwap(registrySwap) {\n this.#getBlockRegistry = memoize(registrySwap, {\n getInstanceId: () => this.#instanceId\n });\n }\n /**\n * @description Sets a function to resolve block hash from block number\n */\n\n\n setResolveBlockHash(resolveBlockHash) {\n this.#getBlockHash = memoize(resolveBlockHash, {\n getInstanceId: () => this.#instanceId\n });\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\n for (let s = 0; s < this.sections.length; s++) {\n const section = this.sections[s];\n const defs = objectSpread({}, rpcDefinitions[section], userRpc[section]);\n const methods = Object.keys(defs);\n\n for (let m = 0; m < methods.length; m++) {\n const method = methods[m];\n const def = defs[method];\n const jsonrpc = def.endpoint || `${section}_${method}`;\n\n if (!this.mapping.has(jsonrpc)) {\n const isSubscription = !!def.pubsub;\n\n if (!this[section]) {\n this[section] = {};\n }\n\n this.mapping.set(jsonrpc, objectSpread({}, def, {\n isSubscription,\n jsonrpc,\n method,\n section\n }));\n lazyMethod(this[section], method, () => isSubscription ? this._createMethodSubscribe(section, method, def) : this._createMethodSend(section, method, def));\n }\n }\n }\n }\n\n _memomize(creator, def) {\n const memoOpts = {\n getInstanceId: () => this.#instanceId\n };\n const memoized = memoize(creator(true), memoOpts);\n memoized.raw = memoize(creator(false), memoOpts);\n memoized.meta = def;\n return memoized;\n }\n\n _formatResult(isScale, registry, blockHash, method, def, params, result) {\n return isScale ? this._formatOutput(registry, blockHash, method, def, params, result) : result;\n }\n\n _createMethodSend(section, method, def) {\n const rpcName = def.endpoint || `${section}_${method}`;\n const hashIndex = def.params.findIndex(({\n isHistoric\n }) => isHistoric);\n let memoized = null; // execute the RPC call, doing a registry swap for historic as applicable\n\n const callWithRegistry = async (isScale, values) => {\n var _this$getBlockHash;\n\n const blockId = hashIndex === -1 ? null : values[hashIndex];\n const blockHash = blockId && def.params[hashIndex].type === 'BlockNumber' ? await ((_this$getBlockHash = this.#getBlockHash) === null || _this$getBlockHash === void 0 ? void 0 : _this$getBlockHash.call(this, blockId)) : blockId;\n const {\n registry\n } = isScale && blockHash && this.#getBlockRegistry ? await this.#getBlockRegistry(u8aToU8a(blockHash)) : {\n registry: this.#registryDefault\n };\n\n const params = this._formatInputs(registry, null, def, values); // only cache .at() queries, e.g. where valid blockHash was supplied\n\n\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\n const creator = isScale => (...values) => {\n const isDelayed = isScale && hashIndex !== -1 && !!values[hashIndex];\n return new Observable(observer => {\n callWithRegistry(isScale, values).then(value => {\n observer.next(value);\n observer.complete();\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 var _memoized;\n\n (_memoized = memoized) === null || _memoized === void 0 ? void 0 : _memoized.unmemoize(...values);\n } else {\n var _memoized2;\n\n (_memoized2 = memoized) === null || _memoized2 === void 0 ? void 0 : _memoized2.raw.unmemoize(...values);\n }\n };\n }).pipe(publishReplay(1), // create a Replay(1)\n isDelayed ? refCountDelay() // Unsubscribe after delay\n : refCount());\n };\n\n memoized = this._memomize(creator, def);\n return memoized;\n } // create a subscriptor, it subscribes once and resolves with the id as subscribe\n\n\n _createSubscriber({\n paramsJson,\n subName,\n subType,\n update\n }, errorHandler) {\n return new Promise((resolve, reject) => {\n this.provider.subscribe(subType, subName, paramsJson, update).then(resolve).catch(error => {\n errorHandler(error);\n reject(error);\n });\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\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.#registryDefault;\n\n const errorHandler = error => {\n logErrorMessage(method, def, error);\n observer.error(error);\n };\n\n try {\n const params = this._formatInputs(registry, null, def, values);\n\n const paramsJson = params.map(p => p.toJSON());\n\n const update = (error, result) => {\n if (error) {\n logErrorMessage(method, def, error);\n return;\n }\n\n try {\n observer.next(this._formatResult(isScale, registry, null, method, def, params, result));\n } catch (error) {\n observer.error(error);\n }\n };\n\n subscriptionPromise = this._createSubscriber({\n paramsJson,\n subName,\n subType,\n update\n }, errorHandler);\n } catch (error) {\n errorHandler(error);\n } // Teardown logic\n\n\n return () => {\n // Delete from cache, so old results don't hang around\n if (isScale) {\n var _memoized3;\n\n (_memoized3 = memoized) === null || _memoized3 === void 0 ? void 0 : _memoized3.unmemoize(...values);\n } else {\n var _memoized4;\n\n (_memoized4 = memoized) === null || _memoized4 === void 0 ? void 0 : _memoized4.raw.unmemoize(...values);\n } // Unsubscribe from provider\n\n\n subscriptionPromise.then(subscriptionId => isNull(subscriptionId) ? Promise.resolve(false) : this.provider.unsubscribe(subType, unsubName, subscriptionId)).catch(error => logErrorMessage(method, def, error));\n };\n }).pipe(drr());\n };\n\n memoized = this._memomize(creator, def);\n return memoized;\n }\n\n _formatInputs(registry, blockHash, def, inputs) {\n const reqArgCount = def.params.filter(({\n isOptional\n }) => !isOptional).length;\n const optText = reqArgCount === def.params.length ? '' : ` (${def.params.length - reqArgCount} optional)`;\n\n if (inputs.length < reqArgCount || inputs.length > def.params.length) {\n throw new Error(`Expected ${def.params.length} parameters${optText}, ${inputs.length} found instead`);\n }\n\n return inputs.map((input, index) => registry.createTypeUnsafe(def.params[index].type, [input], {\n blockHash\n }));\n }\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 } else if (rpc.type === 'StorageChangeSet') {\n const keys = params[0];\n return keys ? this._formatStorageSet(registry, result.block, keys, result.changes) : registry.createType('StorageChangeSet', result);\n } else if (rpc.type === 'Vec') {\n const mapped = result.map(({\n block,\n changes\n }) => [registry.createType('Hash', block), this._formatStorageSet(registry, block, params[0], changes)]); // we only query at a specific block, not a range - flatten\n\n return method === 'queryStorageAt' ? mapped[0][1] : mapped;\n }\n\n return registry.createTypeUnsafe(rpc.type, [result], {\n blockHash\n });\n }\n\n _formatStorageData(registry, blockHash, key, value) {\n const isEmpty = isNull(value); // we convert to Uint8Array since it maps to the raw encoding, all\n // data will be correctly encoded (incl. numbers, excl. :code)\n\n const input = isEmpty ? null : isTreatAsHex(key) ? value : u8aToU8a(value);\n return this._newType(registry, blockHash, key, input, isEmpty);\n }\n\n _formatStorageSet(registry, blockHash, keys, changes) {\n // For StorageChangeSet, the changes has the [key, value] mappings\n const withCache = keys.length !== 1; // multiple return values (via state.storage subscription), decode the values\n // one at a time, all based on the query types. Three values can be returned -\n // - Codec - There is a valid value, non-empty\n // - null - The storage key is empty\n\n return keys.reduce((results, key, index) => {\n results.push(this._formatStorageSetEntry(registry, blockHash, key, changes, withCache, index));\n return results;\n }, []);\n }\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); // 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\n if (isNotFound && withCache) {\n const cached = this.#storageCache.get(hexKey);\n\n if (cached) {\n return cached;\n }\n }\n\n const value = isNotFound ? null : found[1];\n const isEmpty = isNull(value);\n const input = isEmpty || isTreatAsHex(key) ? value : u8aToU8a(value);\n\n const codec = this._newType(registry, blockHash, key, input, isEmpty, entryIndex); // 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\n\n this.#storageCache.set(hexKey, codec);\n return codec;\n }\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 ? '' : ` entry ${entryIndex}:`;\n\n try {\n return registry.createTypeUnsafe(type, [isEmpty ? meta.fallback // For old-style Linkage, we add an empty linkage at the end\n ? type.includes('Linkage<') ? u8aConcat(hexToU8a(meta.fallback.toHex()), new Uint8Array(2)) : hexToU8a(meta.fallback.toHex()) : undefined : meta.modifier.isOptional ? registry.createTypeUnsafe(type, [input], {\n blockHash,\n isPedantic: true\n }) : input], {\n blockHash,\n isOptional: meta.modifier.isOptional,\n 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}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { BigInt } from '@polkadot/x-bigint';\n/**\n * @name _0n\n * @summary BigInt constant for 0.\n */\n\nexport const _0n = BigInt(0);\n/**\n * @name _1n\n * @summary BigInt constant for 1.\n */\n\nexport const _1n = BigInt(1);\n/**\n * @name _1Mn\n * @summary BigInt constant for 1,000,000.\n */\n\nexport const _1Mn = BigInt(1000000);\n/**\n* @name _1Bn\n* @summary BigInt constant for 1,000,000,000.\n*/\n\nexport const _1Bn = BigInt(1000000000);\n/**\n* @name _1Qn\n* @summary BigInt constant for 1,000,000,000,000,000,000.\n*/\n\nexport const _1Qn = _1Bn * _1Bn;\n/**\n* @name _2pow53n\n* @summary BigInt constant for MAX_SAFE_INTEGER\n*/\n\nexport const _2pow53n = BigInt(Number.MAX_SAFE_INTEGER);","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { _0n, _1n } from '@polkadot/util';\nimport { BigInt } from '@polkadot/x-bigint'; // Adapted from https://github.com/pierrec/js-xxhash/blob/0504e76f3d31a21ae8528a7f590c7289c9e431d2/lib/xxhash64.js\n//\n// xxHash64 implementation in pure Javascript\n// Copyright (C) 2016, Pierre Curto\n// MIT license\n//\n// Changes made:\n// - converted to TypeScript\n// - uses native JS BigInt (no external dependencies)\n// - support only for Uint8Array inputs\n// - no constructor function, straight fill & digest\n// - update code removed, only called once, no streams\n\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'); // mask for a u64, all bits set\n\nconst U64 = BigInt('0xffffffffffffffff'); // various constants\n\nconst _7n = BigInt(7);\n\nconst _11n = BigInt(11);\n\nconst _12n = BigInt(12);\n\nconst _16n = BigInt(16);\n\nconst _18n = BigInt(18);\n\nconst _23n = BigInt(23);\n\nconst _27n = BigInt(27);\n\nconst _29n = BigInt(29);\n\nconst _31n = BigInt(31);\n\nconst _32n = BigInt(32);\n\nconst _33n = BigInt(33);\n\nconst _64n = BigInt(64);\n\nconst _256n = BigInt(256);\n\nfunction rotl(a, b) {\n const c = a & U64;\n return (c << b | c >> _64n - b) & U64;\n}\n\nfunction fromU8a(u8a, p, count) {\n const bigints = new Array(count);\n let offset = 0;\n\n for (let i = 0; i < count; i++, offset += 2) {\n bigints[i] = BigInt(u8a[p + offset] | u8a[p + 1 + offset] << 8);\n }\n\n let result = _0n;\n\n for (let i = count - 1; i >= 0; i--) {\n result = (result << _16n) + bigints[i];\n }\n\n return result;\n}\n\nfunction toU8a(h64) {\n const result = new Uint8Array(8);\n\n for (let i = 7; i >= 0; i--) {\n result[i] = Number(h64 % _256n);\n h64 = h64 / _256n;\n }\n\n return result;\n}\n\nfunction state(initSeed) {\n const seed = BigInt(initSeed);\n return {\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}\n\nfunction init(state, input) {\n if (input.length < 32) {\n state.u8a.set(input);\n state.u8asize = input.length;\n return state;\n }\n\n const limit = input.length - 32;\n let p = 0;\n\n if (limit >= 0) {\n const adjustV = v => P64_1 * rotl(v + P64_2 * fromU8a(input, p, 4), _31n);\n\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\n if (p < input.length) {\n state.u8a.set(input.subarray(p, input.length));\n state.u8asize = input.length - p;\n }\n\n return state;\n}\n\nexport function xxhash64(input, initSeed) {\n const {\n seed,\n u8a,\n u8asize,\n v1,\n v2,\n v3,\n v4\n } = init(state(initSeed), input);\n let p = 0;\n let h64 = U64 & BigInt(input.length) + (input.length >= 32 ? ((((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 : seed + P64_5);\n\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\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\n while (p < u8asize) {\n h64 = U64 & P64_1 * rotl(h64 ^ P64_5 * BigInt(u8a[p++]), _11n);\n }\n\n h64 = U64 & P64_2 * (h64 ^ h64 >> _33n);\n h64 = U64 & P64_3 * (h64 ^ h64 >> _29n);\n return toU8a(U64 & (h64 ^ h64 >> _32n));\n}","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\n *\n * ```javascript\n * import { xxhashAsU8a } from '@polkadot/util-crypto';\n *\n * xxhashAsU8a('abc'); // => 0x44bc2cf5ad770999\n * ```\n */\n\nexport function xxhashAsU8a(data, bitLength = 64, onlyJs) {\n const rounds = Math.ceil(bitLength / 64);\n const u8a = u8aToU8a(data);\n\n if (!hasBigInt || !onlyJs && isReady()) {\n return twox(u8a, rounds);\n }\n\n const result = new Uint8Array(rounds * 8);\n\n for (let seed = 0; seed < rounds; seed++) {\n result.set(xxhash64(u8a, seed).reverse(), seed * 8);\n }\n\n return result;\n}\n/**\n * @name xxhashAsHex\n * @description Creates a xxhash64 hex from the input.\n */\n\nexport const xxhashAsHex = createAsHex(xxhashAsU8a);","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { u8aConcat, u8aToU8a } from '@polkadot/util';\nimport { blake2AsU8a, xxhashAsU8a } from '@polkadot/util-crypto';\n\nconst DEFAULT_FN = data => xxhashAsU8a(data, 128);\n\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 */\n\nexport function getHasher(hasher) {\n return HASHERS[hasher.type] || DEFAULT_FN;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\n\nfunction assertArgs({\n method,\n section\n}, {\n args,\n keys\n}) {\n if (!Array.isArray(args)) {\n throw new Error(`Call to ${stringCamelCase(section || 'unknown')}.${stringCamelCase(method || 'unknown')} needs ${keys.length} arguments`);\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 */\n\n\nexport function createKeyRawParts(registry, itemFn, {\n args,\n hashers,\n keys\n}) {\n const extra = new Array(keys.length);\n\n for (let i = 0; i < keys.length; i++) {\n extra[i] = getHasher(hashers[i])(registry.createTypeUnsafe(registry.createLookupType(keys[i]), [args[i]]).toU8a());\n }\n\n return [[xxhashAsU8a(itemFn.prefix, 128), xxhashAsU8a(itemFn.method, 128)], extra];\n}\n/** @internal */\n\nexport function createKeyInspect(registry, itemFn, args) {\n assertArgs(itemFn, args);\n const {\n meta\n } = itemFn;\n const [prefix, extra] = createKeyRawParts(registry, itemFn, args);\n let types = [];\n\n if (meta.type.isMap) {\n const {\n hashers,\n key\n } = meta.type.asMap;\n types = hashers.length === 1 ? [`${hashers[0].type}(${getSiName(registry.lookup, key)})`] : registry.lookup.getSiType(key).def.asTuple.map((k, i) => `${hashers[i].type}(${getSiName(registry.lookup, k)})`);\n }\n\n const names = ['module', 'method'].concat(...args.args.map((_, i) => types[i]));\n return {\n inner: prefix.concat(...extra).map((v, i) => ({\n name: names[i],\n outer: [v]\n }))\n };\n}\n/** @internal */\n\nexport function createKeyRaw(registry, itemFn, args) {\n const [prefix, extra] = createKeyRawParts(registry, itemFn, args);\n return u8aConcat(...prefix, ...extra);\n}\n/** @internal */\n\nfunction filterDefined(a) {\n return !isUndefined(a);\n}\n/** @internal */\n\n\nfunction createKey(registry, itemFn, args) {\n assertArgs(itemFn, args); // always add the length prefix (underlying it is Bytes)\n\n return compactAddLength(createKeyRaw(registry, itemFn, args));\n}\n/** @internal */\n\n\nfunction createStorageInspect(registry, itemFn, options) {\n const {\n meta: {\n type\n }\n } = itemFn;\n return (...args) => {\n if (type.isPlain) {\n return options.skipHashing ? {\n inner: [],\n name: 'wellKnown',\n outer: [u8aToU8a(options.key)]\n } : createKeyInspect(registry, itemFn, NO_RAW_ARGS);\n }\n\n const {\n hashers,\n key\n } = type.asMap;\n return hashers.length === 1 ? createKeyInspect(registry, itemFn, {\n args,\n hashers,\n keys: [key]\n }) : createKeyInspect(registry, itemFn, {\n args,\n hashers,\n keys: registry.lookup.getSiType(key).def.asTuple\n });\n };\n}\n/** @internal */\n\n\nfunction createStorageFn(registry, itemFn, options) {\n const {\n meta: {\n type\n }\n } = itemFn;\n let cacheKey = null; // 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\n return (...args) => {\n if (type.isPlain) {\n if (!cacheKey) {\n cacheKey = options.skipHashing ? compactAddLength(u8aToU8a(options.key)) : createKey(registry, itemFn, NO_RAW_ARGS);\n }\n\n return cacheKey;\n }\n\n const {\n hashers,\n key\n } = type.asMap;\n return hashers.length === 1 ? createKey(registry, itemFn, {\n args,\n hashers,\n keys: [key]\n }) : createKey(registry, itemFn, {\n args,\n hashers,\n keys: registry.lookup.getSiType(key).def.asTuple\n });\n };\n}\n/** @internal */\n\n\nfunction createWithMeta(registry, itemFn, options) {\n const {\n meta,\n method,\n prefix,\n section\n } = 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; // 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\n storageFn.toJSON = () => objectSpread({\n storage: {\n method,\n prefix,\n section\n }\n }, meta.toJSON());\n\n return storageFn;\n}\n/** @internal */\n\n\nfunction extendHeadMeta(registry, {\n meta: {\n docs,\n name,\n type\n },\n section\n}, {\n method\n}, 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 // required\n name,\n type: registry.createTypeUnsafe('StorageEntryTypeLatest', [type.asMap.key, 0])\n }]);\n iterFn.meta = meta;\n\n const fn = (...args) => registry.createTypeUnsafe('StorageKey', [iterFn(...args), {\n method,\n section\n }]);\n\n fn.meta = meta;\n return fn;\n}\n/** @internal */\n\n\nfunction extendPrefixedMap(registry, itemFn, storageFn) {\n const {\n meta: {\n type\n },\n method,\n section\n } = 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\n if (args.length) {\n if (type.isMap) {\n const {\n hashers,\n key\n } = type.asMap;\n const keysVec = hashers.length === 1 ? [key] : registry.lookup.getSiType(key).def.asTuple;\n return new Raw(registry, createKeyRaw(registry, itemFn, {\n args,\n hashers: hashers.slice(0, args.length),\n keys: keysVec.slice(0, args.length)\n }));\n }\n }\n\n return new Raw(registry, createKeyRaw(registry, itemFn, NO_RAW_ARGS));\n });\n return storageFn;\n}\n/** @internal */\n\n\nexport function createFunction(registry, itemFn, options) {\n const {\n meta: {\n type\n }\n } = itemFn;\n const storageFn = createWithMeta(registry, itemFn, options);\n\n if (type.isMap) {\n extendPrefixedMap(registry, itemFn, storageFn);\n }\n\n storageFn.keyPrefix = (...args) => storageFn.iterKey && storageFn.iterKey(...args) || compactStripLength(storageFn())[1];\n\n return storageFn;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { createFunction } from \"./createFunction.js\";\n\nfunction findSiPrimitive(registry, _prim) {\n const prim = _prim.toLowerCase();\n\n return registry.lookup.types.find(t => t.type.def.isPrimitive && t.type.def.asPrimitive.toString().toLowerCase() === prim || t.type.def.isHistoricMetaCompat && t.type.def.asHistoricMetaCompat.toString().toLowerCase() === prim);\n}\n\nfunction findSiType(registry, orig) {\n let portable = findSiPrimitive(registry, orig);\n\n if (!portable && orig === 'Bytes') {\n const u8 = findSiPrimitive(registry, 'u8');\n\n if (u8) {\n portable = registry.lookup.types.find(t => t.type.def.isSequence && t.type.def.asSequence.type.eq(u8.id) || t.type.def.isHistoricMetaCompat && t.type.def.asHistoricMetaCompat.eq(orig));\n }\n }\n\n if (!portable) {\n console.warn(`Unable to map ${orig} to a lookup index`);\n }\n\n return portable;\n} // Small helper function to factorize code on this page.\n\n/** @internal */\n\n\nexport function createRuntimeFunction({\n method,\n prefix,\n section\n}, key, {\n docs,\n type\n}) {\n return registry => {\n var _findSiType;\n\n return createFunction(registry, {\n meta: registry.createTypeUnsafe('StorageEntryMetadataLatest', [{\n docs: registry.createTypeUnsafe('Vec', [[docs]]),\n modifier: registry.createTypeUnsafe('StorageEntryModifierLatest', ['Required']),\n name: registry.createTypeUnsafe('Text', [method]),\n toJSON: () => key,\n type: registry.createTypeUnsafe('StorageEntryTypeLatest', [{\n Plain: ((_findSiType = findSiType(registry, type)) === null || _findSiType === void 0 ? void 0 : _findSiType.id) || 0\n }])\n }]),\n method,\n prefix,\n section\n }, {\n key,\n skipHashing: true\n });\n };\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { createRuntimeFunction } from \"./util.js\";\nconst prefix = 'Substrate';\nconst section = 'substrate';\n\nfunction createSubstrateFn(method, key, meta) {\n return createRuntimeFunction({\n method,\n prefix,\n section\n }, key, meta);\n}\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};","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 = {\n docs: 'Returns the current pallet version from storage',\n type: 'u16'\n};\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\nexport function decorateStorage(registry, {\n pallets\n}, _metaVersion) {\n const result = getStorage(registry);\n\n for (let i = 0; i < pallets.length; i++) {\n const {\n name,\n storage\n } = pallets[i];\n\n if (storage.isSome) {\n const section = stringCamelCase(name);\n const {\n items,\n prefix: _prefix\n } = storage.unwrap();\n\n const prefix = _prefix.toString();\n\n lazyMethod(result, section, () => lazyMethods({\n palletVersion: createRuntimeFunction({\n method: VERSION_NAME,\n prefix,\n section\n }, createKeyRaw(registry, {\n method: VERSION_KEY,\n prefix: name.toString()\n }, NO_RAW_ARGS), VERSION_DOCS)(registry)\n }, items, meta => createFunction(registry, {\n meta,\n method: meta.name.toString(),\n prefix,\n section\n }, {}), objectNameToCamel));\n }\n }\n\n return result;\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { substrate } from \"./substrate.js\";\n/** @internal */\n\nexport function getStorage(registry) {\n const storage = {};\n const entries = Object.entries(substrate);\n\n for (let e = 0; e < entries.length; e++) {\n storage[entries[e][0]] = entries[e][1](registry);\n }\n\n return {\n substrate: storage\n };\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { CC_TO_LO, CC_TO_UP } from \"./camelCase.js\";\n/** @internal */\n\nfunction converter(map) {\n return value => value ? map[value.charCodeAt(0)] + value.slice(1) : '';\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 *
\n *\n * ```javascript\n * import { stringLowerFirst } from '@polkadot/util';\n *\n * stringLowerFirst('ABC'); // => 'aBC'\n * ```\n */\n\n\nexport const stringLowerFirst = 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 *
\n *\n * ```javascript\n * import { stringUpperFirst } from '@polkadot/util';\n *\n * stringUpperFirst('abc'); // => 'Abc'\n * ```\n */\n\nexport const stringUpperFirst = converter(CC_TO_UP);","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(predicate: (this: A, value: T, index: number) => value is S, thisArg: A): OperatorFunction;\nexport function filter(predicate: (value: T, index: number) => value is S): OperatorFunction;\nexport function filter(predicate: BooleanConstructor): OperatorFunction>;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function filter(predicate: (this: A, value: T, index: number) => boolean, thisArg: A): MonoTypeOperatorFunction;\nexport function filter(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction;\n\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * 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.\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 => (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(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction {\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 * Takes the first `count` values from the source, then\n * completes.\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(count: number): MonoTypeOperatorFunction {\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 * If the source Observable turns out to be empty, then\n * this operator will emit a default value.\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(defaultValue: R): OperatorFunction {\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 { 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(errorFactory: () => any = defaultErrorFactory): MonoTypeOperatorFunction {\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(predicate?: null, defaultValue?: D): OperatorFunction;\nexport function first(predicate: BooleanConstructor): OperatorFunction>;\nexport function first(predicate: BooleanConstructor, defaultValue: D): OperatorFunction | D>;\nexport function first(\n predicate: (value: T, index: number, source: Observable) => value is S,\n defaultValue?: S\n): OperatorFunction;\nexport function first(\n predicate: (value: T, index: number, source: Observable) => value is S,\n defaultValue: D\n): OperatorFunction;\nexport function first(\n predicate: (value: T, index: number, source: Observable) => boolean,\n defaultValue?: D\n): OperatorFunction;\n\n/**\n * Emits only the first value (or the first value that meets some condition)\n * emitted by the source Observable.\n *\n * Emits only the first value. Or emits only the first\n * value that passes some test.\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 => (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): 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(\n predicate?: ((value: T, index: number, source: Observable) => boolean) | null,\n defaultValue?: D\n): OperatorFunction {\n const hasDefaultValue = arguments.length >= 2;\n return (source: Observable) =>\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","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isFunction } from '@polkadot/util';\nexport function isKeyringPair(account) {\n return isFunction(account.sign);\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { logger } from '@polkadot/util';\nexport const l = logger('api/util');","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { l } from \"./logging.js\";\nexport function filterEvents(txHash, {\n block: {\n extrinsics,\n header\n }\n}, allEvents, status) {\n // extrinsics to hashes\n for (const [txIndex, x] of extrinsics.entries()) {\n if (x.hash.eq(txHash)) {\n return {\n events: allEvents.filter(({\n phase\n }) => phase.isApplyExtrinsic && phase.asApplyExtrinsic.eqn(txIndex)),\n txIndex\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\n\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\n return {};\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nconst recordIdentity = record => record;\n\nfunction filterAndApply(events, section, methods, onFound) {\n return events.filter(({\n event\n }) => section === event.section && methods.includes(event.method)).map(record => onFound(record));\n}\n\nfunction getDispatchError({\n event: {\n data: [dispatchError]\n }\n}) {\n return dispatchError;\n}\n\nfunction getDispatchInfo({\n event: {\n data,\n method\n }\n}) {\n return method === 'ExtrinsicSuccess' ? data[0] : data[1];\n}\n\nfunction extractError(events = []) {\n return filterAndApply(events, 'system', ['ExtrinsicFailed'], getDispatchError)[0];\n}\n\nfunction extractInfo(events = []) {\n return filterAndApply(events, 'system', ['ExtrinsicFailed', 'ExtrinsicSuccess'], getDispatchInfo)[0];\n}\n\nexport class SubmittableResult {\n constructor({\n dispatchError,\n dispatchInfo,\n events,\n internalError,\n status,\n txHash,\n txIndex\n }) {\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 }\n\n get isCompleted() {\n return this.isError || this.status.isInBlock || this.status.isFinalized;\n }\n\n get isError() {\n return this.status.isDropped || this.status.isFinalityTimeout || this.status.isInvalid || this.status.isUsurped;\n }\n\n get isFinalized() {\n return this.status.isFinalized;\n }\n\n get isInBlock() {\n return this.status.isInBlock;\n }\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\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\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\n\n toHuman(isExtended) {\n var _this$dispatchError, _this$dispatchInfo, _this$internalError;\n\n return {\n dispatchError: (_this$dispatchError = this.dispatchError) === null || _this$dispatchError === void 0 ? void 0 : _this$dispatchError.toHuman(),\n dispatchInfo: (_this$dispatchInfo = this.dispatchInfo) === null || _this$dispatchInfo === void 0 ? void 0 : _this$dispatchInfo.toHuman(),\n events: this.events.map(e => e.toHuman(isExtended)),\n internalError: (_this$internalError = this.internalError) === null || _this$internalError === void 0 ? void 0 : _this$internalError.message.toString(),\n status: this.status.toHuman(isExtended)\n };\n }\n\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable no-dupe-class-members */\nimport { catchError, first, map, mapTo, mergeMap, of, switchMap, tap } from 'rxjs';\nimport { isBn, isFunction, isNumber, isString, isU8a, objectSpread } from '@polkadot/util';\nimport { filterEvents, isKeyringPair } from \"../util/index.js\";\nimport { SubmittableResult } from \"./Result.js\";\n\nconst identity = input => input;\n\nfunction makeEraOptions(api, registry, partialOptions, {\n header,\n mortalLength,\n nonce\n}) {\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\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\n return makeSignOptions(api, partialOptions, {\n nonce\n });\n }\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}\n\nfunction makeSignAndSendOptions(partialOptions, statusCb) {\n let options = {};\n\n if (isFunction(partialOptions)) {\n statusCb = partialOptions;\n } else {\n options = objectSpread({}, partialOptions);\n }\n\n return [options, statusCb];\n}\n\nfunction makeSignOptions(api, partialOptions, extras) {\n return objectSpread({\n blockHash: api.genesisHash,\n genesisHash: api.genesisHash\n }, partialOptions, extras, {\n runtimeVersion: api.runtimeVersion,\n signedExtensions: api.registry.signedExtensions,\n version: api.extrinsicType\n });\n}\n\nfunction optionsOrNonce(partialOptions = {}) {\n return isBn(partialOptions) || isNumber(partialOptions) ? {\n nonce: partialOptions\n } : partialOptions;\n}\n\nexport function createClass({\n api,\n apiType,\n blockHash,\n decorateMethod\n}) {\n // an instance of the base extrinsic for us to extend\n const ExtrinsicBase = api.registry.createClass('Extrinsic');\n\n class Submittable extends ExtrinsicBase {\n #ignoreStatusCb;\n #transformResult = identity;\n\n constructor(registry, extrinsic) {\n super(registry, extrinsic, {\n version: api.extrinsicType\n });\n this.#ignoreStatusCb = apiType === 'rxjs';\n } // dry run an extrinsic\n\n\n dryRun(account, optionsOrHash) {\n if (!api.rpc.system || !api.rpc.system.dryRun) {\n throw new Error('The system.dryRun RPC call is not available in your environment');\n }\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 } // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n\n\n return decorateMethod(() => this.#observeSign(account, optionsOrHash).pipe(switchMap(() => api.rpc.system.dryRun(this.toHex()))))();\n } // calculate the payment info for this transaction (if signed and submitted)\n\n\n paymentInfo(account, optionsOrHash) {\n if (!api.call.transactionPaymentApi || !api.call.transactionPaymentApi.queryInfo) {\n throw new Error('The transactionPaymentApi.queryInfo runtime call is not available in your environment');\n }\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\n const [allOptions] = makeSignAndSendOptions(optionsOrHash);\n const address = isKeyringPair(account) ? account.address : account.toString(); // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n\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 const u8a = this.isSigned ? api.tx(this).signFake(address, signOptions).toU8a() : this.signFake(address, signOptions).toU8a();\n return api.call.transactionPaymentApi.queryInfo(u8a, u8a.length);\n })))();\n } // send with an immediate Hash result\n\n\n // send implementation for both immediate Hash and statusCb variants\n send(statusCb) {\n const isSubscription = api.hasSubscriptions && (this.#ignoreStatusCb || !!statusCb); // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n\n return decorateMethod(isSubscription ? this.#observeSubscribe : this.#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\n\n signAsync(account, partialOptions) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n return decorateMethod(() => this.#observeSign(account, partialOptions).pipe(mapTo(this)))();\n } // signAndSend with an immediate Hash result\n\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.#ignoreStatusCb || !!statusCb); // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n\n return decorateMethod(() => this.#observeSign(account, options).pipe(switchMap(info => isSubscription ? this.#observeSubscribe(info) : this.#observeSend(info))) // FIXME This is wrong, SubmittableResult is _not_ a codec\n )(statusCb);\n } // adds a transform to the result, applied before result is returned\n\n\n withResultTransform(transform) {\n this.#transformResult = transform;\n return this;\n }\n\n #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\n if (isKeyringPair(account)) {\n this.sign(account, eraOptions);\n } else {\n updateId = await this.#signViaSigner(address, eraOptions, signingInfo.header);\n }\n\n return {\n options: eraOptions,\n updateId\n };\n }));\n };\n #observeStatus = (txHash, status) => {\n if (!status.isFinalized && !status.isInBlock) {\n return of(this.#transformResult(new SubmittableResult({\n status,\n txHash\n })));\n }\n\n const blockHash = status.isInBlock ? status.asInBlock : status.asFinalized;\n return api.derive.tx.events(blockHash).pipe(map(({\n block,\n events\n }) => this.#transformResult(new SubmittableResult({ ...filterEvents(txHash, block, events, status),\n status,\n txHash\n }))), catchError(internalError => of(this.#transformResult(new SubmittableResult({\n internalError,\n status,\n txHash\n })))));\n };\n #observeSend = info => {\n return api.rpc.author.submitExtrinsic(this).pipe(tap(hash => {\n this.#updateSigner(hash, info);\n }));\n };\n #observeSubscribe = info => {\n const txHash = this.hash;\n return api.rpc.author.submitAndWatchExtrinsic(this).pipe(switchMap(status => this.#observeStatus(txHash, status)), tap(status => {\n this.#updateSigner(status, info);\n }));\n };\n #signViaSigner = async (address, options, header) => {\n const signer = options.signer || api.signer;\n\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\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\n if (isFunction(signer.signPayload)) {\n result = await signer.signPayload(payload.toPayload());\n } else if (isFunction(signer.signRaw)) {\n result = await signer.signRaw(payload.toRaw());\n } else {\n throw new Error('Invalid signer interface, it should implement either signPayload or signRaw (or both)');\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\n\n super.addSignature(address, result.signature, payload.toPayload());\n return result.id;\n };\n #updateSigner = (status, info) => {\n if (info && info.updateId !== -1) {\n const {\n options,\n updateId\n } = info;\n const signer = options.signer || api.signer;\n\n if (signer && isFunction(signer.update)) {\n signer.update(updateId, status);\n }\n }\n };\n }\n\n return Submittable;\n}","import { OperatorFunction } from '../types';\nimport { map } from './map';\n\n/** @deprecated To be removed in v9. Use {@link map} instead: `map(() => value)`. */\nexport function mapTo(value: R): OperatorFunction;\n/**\n * @deprecated Do not specify explicit type parameters. Signatures with type parameters\n * that cannot be inferred will be removed in v8. `mapTo` itself will be removed in v9,\n * use {@link map} instead: `map(() => value)`.\n * */\nexport function mapTo(value: R): OperatorFunction;\n\n/**\n * Emits the given constant value on the output Observable every time the source\n * Observable emits a value.\n *\n * Like {@link map}, but it maps every source value to\n * the same output value every time.\n *\n * ![](mapTo.png)\n *\n * Takes a constant `value` as argument, and emits that whenever the source\n * Observable emits a value. In other words, ignores the actual source value,\n * and simply uses the emission moment to know when to emit the given `value`.\n *\n * ## Example\n *\n * Map every click to the string `'Hi'`\n *\n * ```ts\n * import { fromEvent, mapTo } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const greetings = clicks.pipe(mapTo('Hi'));\n *\n * greetings.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link map}\n *\n * @param value The value to map each source value to.\n * @return A function that returns an Observable that emits the given `value`\n * every time the source Observable emits.\n * @deprecated To be removed in v9. Use {@link map} instead: `map(() => value)`.\n */\nexport function mapTo(value: R): OperatorFunction {\n return map(() => value);\n}\n","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { createClass } from \"./createClass.js\";\nexport function createSubmittable(apiType, api, decorateMethod, registry, blockHash) {\n const Submittable = createClass({\n api,\n apiType,\n blockHash,\n decorateMethod\n });\n return extrinsic => new Submittable(registry || api.registry, extrinsic);\n}","// Copyright 2017-2022 @polkadot/util authors & contributors\n// SPDX-License-Identifier: Apache-2.0\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\n for (let i = 0; i < keys.length; i++) {\n delete value[keys[i]];\n }\n\n return value;\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { lazyMethods, logger, objectClear } from '@polkadot/util';\nconst l = logger('api/augment');\n\nfunction logLength(type, values, and = []) {\n return values.length ? ` ${values.length} ${type}${and.length ? ' and' : ''}` : '';\n}\n\nfunction logValues(type, values) {\n return values.length ? `\\n\\t${type.padStart(7)}: ${values.sort().join(', ')}` : '';\n} // log details to console\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}\n\nfunction findSectionExcludes(a, b) {\n return a.filter(s => !b.includes(s));\n}\n\nfunction findSectionIncludes(a, b) {\n return a.filter(s => b.includes(s));\n}\n\nfunction extractSections(src, dst) {\n const srcSections = Object.keys(src);\n const dstSections = Object.keys(dst);\n return [findSectionExcludes(srcSections, dstSections), 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\n for (let s = 0; s < dstSections.length; s++) {\n const section = dstSections[s];\n const srcMethods = Object.keys(src[section]);\n const dstMethods = Object.keys(dst[section]);\n\n for (let d = 0; d < dstMethods.length; d++) {\n const method = dstMethods[d];\n\n if (!srcMethods.includes(method)) {\n excludes.push(`${section}.${method}`);\n }\n }\n }\n\n return excludes;\n}\n\nfunction extractMethods(src, dst) {\n return [findMethodExcludes(dst, src), findMethodExcludes(src, dst)];\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 */\n\n\nexport function augmentObject(prefix, src, dst, fromEmpty = false) {\n fromEmpty && objectClear(dst); // 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\n if (prefix && Object.keys(dst).length) {\n warn(prefix, 'modules', extractSections(src, dst));\n warn(prefix, 'calls', extractMethods(src, dst));\n }\n\n const sections = Object.keys(src);\n\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const methods = src[section]; // 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\n if (!dst[section]) {\n dst[section] = {};\n }\n\n lazyMethods(dst[section], Object.keys(methods), m => methods[m]);\n }\n\n return dst;\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { lazyDeriveSection } from '@polkadot/api-derive';\n\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\n const creator = (s, m) => decorateMethod(derives[s][m]);\n\n const result = {};\n const names = Object.keys(derives);\n\n for (let i = 0; i < names.length; i++) {\n lazyDeriveSection(result, names[i], getKeys, creator);\n }\n\n return result;\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isUndefined } from '@polkadot/util';\n\nfunction sig({\n lookup\n}, {\n method,\n section\n}, args) {\n return `${section}.${method}(${args.map(a => lookup.getTypeDef(a).type).join(', ')})`;\n} // sets up the arguments in the form of [creator, args] ready to be used in a storage\n// call. Additionally, it verifies that the correct number of arguments have been passed\n\n\nexport function extractStorageArgs(registry, creator, _args) {\n const args = _args.filter(a => !isUndefined(a));\n\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 } else {\n const {\n hashers,\n key\n } = creator.meta.type.asMap;\n const keys = hashers.length === 1 ? [key] : registry.lookup.getSiType(key).def.asTuple.map(t => t);\n\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 } // pass as tuple\n\n\n return [creator, args];\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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\";\n// the max amount of keys/values that we will retrieve at once\nconst PAGE_SIZE_K = 1000; // limit aligned with the 1k on the node (trie lookups are heavy)\n\nconst PAGE_SIZE_V = 250; // limited since the data may be > 16MB (e.g. misfiring elections)\n\nconst PAGE_SIZE_Q = 50; // queue of pending storage queries (mapped together, next tick)\n\nconst l = logger('api/init');\nlet instanceCounter = 0;\n\nfunction getAtQueryFn(api, {\n method,\n section\n}) {\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}\n\nexport class Decorate extends Events {\n #instanceId;\n #registry;\n #runtimeLog = {};\n #storageGetQ = [];\n #storageSubQ = []; // HACK Use BN import so decorateDerive works... yes, wtf.\n\n __phantom = new BN(0);\n _call = {};\n _consts = {};\n _errors = {};\n _events = {};\n _extrinsicType = GenericExtrinsic.LATEST_EXTRINSIC_VERSION;\n _isReady = false;\n _query = {};\n _runtimeMap = {};\n _rx = {\n call: {},\n consts: {},\n query: {},\n tx: {}\n };\n\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 *
\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 var _options$source;\n\n super();\n this.#instanceId = `${++instanceCounter}`;\n this.#registry = ((_options$source = options.source) === null || _options$source === void 0 ? void 0 : _options$source.registry) || options.registry || new TypeRegistry();\n\n this._rx.callAt = (blockHash, knownVersion) => from(this.at(blockHash, knownVersion)).pipe(map(a => a.rx.call));\n\n this._rx.queryAt = (blockHash, knownVersion) => from(this.at(blockHash, knownVersion)).pipe(map(a => a.rx.query));\n\n this._rx.registry = this.#registry;\n const thisProvider = options.source ? options.source._rpcCore.provider.clone() : options.provider || new WsProvider();\n this._decorateMethod = decorateMethod;\n this._options = options;\n this._type = type; // The RPC interface decorates the known interfaces on init\n\n this._rpcCore = new RpcCore(this.#instanceId, this.#registry, thisProvider, this._options.rpc);\n this._isConnected = new BehaviorSubject(this._rpcCore.provider.isConnected);\n this._rx.hasSubscriptions = this._rpcCore.provider.hasSubscriptions;\n }\n\n /**\n * @description Return the current used registry\n */\n get registry() {\n return this.#registry;\n }\n /**\n * @description Creates an instance of a type as registered\n */\n\n\n createType(type, ...params) {\n return this.#registry.createType(type, ...params);\n }\n /**\n * @description Register additional user-defined of chain-specific types in the type registry\n */\n\n\n registerTypes(types) {\n types && this.#registry.register(types);\n }\n /**\n * @returns `true` if the API operates with subscriptions\n */\n\n\n get hasSubscriptions() {\n return this._rpcCore.provider.hasSubscriptions;\n }\n /**\n * @returns `true` if the API decorate multi-key queries\n */\n\n\n get supportMulti() {\n return this._rpcCore.provider.hasSubscriptions || !!this._rpcCore.state.queryStorageAt;\n }\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\n _createDecorated(registry, fromEmpty, decoratedApi, blockHash) {\n if (!decoratedApi) {\n decoratedApi = this._emptyDecorated(registry.registry, blockHash);\n }\n\n if (fromEmpty || !registry.decoratedMeta) {\n registry.decoratedMeta = expandMetadata(registry.registry, registry.metadata);\n }\n\n const runtime = this._decorateCalls(registry, this._decorateMethod, blockHash);\n\n const runtimeRx = this._decorateCalls(registry, this._rxDecorateMethod, blockHash);\n\n const storage = this._decorateStorage(registry.decoratedMeta, this._decorateMethod, blockHash);\n\n const storageRx = this._decorateStorage(registry.decoratedMeta, this._rxDecorateMethod, blockHash);\n\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\n decoratedApi.findCall = callIndex => findCall(registry.registry, callIndex);\n\n decoratedApi.findError = errorIndex => findError(registry.registry, errorIndex);\n\n decoratedApi.queryMulti = blockHash ? this._decorateMultiAt(decoratedApi, this._decorateMethod, blockHash) : this._decorateMulti(this._decorateMethod);\n decoratedApi.runtimeVersion = registry.runtimeVersion;\n return {\n createdAt: blockHash,\n decoratedApi,\n decoratedMeta: registry.decoratedMeta\n };\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\n const {\n decoratedApi,\n decoratedMeta\n } = this._createDecorated(registry, fromEmpty, registry.decoratedApi);\n\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\n const tx = this._decorateExtrinsics(decoratedMeta, this._decorateMethod);\n\n const rxtx = this._decorateExtrinsics(decoratedMeta, this._rxDecorateMethod);\n\n if (fromEmpty || !this._extrinsics) {\n this._extrinsics = tx;\n this._rx.tx = rxtx;\n } else {\n augmentObject('tx', tx, this._extrinsics, false);\n augmentObject(null, rxtx, this._rx.tx, false);\n }\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\n\n injectMetadata(metadata, fromEmpty, registry) {\n this._injectMetadata({\n counter: 0,\n metadata,\n registry: registry || this.#registry,\n runtimeVersion: this.#registry.createType('RuntimeVersionPartial')\n }, fromEmpty);\n }\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\n if (input.callIndex) {\n output.callIndex = input.callIndex;\n }\n\n return output;\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\n\n _filterRpc(methods, additional) {\n // add any specific user-base RPCs\n if (Object.keys(additional).length !== 0) {\n this._rpcCore.addUserInterfaces(additional); // re-decorate, only adding any new additional interfaces\n\n\n this._decorateRpc(this._rpcCore, this._decorateMethod, this._rpc);\n\n this._decorateRpc(this._rpcCore, this._rxDecorateMethod, this._rx.rpc);\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\n\n const sectionMap = {};\n\n for (let i = 0; i < methods.length; i++) {\n const [section] = methods[i].split('_');\n sectionMap[section] = true;\n } // convert the actual section names into an easy name lookup\n\n\n const sections = Object.keys(sectionMap);\n\n for (let i = 0; i < sections.length; 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 } // finally we filter the actual methods to expose\n\n\n this._filterRpcMethods(methods);\n }\n\n _filterRpcMethods(exposed) {\n const hasResults = exposed.length !== 0;\n const allKnown = [...this._rpcCore.mapping.entries()];\n const allKeys = [];\n\n for (let i = 0; i < allKnown.length; i++) {\n const [, {\n alias,\n endpoint,\n method,\n pubsub,\n section\n }] = allKnown[i];\n allKeys.push(`${section}_${method}`);\n\n if (pubsub) {\n allKeys.push(`${section}_${pubsub[1]}`);\n allKeys.push(`${section}_${pubsub[2]}`);\n }\n\n if (alias) {\n allKeys.push(...alias);\n }\n\n if (endpoint) {\n allKeys.push(endpoint);\n }\n }\n\n const filterKey = k => !allKeys.includes(k);\n\n const unknown = exposed.filter(filterKey);\n\n if (unknown.length && !this._options.noInitWarn) {\n l.warn(`RPC methods not decorated: ${unknown.join(', ')}`);\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\n\n for (let i = 0; i < allKnown.length; i++) {\n const [k, {\n method,\n section\n }] = allKnown[i];\n\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\n _decorateRpc(rpc, decorateMethod, input = {}) {\n const out = input;\n\n const decorateFn = (section, method) => {\n const source = rpc[section][method];\n const fn = decorateMethod(source, {\n methodName: method\n });\n fn.meta = source.meta;\n fn.raw = decorateMethod(source.raw, {\n methodName: method\n });\n return fn;\n };\n\n for (let s = 0; s < rpc.sections.length; s++) {\n const section = rpc.sections[s];\n\n if (!Object.prototype.hasOwnProperty.call(out, section)) {\n const methods = Object.keys(rpc[section]);\n\n const decorateInternal = method => decorateFn(section, method);\n\n for (let m = 0; m < methods.length; m++) {\n const method = methods[m]; // skip subscriptions where we have a non-subscribe interface\n\n if (this.hasSubscriptions || !(method.startsWith('subscribe') || method.startsWith('unsubscribe'))) {\n if (!Object.prototype.hasOwnProperty.call(out, section)) {\n out[section] = {};\n }\n\n lazyMethod(out[section], method, decorateInternal);\n }\n }\n }\n }\n\n return out;\n } // add all definition entries\n\n\n _addRuntimeDef(result, additional) {\n if (!additional) {\n return;\n }\n\n const entries = Object.entries(additional);\n\n for (let j = 0; j < entries.length; j++) {\n const [key, defs] = entries[j];\n\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; k < defs.length; k++) {\n const def = defs[k];\n const prev = result[key].find(({\n version\n }) => def.version === version);\n\n if (prev) {\n // interleave the new methods with the old - last definition wins\n objectSpread(prev.methods, def.methods);\n } else {\n // we don't have this specific version, add it\n result[key].push(def);\n }\n }\n } else {\n // we don't have this runtime definition, add it as-is\n result[key] = defs;\n }\n }\n } // extract all runtime definitions\n\n\n _getRuntimeDefs(registry, specName, chain = '') {\n const result = {};\n const defValues = Object.values(typeDefinitions); // options > chain/spec > built-in, apply in reverse order with\n // methods overriding previous definitions (or interleave missing)\n\n for (let i = 0; i < defValues.length; i++) {\n this._addRuntimeDef(result, defValues[i].runtime);\n }\n\n this._addRuntimeDef(result, getSpecRuntime(registry, chain, specName));\n\n this._addRuntimeDef(result, this._options.runtime);\n\n return Object.entries(result);\n } // pre-metadata decoration\n\n\n _decorateCalls({\n registry,\n runtimeVersion: {\n apis,\n specName,\n specVersion\n }\n }, decorateMethod, blockHash) {\n const result = {};\n const named = {};\n const hashes = {};\n\n const sections = this._getRuntimeDefs(registry, specName, this._runtimeChain);\n\n const older = [];\n const implName = `${specName.toString()}/${specVersion.toString()}`;\n const hasLogged = this.#runtimeLog[implName] || false;\n this.#runtimeLog[implName] = true;\n\n for (let i = 0; i < sections.length; 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\n if (rtApi) {\n const all = secs.map(({\n version\n }) => version).sort();\n const sec = secs.find(({\n version\n }) => rtApi[1].eq(version));\n\n if (sec) {\n const section = stringCamelCase(_section);\n const methods = Object.entries(sec.methods);\n\n if (methods.length) {\n if (!named[section]) {\n named[section] = {};\n }\n\n for (let m = 0; m < methods.length; m++) {\n const [_method, def] = methods[m];\n const method = stringCamelCase(_method);\n named[section][method] = objectSpread({\n method,\n name: `${_section}_${_method}`,\n section,\n sectionHash\n }, def);\n }\n }\n } else {\n older.push(`${_section}/${rtApi[1].toString()} (${all.join('/')} known)`);\n }\n }\n } // find the runtimes that we don't have hashes for\n\n\n const notFound = apis.map(([a, v]) => [a.toHex(), v.toString()]).filter(([a]) => !hashes[a]).map(([a, v]) => `${this._runtimeMap[a] || a}/${v}`);\n\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\n if (notFound.length) {\n l.warn(`${implName}: Not decorating unknown runtime apis: ${notFound.join(', ')}`);\n }\n }\n\n const stateCall = blockHash ? (name, bytes) => this._rpcCore.state.call(name, bytes, blockHash) : (name, bytes) => this._rpcCore.state.call(name, bytes);\n\n const lazySection = section => lazyMethods({}, Object.keys(named[section]), method => this._decorateCall(registry, named[section][method], stateCall, decorateMethod));\n\n const modules = Object.keys(named);\n\n for (let i = 0; i < modules.length; i++) {\n lazyMethod(result, modules[i], lazySection);\n }\n\n return result;\n }\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\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; // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\n return decorated;\n } // only be called if supportMulti is true\n\n\n _decorateMulti(decorateMethod) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return decorateMethod(keys => (this.hasSubscriptions ? this._rpcCore.state.subscribeStorage : this._rpcCore.state.queryStorageAt)(keys.map(args => Array.isArray(args) ? args[0].creator.meta.type.isPlain ? [args[0].creator] : args[0].creator.meta.type.asMap.hashers.length === 1 ? [args[0].creator, args.slice(1)] : [args[0].creator, ...args.slice(1)] : [args.creator])));\n }\n\n _decorateMultiAt(atApi, decorateMethod, blockHash) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return decorateMethod(calls => this._rpcCore.state.queryStorageAt(calls.map(args => {\n if (Array.isArray(args)) {\n const {\n creator\n } = getAtQueryFn(atApi, args[0].creator);\n return creator.meta.type.isPlain ? [creator] : creator.meta.type.asMap.hashers.length === 1 ? [creator, args.slice(1)] : [creator, ...args.slice(1)];\n }\n\n return [getAtQueryFn(atApi, args.creator).creator];\n }), blockHash));\n }\n\n _decorateExtrinsics({\n tx\n }, decorateMethod) {\n const result = createSubmittable(this._type, this._rx, decorateMethod);\n\n const lazySection = section => lazyMethods({}, Object.keys(tx[section]), method => method.startsWith('$') ? tx[section][method] : this._decorateExtrinsicEntry(tx[section][method], result));\n\n const sections = Object.keys(tx);\n\n for (let i = 0; i < sections.length; i++) {\n lazyMethod(result, sections[i], lazySection);\n }\n\n return result;\n }\n\n _decorateExtrinsicEntry(method, creator) {\n const decorated = (...params) => creator(method(...params)); // pass through the `.is`\n\n\n decorated.is = other => method.is(other); // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\n\n return this._decorateFunctionMeta(method, decorated);\n }\n\n _decorateStorage({\n query,\n registry\n }, decorateMethod, blockHash) {\n const result = {};\n\n const lazySection = section => lazyMethods({}, Object.keys(query[section]), method => blockHash ? this._decorateStorageEntryAt(registry, query[section][method], decorateMethod, blockHash) : this._decorateStorageEntry(query[section][method], decorateMethod));\n\n const sections = Object.keys(query);\n\n for (let i = 0; i < sections.length; i++) {\n lazyMethod(result, sections[i], lazySection);\n }\n\n return result;\n }\n\n _decorateStorageEntry(creator, decorateMethod) {\n const getArgs = (args, registry) => extractStorageArgs(registry || this.#registry, creator, args);\n\n const getQueryAt = blockHash => from(this.at(blockHash)).pipe(map(api => getAtQueryFn(api, creator))); // Disable this where it occurs for each field we are decorating\n\n /* eslint-disable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */\n\n\n const decorated = this._decorateStorageCall(creator, decorateMethod);\n\n decorated.creator = creator;\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\n decorated.is = key => key.section === creator.section && key.method === creator.method;\n\n decorated.key = (...args) => u8aToHex(compactStripLength(creator(...args))[1]);\n\n decorated.keyPrefix = (...args) => u8aToHex(creator.keyPrefix(...args));\n\n decorated.size = decorateMethod((...args) => this._rpcCore.state.getStorageSize(getArgs(args)));\n decorated.sizeAt = decorateMethod((blockHash, ...args) => getQueryAt(blockHash).pipe(switchMap(q => this._rpcCore.state.getStorageSize(getArgs(args, q.creator.meta.registry), blockHash)))); // .keys() & .entries() only available on map types\n\n if (creator.iterKey && creator.meta.type.isMap) {\n decorated.entries = decorateMethod(memo(this.#instanceId, (...args) => this._retrieveMapEntries(creator, null, args)));\n decorated.entriesAt = decorateMethod(memo(this.#instanceId, (blockHash, ...args) => getQueryAt(blockHash).pipe(switchMap(q => this._retrieveMapEntries(q.creator, blockHash, args)))));\n decorated.entriesPaged = decorateMethod(memo(this.#instanceId, opts => this._retrieveMapEntriesPaged(creator, undefined, opts)));\n decorated.keys = decorateMethod(memo(this.#instanceId, (...args) => this._retrieveMapKeys(creator, null, args)));\n decorated.keysAt = decorateMethod(memo(this.#instanceId, (blockHash, ...args) => getQueryAt(blockHash).pipe(switchMap(q => this._retrieveMapKeys(q.creator, blockHash, args)))));\n decorated.keysPaged = decorateMethod(memo(this.#instanceId, opts => this._retrieveMapKeysPaged(creator, undefined, opts)));\n }\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 ? this._retrieveMulti(args.map(a => [creator, [a]])) : this._retrieveMulti(args.map(a => [creator, a])));\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */\n\n\n return this._decorateFunctionMeta(creator, decorated);\n }\n\n _decorateStorageEntryAt(registry, creator, decorateMethod, blockHash) {\n const getArgs = args => extractStorageArgs(registry, creator, args); // Disable this where it occurs for each field we are decorating\n\n /* eslint-disable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */\n\n\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\n decorated.is = key => key.section === creator.section && key.method === creator.method;\n\n decorated.key = (...args) => u8aToHex(compactStripLength(creator(creator.meta.type.isPlain ? undefined : args))[1]);\n\n decorated.keyPrefix = (...keys) => u8aToHex(creator.keyPrefix(...keys));\n\n decorated.size = decorateMethod((...args) => this._rpcCore.state.getStorageSize(getArgs(args), blockHash)); // .keys() & .entries() only available on map types\n\n if (creator.iterKey && creator.meta.type.isMap) {\n decorated.entries = decorateMethod(memo(this.#instanceId, (...args) => this._retrieveMapEntries(creator, blockHash, args)));\n decorated.entriesPaged = decorateMethod(memo(this.#instanceId, opts => this._retrieveMapEntriesPaged(creator, blockHash, opts)));\n decorated.keys = decorateMethod(memo(this.#instanceId, (...args) => this._retrieveMapKeys(creator, blockHash, args)));\n decorated.keysPaged = decorateMethod(memo(this.#instanceId, opts => this._retrieveMapKeysPaged(creator, blockHash, opts)));\n }\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 ? this._retrieveMulti(args.map(a => [creator, [a]]), blockHash) : this._retrieveMulti(args.map(a => [creator, a]), blockHash));\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */\n\n\n return this._decorateFunctionMeta(creator, decorated);\n }\n\n _queueStorage(call, queue) {\n const query = queue === this.#storageSubQ ? this._rpcCore.state.subscribeStorage : this._rpcCore.state.queryStorageAt;\n let queueIdx = queue.length - 1;\n let valueIdx = 0;\n let valueObs; // 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\n if (queueIdx === -1 || !queue[queueIdx] || queue[queueIdx][1].length === PAGE_SIZE_Q) {\n queueIdx++;\n valueObs = from( // 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 // (anyhting 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 } else {\n valueObs = queue[queueIdx][0];\n valueIdx = queue[queueIdx][1].length;\n queue[queueIdx][1].push(call);\n }\n\n return valueObs.pipe( // return the single value at this index\n map(values => values[valueIdx]));\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\n\n _decorateStorageCall(creator, decorateMethod) {\n return decorateMethod((...args) => {\n const call = extractStorageArgs(this.#registry, creator, args);\n\n if (!this.hasSubscriptions) {\n return this._rpcCore.state.getStorage(call);\n }\n\n return this._queueStorage(call, this.#storageSubQ);\n }, {\n methodName: creator.method,\n overrideNoSub: (...args) => this._queueStorage(extractStorageArgs(this.#registry, creator, args), this.#storageGetQ)\n });\n } // retrieve a set of values for a specific set of keys - here we chunk the keys into PAGE_SIZE sizes\n\n\n _retrieveMulti(keys, blockHash) {\n if (!keys.length) {\n return of([]);\n }\n\n const query = this.hasSubscriptions && !blockHash ? this._rpcCore.state.subscribeStorage : this._rpcCore.state.queryStorageAt;\n\n if (keys.length <= PAGE_SIZE_V) {\n return blockHash ? query(keys, blockHash) : query(keys);\n }\n\n return combineLatest(arrayChunk(keys, PAGE_SIZE_V).map(k => blockHash ? query(k, blockHash) : query(k))).pipe(map(arrayFlatten));\n }\n\n _retrieveMapKeys({\n iterKey,\n meta,\n method,\n section\n }, at, args) {\n if (!iterKey || !meta.type.isMap) {\n throw new Error('keys can only be retrieved on maps');\n }\n\n const headKey = iterKey(...args).toHex();\n const startSubject = new BehaviorSubject(headKey);\n const query = at ? startKey => this._rpcCore.state.getKeysPaged(headKey, PAGE_SIZE_K, startKey, at) : startKey => this._rpcCore.state.getKeysPaged(headKey, PAGE_SIZE_K, startKey);\n\n const setMeta = key => key.setMeta(meta, section, method);\n\n return startSubject.pipe(switchMap(query), map(keys => keys.map(setMeta)), tap(keys => nextTick(() => {\n keys.length === PAGE_SIZE_K ? startSubject.next(keys[PAGE_SIZE_K - 1].toHex()) : startSubject.complete();\n })), toArray(), // toArray since we want to startSubject to be completed\n map(arrayFlatten));\n }\n\n _retrieveMapKeysPaged({\n iterKey,\n meta,\n method,\n section\n }, at, opts) {\n if (!iterKey || !meta.type.isMap) {\n throw new Error('keys can only be retrieved on maps');\n }\n\n const setMeta = key => key.setMeta(meta, section, method);\n\n const query = at ? headKey => this._rpcCore.state.getKeysPaged(headKey, opts.pageSize, opts.startKey || headKey, at) : 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\n _retrieveMapEntries(entry, at, args) {\n const query = at ? keys => this._rpcCore.state.queryStorageAt(keys, at) : keys => this._rpcCore.state.queryStorageAt(keys);\n return this._retrieveMapKeys(entry, at, args).pipe(switchMap(keys => keys.length ? combineLatest(arrayChunk(keys, PAGE_SIZE_V).map(query)).pipe(map(valsArr => arrayFlatten(valsArr).map((value, index) => [keys[index], value]))) : of([])));\n }\n\n _retrieveMapEntriesPaged(entry, at, opts) {\n const query = at ? keys => this._rpcCore.state.queryStorageAt(keys, at) : keys => this._rpcCore.state.queryStorageAt(keys);\n return this._retrieveMapKeysPaged(entry, at, opts).pipe(switchMap(keys => keys.length ? query(keys).pipe(map(valsArr => valsArr.map((value, index) => [keys[index], value]))) : of([])));\n }\n\n _decorateDeriveRx(decorateMethod) {\n var _this$_runtimeVersion, _this$_options$typesB, _this$_options$typesB2, _this$_options$typesB3;\n\n const specName = (_this$_runtimeVersion = this._runtimeVersion) === null || _this$_runtimeVersion === void 0 ? void 0 : _this$_runtimeVersion.specName.toString(); // Pull in derive from api-derive\n\n const available = getAvailableDerives(this.#instanceId, this._rx, objectSpread({}, this._options.derives, (_this$_options$typesB = this._options.typesBundle) === null || _this$_options$typesB === void 0 ? void 0 : (_this$_options$typesB2 = _this$_options$typesB.spec) === null || _this$_options$typesB2 === void 0 ? void 0 : (_this$_options$typesB3 = _this$_options$typesB2[specName || '']) === null || _this$_options$typesB3 === void 0 ? void 0 : _this$_options$typesB3.derives));\n return decorateDeriveSections(decorateMethod, available);\n }\n\n _decorateDerive(decorateMethod) {\n return decorateDeriveSections(decorateMethod, this._rx.derive);\n }\n /**\n * Put the `this.onCall` function of ApiRx here, because it is needed by\n * `api._rx`.\n */\n\n\n _rxDecorateMethod = method => {\n return method;\n };\n}","import _classPrivateFieldLooseBase from \"@babel/runtime/helpers/esm/classPrivateFieldLooseBase\";\nimport _classPrivateFieldLooseKey from \"@babel/runtime/helpers/esm/classPrivateFieldLooseKey\";\n// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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, 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');\n\nfunction textToString(t) {\n return t.toString();\n}\n\nvar _atLast = /*#__PURE__*/_classPrivateFieldLooseKey(\"atLast\");\n\nvar _healthTimer = /*#__PURE__*/_classPrivateFieldLooseKey(\"healthTimer\");\n\nvar _registries = /*#__PURE__*/_classPrivateFieldLooseKey(\"registries\");\n\nvar _updateSub = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateSub\");\n\nvar _waitingRegistries = /*#__PURE__*/_classPrivateFieldLooseKey(\"waitingRegistries\");\n\nvar _onProviderConnect = /*#__PURE__*/_classPrivateFieldLooseKey(\"onProviderConnect\");\n\nvar _onProviderDisconnect = /*#__PURE__*/_classPrivateFieldLooseKey(\"onProviderDisconnect\");\n\nvar _onProviderError = /*#__PURE__*/_classPrivateFieldLooseKey(\"onProviderError\");\n\nexport class Init extends Decorate {\n constructor(options, type, decorateMethod) {\n super(options, type, decorateMethod); // all injected types added to the registry for overrides\n\n Object.defineProperty(this, _onProviderError, {\n value: _onProviderError2\n });\n Object.defineProperty(this, _onProviderDisconnect, {\n value: _onProviderDisconnect2\n });\n Object.defineProperty(this, _onProviderConnect, {\n value: _onProviderConnect2\n });\n Object.defineProperty(this, _atLast, {\n writable: true,\n value: null\n });\n Object.defineProperty(this, _healthTimer, {\n writable: true,\n value: null\n });\n Object.defineProperty(this, _registries, {\n writable: true,\n value: []\n });\n Object.defineProperty(this, _updateSub, {\n writable: true,\n value: null\n });\n Object.defineProperty(this, _waitingRegistries, {\n writable: true,\n value: {}\n });\n this.registry.setKnownTypes(options); // 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\n if (!options.source) {\n this.registerTypes(options.types);\n } else {\n _classPrivateFieldLooseBase(this, _registries)[_registries] = _classPrivateFieldLooseBase(options.source, _registries)[_registries];\n }\n\n this._rpc = this._decorateRpc(this._rpcCore, this._decorateMethod);\n this._rx.rpc = this._decorateRpc(this._rpcCore, this._rxDecorateMethod);\n\n if (this.supportMulti) {\n this._queryMulti = this._decorateMulti(this._decorateMethod);\n this._rx.queryMulti = this._decorateMulti(this._rxDecorateMethod);\n }\n\n this._rx.signer = options.signer;\n\n this._rpcCore.setRegistrySwap(blockHash => this.getBlockRegistry(blockHash));\n\n this._rpcCore.setResolveBlockHash(blockNumber => firstValueFrom(this._rpcCore.chain.getBlockHash(blockNumber)));\n\n if (this.hasSubscriptions) {\n this._rpcCore.provider.on('disconnected', () => _classPrivateFieldLooseBase(this, _onProviderDisconnect)[_onProviderDisconnect]());\n\n this._rpcCore.provider.on('error', e => _classPrivateFieldLooseBase(this, _onProviderError)[_onProviderError](e));\n\n this._rpcCore.provider.on('connected', () => _classPrivateFieldLooseBase(this, _onProviderConnect)[_onProviderConnect]());\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 } // 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\n\n if (this._rpcCore.provider.isConnected) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _classPrivateFieldLooseBase(this, _onProviderConnect)[_onProviderConnect]();\n }\n }\n /**\n * @description Decorates a registry based on the runtime version\n */\n\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)); // for bundled types, pull through the aliases defined\n\n if (registry.knownTypes.typesBundle) {\n registry.knownTypes.typesAlias = getSpecAlias(registry, chain, version.specName);\n }\n\n registry.setMetadata(metadata, undefined, objectSpread({}, getSpecExtensions(registry, chain, version.specName), this._options.signedExtensions));\n }\n /**\n * @description Returns the default versioned registry\n */\n\n\n _getDefaultRegistry() {\n return assertReturn(_classPrivateFieldLooseBase(this, _registries)[_registries].find(({\n isDefault\n }) => 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\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\n if (!_classPrivateFieldLooseBase(this, _atLast)[_atLast] || _classPrivateFieldLooseBase(this, _atLast)[_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 _classPrivateFieldLooseBase(this, _atLast)[_atLast] = [u8aHex, this._createDecorated(registry, true, null, u8aHash).decoratedApi];\n }\n\n return _classPrivateFieldLooseBase(this, _atLast)[_atLast][1];\n }\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\n this._initRegistry(registry, this._runtimeChain, version, metadata); // add our new registry\n\n\n const result = {\n counter: 0,\n lastBlockHash: blockHash,\n metadata,\n registry,\n runtimeVersion: version\n };\n\n _classPrivateFieldLooseBase(this, _registries)[_registries].push(result);\n\n return result;\n }\n\n _cacheBlockRegistryProgress(key, creator) {\n // look for waiting resolves\n let waiting = _classPrivateFieldLooseBase(this, _waitingRegistries)[_waitingRegistries][key];\n\n if (isUndefined(waiting)) {\n // nothing waiting, construct new\n waiting = _classPrivateFieldLooseBase(this, _waitingRegistries)[_waitingRegistries][key] = new Promise((resolve, reject) => {\n creator().then(registry => {\n delete _classPrivateFieldLooseBase(this, _waitingRegistries)[_waitingRegistries][key];\n resolve(registry);\n }).catch(error => {\n delete _classPrivateFieldLooseBase(this, _waitingRegistries)[_waitingRegistries][key];\n reject(error);\n });\n });\n }\n\n return waiting;\n }\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 = _classPrivateFieldLooseBase(this, _registries)[_registries].find(({\n runtimeVersion: {\n specName,\n specVersion\n }\n }) => specName.eq(version.specName) && specVersion.eq(version.specVersion));\n\n if (existingViaVersion) {\n existingViaVersion.counter++;\n existingViaVersion.lastBlockHash = blockHash;\n return existingViaVersion;\n }\n }\n\n return null;\n }\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 } // 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\n\n const header = this.registry.createType('HeaderPartial', this._genesisHash.eq(blockHash) ? {\n number: BN_ZERO,\n parentHash: this._genesisHash\n } : await firstValueFrom(this._rpcCore.chain.getHeader.raw(blockHash)));\n\n if (header.parentHash.isEmpty) {\n throw new Error('Unable to retrieve header and parent from supplied hash');\n } // get the runtime version, either on-chain or via an known upgrade history\n\n\n const [firstVersion, lastVersion] = getUpgradeVersion(this._genesisHash, header.number);\n const version = this.registry.createType('RuntimeVersionPartial', WITH_VERSION_SHORTCUT && firstVersion && (lastVersion || firstVersion.specVersion.eq(this._runtimeVersion.specVersion)) ? {\n apis: firstVersion.apis,\n specName: this._runtimeVersion.specName,\n specVersion: firstVersion.specVersion\n } : await firstValueFrom(this._rpcCore.state.getRuntimeVersion.raw(header.parentHash)));\n return (// try to find via version\n this._getBlockRegistryViaVersion(blockHash, version) || ( // return new or in-flight result\n await this._cacheBlockRegistryProgress(version.toHex(), () => this._createBlockRegistry(blockHash, header, version)))\n );\n }\n /**\n * @description Sets up a registry based on the block hash defined\n */\n\n\n async getBlockRegistry(blockHash, knownVersion) {\n return (// try to find via blockHash\n _classPrivateFieldLooseBase(this, _registries)[_registries].find(({\n lastBlockHash\n }) => lastBlockHash && u8aEq(lastBlockHash, blockHash)) || // try to find via version\n this._getBlockRegistryViaVersion(blockHash, knownVersion) || ( // return new or in-flight result\n await this._cacheBlockRegistryProgress(u8aToHex(blockHash), () => this._getBlockRegistryViaHash(blockHash)))\n );\n }\n\n async _loadMeta() {\n var _this$_options$source;\n\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\n this._unsubscribeUpdates(); // 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\n\n [this._genesisHash, this._runtimeMetadata] = (_this$_options$source = this._options.source) !== null && _this$_options$source !== void 0 && _this$_options$source._isReady ? await this._metaFromSource(this._options.source) : await this._metaFromChain(this._options.metadata);\n return this._initFromMeta(this._runtimeMetadata);\n } // eslint-disable-next-line @typescript-eslint/require-await\n\n\n async _metaFromSource(source) {\n this._extrinsicType = source.extrinsicVersion;\n this._runtimeChain = source.runtimeChain;\n this._runtimeVersion = source.runtimeVersion; // 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\n const sections = Object.keys(source.rpc);\n const rpcs = [];\n\n for (let s = 0; s < sections.length; s++) {\n const section = sections[s];\n const methods = Object.keys(source.rpc[section]);\n\n for (let m = 0; m < methods.length; m++) {\n rpcs.push(`${section}_${methods[m]}`);\n }\n }\n\n this._filterRpc(rpcs, getSpecRpc(this.registry, source.runtimeChain, source.runtimeVersion.specName));\n\n return [source.genesisHash, source.runtimeMetadata];\n } // subscribe to metadata updates, inject the types on changes\n\n\n _subscribeUpdates() {\n if (_classPrivateFieldLooseBase(this, _updateSub)[_updateSub] || !this.hasSubscriptions) {\n return;\n }\n\n _classPrivateFieldLooseBase(this, _updateSub)[_updateSub] = this._rpcCore.state.subscribeRuntimeVersion().pipe(switchMap(version => {\n var _this$_runtimeVersion;\n\n return (// only retrieve the metadata when the on-chain version has been changed\n (_this$_runtimeVersion = this._runtimeVersion) !== null && _this$_runtimeVersion !== void 0 && _this$_runtimeVersion.specVersion.eq(version.specVersion) ? of(false) : 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; // update the default registry version\n\n const thisRegistry = this._getDefaultRegistry(); // setup the data as per the current versions\n\n\n thisRegistry.metadata = metadata;\n thisRegistry.runtimeVersion = version;\n\n this._initRegistry(this.registry, this._runtimeChain, version, metadata);\n\n this._injectMetadata(thisRegistry, true);\n\n return true;\n }))\n );\n })).subscribe();\n }\n\n async _metaFromChain(optMetadata) {\n const [genesisHash, runtimeVersion, chain, chainProps, rpcMethods, chainMetadata] = await Promise.all([firstValueFrom(this._rpcCore.chain.getBlockHash(0)), firstValueFrom(this._rpcCore.state.getRuntimeVersion()), firstValueFrom(this._rpcCore.system.chain()), firstValueFrom(this._rpcCore.system.properties()), firstValueFrom(this._rpcCore.rpc.methods()), optMetadata ? Promise.resolve(null) : firstValueFrom(this._rpcCore.state.getMetadata())]); // set our chain version & genesisHash as returned\n\n this._runtimeChain = chain;\n this._runtimeVersion = runtimeVersion;\n this._rx.runtimeVersion = runtimeVersion; // retrieve metadata, either from chain or as pass-in via options\n\n const metadataKey = `${genesisHash.toHex() || '0x'}-${runtimeVersion.specVersion.toString()}`;\n const metadata = chainMetadata || (optMetadata && optMetadata[metadataKey] ? new Metadata(this.registry, optMetadata[metadataKey]) : await firstValueFrom(this._rpcCore.state.getMetadata())); // initializes the registry & RPC\n\n this._initRegistry(this.registry, chain, runtimeVersion, metadata, chainProps);\n\n this._filterRpc(rpcMethods.methods.map(textToString), getSpecRpc(this.registry, chain, runtimeVersion.specName));\n\n this._subscribeUpdates(); // setup the initial registry, when we have none\n\n\n if (!_classPrivateFieldLooseBase(this, _registries)[_registries].length) {\n _classPrivateFieldLooseBase(this, _registries)[_registries].push({\n counter: 0,\n isDefault: true,\n metadata,\n registry: this.registry,\n runtimeVersion\n });\n } // get unique types & validate\n\n\n metadata.getUniqTypes(this._options.throwOnUnknown || false);\n return [genesisHash, metadata];\n }\n\n _initFromMeta(metadata) {\n this._extrinsicType = metadata.asLatest.extrinsic.version.toNumber();\n this._rx.extrinsicType = this._extrinsicType;\n this._rx.genesisHash = this._genesisHash;\n this._rx.runtimeVersion = this._runtimeVersion; // must be set here\n // inject metadata and adjust the types as detected\n\n this._injectMetadata(this._getDefaultRegistry(), true); // derive is last, since it uses the decorated rx\n\n\n this._rx.derive = this._decorateDeriveRx(this._rxDecorateMethod);\n this._derive = this._decorateDerive(this._decorateMethod);\n return true;\n }\n\n _subscribeHealth() {\n // Only enable the health keepalive on WS, not needed on HTTP\n _classPrivateFieldLooseBase(this, _healthTimer)[_healthTimer] = this.hasSubscriptions ? setInterval(() => {\n firstValueFrom(this._rpcCore.system.health.raw()).catch(() => undefined);\n }, KEEPALIVE_INTERVAL) : null;\n }\n\n _unsubscribeHealth() {\n if (_classPrivateFieldLooseBase(this, _healthTimer)[_healthTimer]) {\n clearInterval(_classPrivateFieldLooseBase(this, _healthTimer)[_healthTimer]);\n _classPrivateFieldLooseBase(this, _healthTimer)[_healthTimer] = null;\n }\n }\n\n _unsubscribeUpdates() {\n if (_classPrivateFieldLooseBase(this, _updateSub)[_updateSub]) {\n _classPrivateFieldLooseBase(this, _updateSub)[_updateSub].unsubscribe();\n\n _classPrivateFieldLooseBase(this, _updateSub)[_updateSub] = null;\n }\n }\n\n _unsubscribe() {\n this._unsubscribeHealth();\n\n this._unsubscribeUpdates();\n }\n\n}\n\nasync function _onProviderConnect2() {\n this._isConnected.next(true);\n\n this.emit('connected');\n\n try {\n const cryptoReady = this._options.initWasm === false ? true : await cryptoWaitReady();\n const hasMeta = await this._loadMeta();\n\n this._subscribeHealth();\n\n if (hasMeta && !this._isReady && cryptoReady) {\n this._isReady = true;\n this.emit('ready', this);\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\nfunction _onProviderDisconnect2() {\n this._isConnected.next(false);\n\n this._unsubscribeHealth();\n\n this.emit('disconnected');\n}\n\nfunction _onProviderError2(error) {\n this.emit('error', error);\n}","// Copyright 2017-2022 @polkadot/util-crypto authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { isReady, waitReady } from '@polkadot/wasm-crypto';\nexport const cryptoIsReady = isReady;\nexport function cryptoWaitReady() {\n return waitReady().then(() => {\n if (!isReady()) {\n throw new Error('Unable to initialize @polkadot/util-crypto');\n }\n\n return true;\n }).catch(() => false);\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { packageInfo } from \"../packageInfo.js\";\nimport { findCall, findError } from \"./find.js\";\nimport { Init } from \"./Init.js\";\n\nfunction assertResult(value) {\n if (value === undefined) {\n throw new Error(\"Api interfaces needs to be initialized before using, wait for 'isReady'\");\n }\n\n return value;\n}\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 *
\n *\n * ```javascript\n * console.log(api.consts.democracy.enactmentPeriod.toString())\n * ```\n */\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 *
\n *\n * ```javascript\n * api.derive.chain.bestNumber((number) => {\n * console.log('best number', number);\n * });\n * ```\n */\n\n\n get derive() {\n return assertResult(this._derive);\n }\n /**\n * @description Errors from metadata\n */\n\n\n get errors() {\n return assertResult(this._errors);\n }\n /**\n * @description Events from metadata\n */\n\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\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\n\n get genesisHash() {\n return assertResult(this._genesisHash);\n }\n /**\n * @description true is the underlying provider is connected\n */\n\n\n get isConnected() {\n return this._isConnected.getValue();\n }\n /**\n * @description The library information name & version (from package.json)\n */\n\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()` (retrieving the associated nonce & balances for an account), takes the `AccountId` as a parameter.\n *\n * @example\n *
\n *\n * ```javascript\n * api.query.system.account(, ([nonce, balance]) => {\n * console.log('new free balance', balance.free, 'new nonce', nonce);\n * });\n * ```\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 *
\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\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 *
\n *\n * ```javascript\n * api.rpc.chain.subscribeNewHeads((header) => {\n * console.log('new header', header);\n * });\n * ```\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\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\n\n get runtimeMetadata() {\n return assertResult(this._runtimeMetadata);\n }\n /**\n * @description Contains the version information for the current runtime.\n */\n\n\n get runtimeVersion() {\n return assertResult(this._runtimeVersion);\n }\n /**\n * @description The underlying Rx API interface\n */\n\n\n get rx() {\n return assertResult(this._rx);\n }\n /**\n * @description Returns the underlying provider stats\n */\n\n\n get stats() {\n return this._rpcCore.provider.stats;\n }\n /**\n * @description The type of this API instance, either 'rxjs' or 'promise'\n */\n\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 *
\n *\n * ```javascript\n * api.tx.balances\n * .transfer(, )\n * .signAndSend(, ({status}) => {\n * console.log('tx status', status.asFinalized.toHex());\n * });\n * ```\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\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\n\n findError(errorIndex) {\n return findError(this.registry, errorIndex);\n }\n\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nexport function toRxMethod(method) {\n return method;\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { from } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { ApiBase } from \"../base/index.js\";\nimport { toRxMethod } from \"./decorateMethod.js\";\n/**\n * # @polkadot/api/rx\n *\n * ## Overview\n *\n * @name ApiRx\n *\n * @description\n * ApiRx is a powerful RxJS Observable wrapper around the RPC and interfaces on the Polkadot network. As a full Observable API, all interface calls return RxJS Observables, including the static `.create(...)`. In the same fashion and subscription-based methods return long-running Observables that update with the latest values.\n *\n * The API is well suited to real-time applications where the latest state is needed, unlocking the subscription-based features of Polkadot (and Substrate) clients. Some familiarity with RxJS is a requirement to use the API, however just understanding `.subscribe` and `.pipe` on Observables will unlock full-scale use thereof.\n *\n * @see [[ApiPromise]]\n *\n * ## Usage\n *\n * Making rpc calls -\n *
\n *\n * ```javascript\n * import ApiRx from '@polkadot/api/rx';\n *\n * // initialize via Promise & static create\n * const api = await ApiRx.create().toPromise();\n *\n * // make a call to retrieve the current network head\n * api.rpc.chain.subscribeNewHeads().subscribe((header) => {\n * console.log(`Chain is at #${header.number}`);\n * });\n * ```\n *
\n *\n * Subscribing to chain state -\n *
\n *\n * ```javascript\n * import { combineLatest, pairwise, switchMap } from 'rxjs';\n * import { ApiRx, WsProvider } from '@polkadot/api';\n *\n *\n * // initialize a provider with a specific endpoint\n * const provider = new WsProvider('wss://example.com:9944')\n *\n * // initialize via isReady & new with specific provider\n * new ApiRx({ provider })\n * .isReady\n * .pipe(\n * switchMap((api) =>\n * combineLatest([\n * api.query.timestamp.blockPeriod(),\n * api.query.timestamp.now().pipe(pairwise())\n * ])\n * )\n * )\n * .subscribe(([blockPeriod, timestamp]) => {\n * const elapsed = timestamp[1].toNumber() - timestamp[0].toNumber();\n * console.log(`timestamp ${timestamp[1]} \\nelapsed ${elapsed} \\n(${blockPeriod}s target)`);\n * });\n * ```\n *
\n *\n * Submitting a transaction -\n *
\n *\n * ```javascript\n * import { first, switchMap } from 'rxjs';\n * import ApiRx from '@polkadot/api/rx';\n *\n * // import the test keyring (already has dev keys for Alice, Bob, Charlie, Eve & Ferdie)\n * import testingPairs from '@polkadot/keyring/testingPairs';\n * const keyring = testingPairs();\n *\n * // get api via Promise\n * const api = await ApiRx.create().toPromise();\n *\n * // retrieve nonce for the account\n * api.query.system\n * .account(keyring.alice.address)\n * .pipe(\n * first(),\n * // pipe nonce into transfer\n * switchMap(([nonce]) =>\n * api.tx.balances\n * // create transfer\n * .transfer(keyring.bob.address, 12345)\n * // sign the transaction\n * .sign(keyring.alice, { nonce })\n * // send the transaction\n * .send()\n * )\n * )\n * // subscribe to overall result\n * .subscribe(({ status }) => {\n * if (status.isInBlock) {\n * console.log('Completed at block hash', status.asFinalized.toHex());\n * }\n * });\n * ```\n */\n\nexport class ApiRx extends ApiBase {\n #isReadyRx;\n /**\n * @description Create an instance of the ApiRx class\n * @param options Options to create an instance. Can be either [[ApiOptions]] or [[WsProvider]]\n * @example\n *
\n *\n * ```javascript\n * import { switchMap } from 'rxjs';\n * import Api from '@polkadot/api/rx';\n *\n * new Api().isReady\n * .pipe(\n * switchMap((api) =>\n * api.rpc.chain.subscribeNewHeads()\n * ))\n * .subscribe((header) => {\n * console.log(`new block #${header.number.toNumber()}`);\n * });\n * ```\n */\n\n constructor(options) {\n super(options, 'rxjs', toRxMethod);\n this.#isReadyRx = from( // You can create an observable from an event, however my mind groks this form better\n new Promise(resolve => {\n super.on('ready', () => resolve(this));\n }));\n }\n /**\n * @description Creates an ApiRx instance using the supplied provider. Returns an Observable containing the actual Api instance.\n * @param options options that is passed to the class constructor. Can be either [[ApiOptions]] or [[WsProvider]]\n * @example\n *
\n *\n * ```javascript\n * import { switchMap } from 'rxjs';\n * import Api from '@polkadot/api/rx';\n *\n * Api.create()\n * .pipe(\n * switchMap((api) =>\n * api.rpc.chain.subscribeNewHeads()\n * ))\n * .subscribe((header) => {\n * console.log(`new block #${header.number.toNumber()}`);\n * });\n * ```\n */\n\n\n static create(options) {\n return new ApiRx(options).isReady;\n }\n /**\n * @description Observable that returns the first time we are connected and loaded\n */\n\n\n get isReady() {\n return this.#isReadyRx;\n }\n /**\n * @description Returns a clone of this ApiRx instance (new underlying provider connection)\n */\n\n\n clone() {\n return new ApiRx(objectSpread({}, this._options, {\n source: this\n }));\n }\n\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 *
\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\n\n connect() {\n return this._rpcCore.connect();\n }\n /**\n * @description Disconnect from the underlying provider, halting all network traffic\n */\n\n\n disconnect() {\n this._unsubscribe();\n\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\n\n setSigner(signer) {\n this._rx.signer = signer;\n }\n /**\n * @description Signs a raw signer payload, string or Uint8Array\n */\n\n\n async sign(address, data, {\n signer\n } = {}) {\n if (isString(address)) {\n const _signer = signer || this._rx.signer;\n\n if (!_signer || !_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\n return (await _signer.signRaw(objectSpread({\n type: 'bytes'\n }, data, {\n address\n }))).signature;\n }\n\n return u8aToHex(address.sign(u8aToU8a(data.data)));\n }\n\n}","// Copyright 2017-2022 @polkadot/api authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport EventEmitter from 'eventemitter3';\nexport class Events {\n #eventemitter = new EventEmitter();\n\n emit(type, ...args) {\n return this.#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 *
\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\n\n on(type, handler) {\n this.#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 *
\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\n\n off(type, handler) {\n this.#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 *
\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\n\n once(type, handler) {\n this.#eventemitter.once(type, handler);\n return this;\n }\n\n}","// Copyright 2017-2022 @polkadot/types authors & contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { 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 */\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\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 };","const definitions = {\n rpc: {\n setKeys: {\n description: \"Set session keys to the node\",\n params: [{ name: \"session_keys\", type: \"Bytes\" }],\n type: \"Null\",\n },\n },\n types: {},\n};\n\nexport default definitions;\n","const definitions = {\n types: {\n FacetecDeviceSdkParams: {\n deviceKeyIdentifier: \"Text\",\n publicFaceMapEncryptionKey: \"Text\",\n productionKey: \"Option\",\n },\n LivenessData: {\n faceScan: \"Text\",\n auditTrailImage: \"Text\",\n lowQualityAuditTrailImage: \"Text\",\n },\n UnixMilliseconds: \"u64\",\n BioauthStatusActive: {\n expiresAt: \"UnixMilliseconds\",\n },\n BioauthStatus: {\n _enum: {\n Unknown: null,\n Inactive: null,\n Active: \"BioauthStatusActive\",\n },\n },\n },\n rpc: {\n getFacetecDeviceSdkParams: {\n description: \"Get FaceTec device sdk params\",\n params: [],\n type: \"FacetecDeviceSdkParams\",\n },\n provideLivenessData: {\n description: \"Provide the liveness data to the node\",\n params: [{ name: \"liveness_data\", type: \"LivenessData\" }],\n type: \"Null\",\n },\n enroll: {\n description: \"Enroll with the provided liveness data\",\n params: [{ name: \"liveness_data\", type: \"LivenessData\" }],\n type: \"Null\",\n },\n authenticate: {\n description: \"Authenticate with the provided liveness data\",\n params: [{ name: \"liveness_data\", type: \"LivenessData\" }],\n type: \"Null\",\n },\n getFacetecSessionToken: {\n description: \"Get FaceTec session token\",\n params: [],\n type: \"Text\",\n },\n status: {\n description: \"Rpc method to get bioauth status\",\n params: [],\n type: \"BioauthStatus\",\n },\n },\n};\n\nexport default definitions;\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\n\n/**\n * Creates an observable that will wait for a specified time period, or exact date, before\n * emitting the number 0.\n *\n * Used to emit a notification after a delay.\n *\n * This observable is useful for creating delays in code, or racing against other values\n * for ad-hoc timeouts.\n *\n * The `delay` is specified by default in milliseconds, however providing a custom scheduler could\n * create a different behavior.\n *\n * ## Examples\n *\n * Wait 3 seconds and start another observable\n *\n * You might want to use `timer` to delay subscription to an\n * observable by a set amount of time. Here we use a timer with\n * {@link concatMapTo} or {@link concatMap} in order to wait\n * a few seconds and start a subscription to a source.\n *\n * ```ts\n * import { of, timer, concatMap } from 'rxjs';\n *\n * // This could be any observable\n * const source = of(1, 2, 3);\n *\n * timer(3000)\n * .pipe(concatMap(() => source))\n * .subscribe(console.log);\n * ```\n *\n * Take all values until the start of the next minute\n *\n * Using a `Date` as the trigger for the first emission, you can\n * do things like wait until midnight to fire an event, or in this case,\n * wait until a new minute starts (chosen so the example wouldn't take\n * too long to run) in order to stop watching a stream. Leveraging\n * {@link takeUntil}.\n *\n * ```ts\n * import { interval, takeUntil, timer } from 'rxjs';\n *\n * // Build a Date object that marks the\n * // next minute.\n * const currentDate = new Date();\n * const startOfNextMinute = new Date(\n * currentDate.getFullYear(),\n * currentDate.getMonth(),\n * currentDate.getDate(),\n * currentDate.getHours(),\n * currentDate.getMinutes() + 1\n * );\n *\n * // This could be any observable stream\n * const source = interval(1000);\n *\n * const result = source.pipe(\n * takeUntil(timer(startOfNextMinute))\n * );\n *\n * result.subscribe(console.log);\n * ```\n *\n * ### Known Limitations\n *\n * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled.\n *\n * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and\n * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission\n * should occur will be incorrect. In this case, it would be best to do your own calculations\n * ahead of time, and pass a `number` in as the `dueTime`.\n *\n * @param due If a `number`, the amount of time in milliseconds to wait before emitting.\n * If a `Date`, the exact time at which to emit.\n * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}.\n */\nexport function timer(due: number | Date, scheduler?: SchedulerLike): Observable<0>;\n\n/**\n * Creates an observable that starts an interval after a specified delay, emitting incrementing numbers -- starting at `0` --\n * on each interval after words.\n *\n * The `delay` and `intervalDuration` are specified by default in milliseconds, however providing a custom scheduler could\n * create a different behavior.\n *\n * ## Example\n *\n * ### Start an interval that starts right away\n *\n * Since {@link interval} waits for the passed delay before starting,\n * sometimes that's not ideal. You may want to start an interval immediately.\n * `timer` works well for this. Here we have both side-by-side so you can\n * see them in comparison.\n *\n * Note that this observable will never complete.\n *\n * ```ts\n * import { timer, interval } from 'rxjs';\n *\n * timer(0, 1000).subscribe(n => console.log('timer', n));\n * interval(1000).subscribe(n => console.log('interval', n));\n * ```\n *\n * ### Known Limitations\n *\n * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled.\n *\n * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and\n * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission\n * should occur will be incorrect. In this case, it would be best to do your own calculations\n * ahead of time, and pass a `number` in as the `startDue`.\n * @param startDue If a `number`, is the time to wait before starting the interval.\n * If a `Date`, is the exact time at which to start the interval.\n * @param intervalDuration The delay between each value emitted in the interval. Passing a\n * negative number here will result in immediate completion after the first value is emitted, as though\n * no `intervalDuration` was passed at all.\n * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}.\n */\nexport function timer(startDue: number | Date, intervalDuration: number, scheduler?: SchedulerLike): Observable;\n\n/**\n * @deprecated The signature allowing `undefined` to be passed for `intervalDuration` will be removed in v8. Use the `timer(dueTime, scheduler?)` signature instead.\n */\nexport function timer(dueTime: number | Date, unused: undefined, scheduler?: SchedulerLike): Observable<0>;\n\nexport function timer(\n dueTime: number | Date = 0,\n intervalOrScheduler?: number | SchedulerLike,\n scheduler: SchedulerLike = asyncScheduler\n): Observable {\n // Since negative intervalDuration is treated as though no\n // interval was specified at all, we start with a negative number.\n let intervalDuration = -1;\n\n if (intervalOrScheduler != null) {\n // If we have a second argument, and it's a scheduler,\n // override the scheduler we had defaulted. Otherwise,\n // it must be an interval.\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n } else {\n // Note that this *could* be negative, in which case\n // it's like not passing an intervalDuration at all.\n intervalDuration = intervalOrScheduler;\n }\n }\n\n return new Observable((subscriber) => {\n // If a valid date is passed, calculate how long to wait before\n // executing the first value... otherwise, if it's a number just schedule\n // that many milliseconds (or scheduler-specified unit size) in the future.\n let due = isValidDate(dueTime) ? +dueTime - scheduler!.now() : dueTime;\n\n if (due < 0) {\n // Ensure we don't schedule in the future.\n due = 0;\n }\n\n // The incrementing value we emit.\n let n = 0;\n\n // Start the timer.\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n // Emit the next value and increment.\n subscriber.next(n++);\n\n if (0 <= intervalDuration) {\n // If we have a interval after the initial timer,\n // reschedule with the period.\n this.schedule(undefined, intervalDuration);\n } else {\n // We didn't have an interval. So just complete.\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n","/**\n * Checks to see if a value is not only a `Date` object,\n * but a *valid* `Date` object that can be converted to a\n * number. For example, `new Date('blah')` is indeed an\n * `instanceof Date`, however it cannot be converted to a\n * number.\n */\nexport function isValidDate(value: any): value is Date {\n return value instanceof Date && !isNaN(value as any);\n}\n","import type { StateVariant } from \"@tagged-state/core\";\nimport type { ContextComponentGuardProps } from \"@tagged-state/react\";\nimport Guard from \"@tagged-state/react/dist/ComponentGuard\";\nimport { useSubscription } from \"observable-hooks\";\nimport { useState } from \"react\";\nimport { BehaviorSubject, interval, startWith } from \"rxjs\";\n\ninterface Health {\n isSyncing: {\n isTrue: boolean;\n };\n}\n\nexport type State =\n | StateVariant<\"uninit\">\n | StateVariant<\"syncing\">\n | StateVariant<\"synced\">\n | StateVariant<\"error\", { error: Error }>;\n\nconst initialTaggedState: State = {\n tag: \"uninit\",\n data: {},\n};\nconst subject = new BehaviorSubject(initialTaggedState);\n\nexport type OnState = (taggedState: State) => void;\n\nexport const useSyncStateSubscription = (callback: OnState) => {\n useSubscription(subject, callback);\n};\n\nexport const setTaggedState = (state: State) => subject.next(state);\n\nconst interval$ = interval(1000).pipe(startWith(0));\n\ntype Params = {\n systemHealth: () => Promise;\n};\nconst useSyncState = (params: Params) => {\n const { systemHealth } = params;\n\n useSubscription(interval$, async () => {\n try {\n const health = await systemHealth();\n const isSyncing = health.isSyncing.isTrue;\n\n if (isSyncing) {\n setTaggedState({\n tag: \"syncing\",\n data: {},\n });\n return;\n }\n\n setTaggedState({\n tag: \"synced\",\n data: {},\n });\n } catch (error) {\n setTaggedState({\n tag: \"error\",\n data: { error: error as Error },\n });\n }\n });\n\n return null;\n};\n\nexport const SyncStateGuard: React.FC<\n ContextComponentGuardProps\n> = (props) => {\n const [syncState, setSyncState] = useState(initialTaggedState);\n\n useSyncStateSubscription(\n (newState) => newState.tag !== syncState.tag && setSyncState(newState)\n );\n\n return ;\n};\n\nexport default useSyncState;\n","import { Observable } from '../Observable';\nimport { asyncScheduler } from '../scheduler/async';\nimport { SchedulerLike } from '../types';\nimport { timer } from './timer';\n\n/**\n * Creates an Observable that emits sequential numbers every specified\n * interval of time, on a specified {@link SchedulerLike}.\n *\n * Emits incremental numbers periodically in time.\n *\n * ![](interval.png)\n *\n * `interval` returns an Observable that emits an infinite sequence of\n * ascending integers, with a constant interval of time of your choosing\n * between those emissions. The first emission is not sent immediately, but\n * only after the first period has passed. By default, this operator uses the\n * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any\n * {@link SchedulerLike} to it.\n *\n * ## Example\n *\n * Emits ascending numbers, one every second (1000ms) up to the number 3\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const numbers = interval(1000);\n *\n * const takeFourNumbers = numbers.pipe(take(4));\n *\n * takeFourNumbers.subscribe(x => console.log('Next: ', x));\n *\n * // Logs:\n * // Next: 0\n * // Next: 1\n * // Next: 2\n * // Next: 3\n * ```\n *\n * @see {@link timer}\n * @see {@link delay}\n *\n * @param {number} [period=0] The interval size in milliseconds (by default)\n * or the time unit determined by the scheduler's clock.\n * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a sequential number each time\n * interval.\n */\nexport function interval(period = 0, scheduler: SchedulerLike = asyncScheduler): Observable {\n if (period < 0) {\n // We cannot schedule an interval in the past.\n period = 0;\n }\n\n return timer(period, period, scheduler);\n}\n","import { PropsWithChildren, useEffect, useState } from \"react\";\nimport type { InjectedExtension } from \"@polkadot/extension-inject/types\";\nimport { RequirementsContext, State } from \"./state\";\n\ntype RequirementsInitProps = PropsWithChildren & {\n substrateEnable: () => Promise;\n};\nconst RequirementsInit: React.FC = (props) => {\n const { children, substrateEnable } = props;\n const [value, setValue] = useState({\n tag: \"uninit\",\n data: {},\n });\n\n useEffect(() => {\n substrateEnable().then((extension) => {\n if (extension) {\n setValue({ tag: \"ready\", data: { extension } });\n return;\n }\n setValue({ tag: \"substrateExtensionMissing\", data: {} });\n });\n }, [substrateEnable]);\n\n return ;\n};\n\nexport default RequirementsInit;\n","import { Alert, CircularProgress, Typography } from \"@mui/material\";\nimport { Stack } from \"@mui/system\";\nimport type { ApiRx } from \"@polkadot/api\";\nimport { isHexString } from \"ethers/lib/utils\";\nimport { FormikHelpers } from \"formik\";\nimport React, {\n PropsWithChildren,\n useCallback,\n useMemo,\n useState,\n} from \"react\";\nimport ApiConnectionSettingLayer from \"../components/ApiConnectionSettingLayer\";\nimport FormComponent, { FormValues } from \"../components/Form\";\nimport useSetupDefaultConnectionUrl from \"../hooks/useSetupDefaultConnectionUrl\";\nimport { substrateEnable } from \"../lib/wallet/substrate/provider\";\nimport ApiInit from \"../subsystem/api/ApiInit\";\nimport { ApiGuard, useApi } from \"../subsystem/api/state\";\nimport { createApi, createProvider } from \"../subsystem/humanodePeerApi/api\";\nimport useSyncState, {\n SyncStateGuard,\n} from \"../subsystem/humanodePeerApi/rpcControllers/useSyncState\";\nimport { systemHealth } from \"../subsystem/humanodePeerApi/wrappers\";\nimport * as typedLocalStorage from \"../subsystem/localStorage\";\nimport RequirementsInit from \"../subsystem/requirements/RequirementsInit\";\nimport { RequirementsGuard } from \"../subsystem/requirements/state\";\nimport textsOnPage from \"../textsOnPage\";\nimport ErrorPage from \"./ErrorPage\";\nimport Layout from \"./Layout\";\n\ntype HexString = `0x${string}`;\n\nconst IsNotSupportedPeer: React.FC = () => (\n \n \n \n \n Established connection to the peer.\n \n \n Peer doesn't have a suitable API, please choose the supported peer.\n \n \n \n \n);\n\nconst RequirementsInitializing: React.FC = () => (\n \n \n Checking requirements\n \n);\n\nconst SubstrateExtensionMissing: React.FC = () => (\n \n Polkadot.js extension missing\n \n);\n\nconst ApiLoadingPage: React.FC = () => (\n \n \n \n Initializing api connection\n \n \n);\n\nconst ApiEstablishingPage: React.FC = () => (\n \n \n \n Connecting to the peer\n \n Waiting to make a connection to the remote endpoint and finishing API\n initialization.\n \n \n Ensure that your node is running, synced and that the Websocket endpoint\n is reachable.\n \n \n \n);\n\nconst ApiDisconnectedPage: React.FC = () => (\n \n \n \n Lost connection to the peer\n \n You are not connected to a node. Ensure that your node is running and\n that the Websocket endpoint is reachable.\n \n \n \n);\n\nconst Requirements: React.FC = (props) => {\n const { children } = props;\n\n const ready = useMemo(() => <>{children}, [children]);\n\n return (\n \n }\n substrateExtensionMissing={}\n ready={ready}\n />\n \n );\n};\n\nconst ApiConnector: React.FC = (props) => {\n const { children } = props;\n const [connectionUrl, setConnectionUrl] = useState(\n typedLocalStorage.getItem(\"connectionUrl\")\n );\n\n const handleSetConnectionUrl = useCallback((newConnectionUrl: string) => {\n if (!newConnectionUrl) return;\n\n typedLocalStorage.setItem(\"connectionUrl\", newConnectionUrl);\n setConnectionUrl(newConnectionUrl);\n }, []);\n\n const builder = useCallback(() => {\n if (!connectionUrl) throw new Error(\"connection url is not set\");\n\n const provider = createProvider(connectionUrl);\n const api = createApi({ provider, throwOnConnect: true });\n\n return { provider, api };\n }, [connectionUrl]);\n\n const ready = useCallback(() => <>{children}, [children]);\n\n return (\n \n \n \n );\n};\n\nconst isSupportedPeerVersion = (api: ApiRx): boolean =>\n api.tx.tokenClaims !== undefined;\n\nconst CheckPeerVersion: React.FC = (props) => {\n const { children } = props;\n const { api } = useApi();\n const supportedPeerVersion = useMemo(\n () => isSupportedPeerVersion(api),\n [api]\n );\n\n const synced = useCallback(() => <>{children}, [children]);\n\n const systemHealthHandler = useCallback(() => systemHealth(api), [api]);\n\n useSyncState({\n systemHealth: systemHealthHandler,\n });\n\n return supportedPeerVersion ? (\n \n ) : (\n \n );\n};\n\nconst CommonBoundary: React.FC = (props) => {\n const { children } = props;\n\n useSetupDefaultConnectionUrl();\n\n return (\n \n \n {children}\n \n \n );\n};\n\nconst initialFormValues: FormValues = {\n ethereum: {},\n substrate: {},\n manual: {},\n eip712: {},\n claimingEvents: [],\n nothingToClaim: false,\n formParams: {\n activeStep: 0,\n complete: false,\n showLogs: false,\n tabIndex: window.ethereum ? 0 : 1,\n },\n};\n\nconst validate = (values: FormValues) => {\n const {\n manual,\n eip712,\n formParams: { tabIndex },\n } = values;\n const requiredHexFormat = (value?: string | HexString, length?: number) =>\n value && !isHexString(value, length);\n\n if (tabIndex === 1) {\n if (requiredHexFormat(eip712.ethereumAddress, 20)) {\n return {\n eip712: {\n ethereumAddress: textsOnPage.form.validation.eip712.ethereumAddress,\n },\n };\n }\n if (requiredHexFormat(eip712.signature, 65)) {\n return {\n eip712: { signature: textsOnPage.form.validation.eip712.signature },\n };\n }\n }\n if (tabIndex === 2) {\n if (requiredHexFormat(manual.ethereumAddress, 20)) {\n return {\n manual: {\n ethereumAddress: textsOnPage.form.validation.manual.ethereumAddress,\n },\n };\n }\n if (requiredHexFormat(manual.signature, 65)) {\n return {\n manual: { signature: textsOnPage.form.validation.manual.signature },\n };\n }\n }\n};\n\nconst onSubmit = async (\n values: FormValues,\n { setFieldValue }: FormikHelpers\n) => {\n if (values.formParams.activeStep >= 4) return;\n\n setFieldValue(\"formParams.activeStep\", values.formParams.activeStep + 1);\n};\n\nconst FormPage: React.FC = () => (\n \n \n \n);\n\nexport default FormPage;\n","import { ApiRx, HttpProvider, WsProvider } from \"@polkadot/api\";\nimport type { ApiOptions } from \"@polkadot/api/types\";\nimport type { ProviderInterface } from \"@polkadot/rpc-provider/types\";\nimport type { Observable } from \"rxjs\";\nimport * as definitions from \"../../interfaces/generated/definitions\";\n\nexport const createProvider = (url: string): ProviderInterface => {\n if (url.startsWith(\"ws://\") || url.startsWith(\"wss://\")) {\n return new WsProvider(url);\n }\n return new HttpProvider(url);\n};\n\nexport const createApi = (\n options: Pick\n): Observable => {\n const types = Object.values(definitions).reduce(\n (res, { types }) => ({ ...res, ...types }),\n {}\n );\n const rpc = Object.entries(definitions).reduce(\n (res, [name, { rpc }]) => ({ ...res, [name]: rpc }),\n {}\n );\n\n try {\n return ApiRx.create({\n ...options,\n types,\n rpc,\n });\n } catch (error) {\n if (error instanceof Event) {\n if (error.target instanceof WebSocket) {\n throw new Error(`Unable to connect to ${error.target.url}`);\n }\n\n throw new Error(\n `Unexpected error event target ${JSON.stringify(error.target)}`\n );\n }\n\n throw error;\n }\n};\n","import { Button, Stack, Typography } from \"@mui/material\";\nimport { useMemo } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useConfig } from \"../subsystem/config/state\";\nimport Layout from \"./Layout\";\n\nconst GreetingsPage: React.FC = () => {\n const { environment } = useConfig();\n\n const Content = useMemo(\n () =>\n environment === \"testnet\" ? (\n \n \n Welcome human nodes and friends!\n \n \n Thanks for joining the claim tests.\n \n \n Here you will be able to test out and prepare yourselves for the\n real claimsthat will happen at TGE.\n \n \n You will also be bringing a tremendous value to our devs as they'd\n be able to iron out all the bugs that might pop up!\n \n \n Keep in mind that the cliff and vesting periods are already attached\n to respective wallets and are calculated from the genesis not from\n the claim itself!\n \n \n ) : (\n \n \n Welcome human nodes and friends!\n \n \n Thanks for setting forth on this journey with us.\n \n \n Here you will be able to claim your long-awaited tokens.\n \n \n Keep in mind that the cliff and vesting periods are already attached\n to respective wallets and are calculated from the genesis not from\n the claim itself!\n \n \n ),\n [environment]\n );\n\n return (\n \n \n {Content}\n \n \n \n );\n};\n\nexport default GreetingsPage;\n","import PropTypes from 'prop-types';\nimport createContainer from './createContainer';\n/**\n *\n * Demos:\n *\n * - [Container (Material UI)](https://mui.com/material-ui/react-container/)\n * - [Container (MUI System)](https://mui.com/system/react-container/)\n *\n * API:\n *\n * - [Container API](https://mui.com/system/api/container/)\n */\n\nconst Container = createContainer();\nprocess.env.NODE_ENV !== \"production\" ? Container.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * @ignore\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * Set the max-width to match the min-width of the current breakpoint.\n * This is useful if you'd prefer to design for a fixed set of sizes\n * instead of trying to accommodate a fully fluid viewport.\n * It's fluid by default.\n * @default false\n */\n fixed: PropTypes.bool,\n\n /**\n * Determine the max-width of the container.\n * The container width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'lg'\n */\n maxWidth: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Container;","import { Typography } from \"@mui/material\";\nimport { Container } from \"@mui/system\";\nimport Layout from \"./Layout\";\n\nconst NotFoundPage: React.FC = () => (\n \n \n \n Code: 404, Page not found\n \n \n \n);\n\nexport default NotFoundPage;\n","import { CircularProgress, Typography } from \"@mui/material\";\nimport type { PropsWithChildren } from \"react\";\nimport { Route, Routes } from \"react-router\";\nimport ErrorPage from \"../pages/ErrorPage\";\nimport FormPage from \"../pages/FormPage\";\nimport GreetingsPage from \"../pages/GreetingsPage\";\nimport Layout from \"../pages/Layout\";\nimport NotFoundPage from \"../pages/NotFoundPage\";\nimport { ConfigGuard, useConfigError } from \"../subsystem/config/state\";\n\nconst ConfigInitializing: React.FC = () => (\n \n \n Loading the configuration file\n \n);\n\nconst ErrorConfig = () => {\n const { error } = useConfigError();\n return ;\n};\n\nconst WithConfig: React.FC = ({ children }) => (\n }\n pending={}\n error={}\n ready={<>{children}}\n />\n);\n\nconst Root: React.FC = () => (\n \n \n } />\n } />\n } />\n \n \n);\n\nexport default Root;\n","import { BrowserRouter } from \"react-router-dom\";\nimport ErrorBoundary from \"../components/ErrorBoundary\";\nimport ErrorPage from \"../pages/ErrorPage\";\nimport ConfigInit from \"../subsystem/config/ConfigInit\";\nimport Root from \"./Root\";\n\nconst Entrypoint: React.FC = () => (\n \n \n \n \n \n \n \n);\n\nexport default Entrypoint;\n","import { createTheme } from \"@mui/material/styles\";\n\ndeclare module \"@mui/material/styles\" {\n // Extend `Theme` with our custom params.\n interface Theme {}\n // Allow configuration using `createTheme`.\n interface ThemeOptions {}\n}\n\nconst theme = createTheme({\n palette: {\n mode: \"dark\",\n },\n components: {\n MuiSkeleton: {\n styleOverrides: {\n root: {\n transform: \"inherit\",\n },\n },\n },\n MuiAlert: {\n styleOverrides: {\n standardInfo: {\n backgroundColor: \"transparent\",\n },\n standardError: {\n backgroundColor: \"transparent\",\n },\n standardSuccess: {\n backgroundColor: \"transparent\",\n },\n standardWarning: {\n backgroundColor: \"transparent\",\n },\n },\n },\n },\n});\n\nexport default theme;\n","import { CssBaseline } from \"@mui/material\";\nimport { StyledEngineProvider, ThemeProvider } from \"@mui/material/styles\";\nimport React from \"react\";\nimport AppErrorsSnackbar from \"./components/AppErrorsSnackbar\";\nimport Entrypoint from \"./routes/Entrypoint\";\nimport theme from \"./theme\";\n\nconst App: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n","import type { 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 { createRoot } from \"react-dom/client\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nconst root = createRoot(document.getElementById(\"root\") as HTMLElement);\nroot.render();\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(console.log);\n"],"names":["StyleSheet","options","_this","this","_insertTag","tag","before","tags","length","insertionPoint","nextSibling","prepend","container","firstChild","insertBefore","push","isSpeedy","undefined","speedy","ctr","nonce","key","_proto","prototype","hydrate","nodes","forEach","insert","rule","document","createElement","setAttribute","appendChild","createTextNode","createStyleElement","sheet","i","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","e","process","flush","parentNode","removeChild","abs","Math","from","String","fromCharCode","assign","Object","trim","value","replace","pattern","replacement","indexof","search","indexOf","charat","index","charCodeAt","substr","begin","end","slice","strlen","sizeof","append","array","line","column","position","character","characters","node","root","parent","type","props","children","return","copy","prev","next","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","serialize","callback","output","stringify","element","join","prefix","hash","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","k","x","y","z","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","WeakMap","compat","isImplicitRule","get","set","parentRules","removeLabel","defaultStylisPlugins","map","combine","exec","match","ssrStyles","querySelectorAll","Array","call","getAttribute","head","stylisPlugins","_insert","inserted","nodesToHydrate","attrib","split","currentSheet","finalizingPlugins","serializer","collection","middleware","concat","selector","serialized","shouldCache","styles","cache","name","registered","fn","create","arg","EmotionCacheContext","createContext","HTMLElement","createCache","CacheProvider","Provider","withEmotionCache","func","forwardRef","ref","useContext","ThemeContext","React","str","h","len","toString","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","memoize","styleName","toLowerCase","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","obj","string","isArray","_key","interpolated","_i","createStringFromObject","previousCursor","result","cached","labelPattern","serializeStyles","args","stringMode","strings","raw","lastIndex","identifierName","hashString","_extends","bind","target","arguments","source","hasOwnProperty","apply","reactPropsRegex","prop","test","testOmitPropsOnStringTag","isPropValid","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","useInsertionEffect","Insertion","_ref","isStringTag","registerStyles","insertStyles","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","Styled","FinalTag","as","className","classInterpolations","theme","getRegisteredStyles","finalShouldForwardProp","newProps","Fragment","displayName","defaultProps","defineProperty","withComponent","nextTag","nextOptions","newStyled","tagName","registeredStyles","classNames","rawClassName","current","version","logger","Logger","_constructorGuard","ModifiersBytes","calldata","memory","storage","ModifiersNest","checkModifier","throwArgumentError","populate","object","params","defineReadOnly","FormatTypes","freeze","sighash","minimal","full","json","paramTypeArray","RegExp","ParamType","constructor","constructorGuard","throwError","operation","arrayLength","parseInt","arrayChildren","fromObject","components","baseType","_isParamType","format","indexed","comp","JSON","allowIndexed","fromString","isParamType","verifyType","param","originalParam","newNode","state","allowType","c","allowParams","child","allowName","allowArray","sibling","readArray","parseParamType","parseParams","allowIndex","accum","depth","splitNesting","_isFragment","isFragment","FunctionFragment","EventFragment","ConstructorFragment","ErrorFragment","substring","anonymous","inputs","input","isEventFragment","verifyIdentifier","regexParen","modifier","warn","parseGas","gas","comps","BigNumber","parseModifiers","constant","payable","stateMutability","console","log","verifyState","toNumber","isConstructorFragment","parens","outputs","isFunctionFragment","returns","checkForbidden","fragment","sig","isErrorFragment","regexIdentifier","checkResultErrors","errors","checkErrors","path","childPath","error","Coder","localName","dynamic","_throwError","message","Writer","wordSize","_data","_dataLength","_padding","Uint8Array","data","hexConcat","_writeData","appendWriter","writer","writeBytes","bytes","arrayify","paddingOffset","_getValue","writeValue","writeUpdatableValue","Reader","coerceFunc","allowLoose","_offset","hexlify","consumed","coerce","_coerceFunc","_peekBytes","loose","alignedLength","ceil","subReader","readBytes","readValue","AddressCoder","super","defaultValue","encode","getAddress","decode","reader","hexZeroPad","toHexString","AnonymousCoder","coder","pack","coders","values","arrayValues","unique","argument","staticWriter","dynamicWriter","updateFuncs","dynamicOffset","updateFunc","baseOffset","unpack","baseReader","offsetReader","code","uniqueNames","reduce","Error","enumerable","ArrayCoder","defaultChild","checkArgumentCount","BooleanCoder","isZero","DynamicBytesCoder","BytesCoder","FixedBytesCoder","NullCoder","NumberCoder","signed","v","maxUintValue","MaxUint256","bounds","mask","gt","lt","add","One","mul","NegativeOne","Zero","toTwos","fromTwos","StringCoder","toUtf8Bytes","toUtf8String","TupleCoder","types","paramTypeBytes","paramTypeNumber","AbiCoder","_getCoder","component","_getWordSize","_getReader","_getWriter","getDefaultValue","defaultAbiCoder","LogDescription","Description","TransactionDescription","ErrorDescription","Indexed","_isIndexed","BuiltinErrors","signature","reason","wrapAccessError","wrap","Interface","fragments","abi","filter","getStatic","bucket","deploy","functions","events","address","hexDataSlice","id","eventFragment","getFunction","nameOrSignatureOrSighash","isHexString","getSighash","matching","keys","f","getEvent","nameOrSignatureOrTopic","topichash","getEventTopic","getError","_","_decodeParams","_abiCoder","_encodeParams","encodeDeploy","decodeErrorResult","encodeErrorResult","decodeFunctionData","functionFragment","encodeFunctionData","decodeFunctionResult","errorArgs","errorName","errorSignature","builtin","method","encodeFunctionResult","encodeFilterTopics","topics","encodeTopic","keccak256","pop","encodeEventLog","dataTypes","dataValues","decodeEventLog","topicHash","expected","nonIndexed","resultIndexed","resultNonIndexed","nonIndexedIndex","indexedIndex","parseTransaction","tx","parseLog","topic","parseError","hexData","errorFragment","_isInterface","ForkEvent","_isForkEvent","checkAbstract","getFeeData","block","gasPrice","resolveProperties","getBlock","getGasPrice","catch","lastBaseFeePerGas","maxFeePerGas","maxPriorityFeePerGas","baseFeePerGas","addListener","eventName","listener","on","removeListener","off","_isProvider","allowedTransactionKeys","forwardErrors","Signer","getBalance","blockTag","_checkProvider","provider","getTransactionCount","estimateGas","transaction","checkTransaction","sendTransaction","populateTransaction","signedTx","signTransaction","getChainId","getNetwork","chainId","resolveName","shallowCopy","Promise","all","resolve","then","to","__awaiter","hasEip1559","feeData","gasLimit","results","_isSigner","getChecksumAddress","chars","expanded","hashed","toUpperCase","ibanLookup","safeDigits","floor","log10","LN10","ibanChecksum","checksum","_base36To16","isAddress","getIcapAddress","base36","_base16To36","getContractAddress","stripZeros","getCreate2Address","salt","initCodeHash","hexDataLength","textData","atob","btoa","BaseX","alphabet","charAt","_alphabetMap","digits","carry","base","_leader","q","TypeError","byte","reverse","Base32","Base58","BN","_BN","MAX_SAFE","isBigNumberish","isBigNumber","isBytes","_warnedToStringRadix","hex","_hex","_isBigNumber","toBigNumber","toBN","other","sub","div","throwFault","mod","isNeg","umod","pow","and","isNegative","or","xor","maskn","shl","shln","shr","shrn","eq","lte","gte","toBigInt","BigInt","toJSON","toHex","anyValue","fault","isHexable","addSlice","isBytesLike","isInteger","checkSafeUint53","unshift","allowMissingPrefix","hexPad","items","objects","item","start","zeroPad","HexCharacters","endOffset","hexValue","trimmed","hexStripZeros","splitSignature","r","s","_vs","recoveryParam","yParityAndS","compact","vs","recId","joinSignature","HashZero","text","messagePrefix","hashMessage","flat","flatDeep","arr","val","read_compressed_payload","pos","read_payload","u16","symbol_count","total","acc","skip","pos_payload","read_width","read_buffer","read_bit","FULL","HALF","QRTR","MASK","register","symbols","low","range","mid","a","b","decode_arithmetic","read_ascending","n","read_deltas","read_member_array","lookup","vX","vN","read_counts","read_transposed","w","m","fill","read_linear_table","dx","dy","read_zero_terminated_array","ys","j_dy","read_replacement_table","VALID","Set","IGNORED","MAPPED","ret","fromEntries","read_mapped_map","EMOJI_ROOT","sorted","sort","read","branches","temp","valid","fe0f","save","check","read_emoji_trie","explode_cp","toUtf8CodePoints","filter_fe0f","cps","cp","ens_normalize_post_check","lastIndexOf","every","err","ens_normalize","emoji_filter","emoji","consume_emoji_reversed","has","fromCodePoint","normalize","eaten","saved","stack","find","_a","splice","Zeros","checkComponent","ensNameSplit","last","ensNormalize","isValidName","namehash","dnsEncode","padding","hexTrue","hexFalse","domainFieldTypes","verifyingContract","domainFieldNames","checkString","domainChecks","getBaseEncoder","width","boundsUpper","boundsLower","padOffset","hexPadRight","encodeType","fields","TypedDataEncoder","deepCopy","links","parents","subtypes","field","primaryTypes","t","checkCircular","found","subtype","primaryType","st","_types","getEncoder","encoder","_encoderCache","_getEncoder","subEncoder","encodedType","encodeData","hashStruct","_visit","visit","domain","domainFields","EIP712Domain","hashDomain","ensCache","domainValues","domainTypes","typesWithDomain","Wordlist","locale","mnemonic","words","wordlist","word","getWord","getWordIndex","lang","loadWords","langEn","wordlists","en","N","MasterSecret","HardenedBit","getUpperMask","bits","bytes32","base58check","sha256","getWordlist","defaultPath","HDNode","privateKey","publicKey","parentFingerprint","chainCode","mnemonicOrPath","signingKey","SigningKey","compressedPublicKey","ripemd160","computeAddress","extendedKey","neuter","_derive","I","computeHmac","SupportedAlgorithm","IL","IR","ki","Ki","_addPoint","srcMnemonic","phrase","fingerprint","derivePath","shift","seed","seedArray","password","entropyToMnemonic","mnemonicToEntropy","_fromSeed","mnemonicToSeed","UnicodeNormalizationForm","pbkdf2","checkNormalize","entropy","bit","entropyBits","checksumMask","indices","remainingBits","checksumBits","isValidMnemonic","getAccountPath","CrowdsaleAccount","isCrowdsaleAccount","_isCrowdsaleAccount","decrypt","getPassword","ethaddr","searchPath","encseed","looseArrayify","iv","encryptedSeed","aesCbc","aes","seedHex","seedHexBytes","isCrowdsaleWallet","isKeystoreWallet","getJsonWalletAddress","decryptJsonWallet","progressCallback","account","decryptCrowdsale","decryptKeystore","reject","decryptJsonWalletSync","decryptKeystoreSync","hasMnemonic","KeystoreAccount","isKeystoreAccount","_isKeystoreAccount","_getAccount","ciphertext","counter","aesCtr","_decrypt","mnemonicKey","mnemonicCiphertext","mnemonicIv","mnemonicCounter","mnemonicAesCtr","pbkdf2Sync","passwordBytes","dkLen","prfFunc","_pbkdf2","_computeKdfKey","pbkdf2Func","scryptFunc","kdf","p","prf","decryptSync","scrypt","encrypt","client","randomBytes","uuidRandom","uuid","derivedKey","macPrefix","mac","uuidV4","crypto","cipher","cipherparams","kdfparams","dklen","now","Date","timestamp","getUTCFullYear","zpad","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","gethFilename","hexString","currentChild","matchingChild","sha3","_permanentCensorErrors","_censorErrors","LogLevels","debug","info","warning","_logLevel","_globalLogger","_normalizeError","missing","form","_checkNormalize","LogLevel","ErrorCode","HEX","writable","_log","logLevel","level","levels","DEBUG","INFO","WARNING","makeError","UNKNOWN_ERROR","messageDetails","url","NUMERIC_FAULT","CALL_EXCEPTION","INSUFFICIENT_FUNDS","MISSING_NEW","NONCE_EXPIRED","REPLACEMENT_UNDERPRICED","TRANSACTION_REPLACED","UNPREDICTABLE_GAS_LIMIT","INVALID_ARGUMENT","assert","condition","assertArgument","UNSUPPORTED_OPERATION","expectedCount","MISSING_ARGUMENT","UNEXPECTED_ARGUMENT","checkNew","kind","censorship","permanent","globalLogger","iterations","keylen","hashAlgorithm","hLen","l","DK","block1","T","U","destPos","ctor","getPrototypeOf","promises","checkProperties","properties","opaque","bigint","boolean","number","_isFrozen","isFrozen","_deepCopy","shuffled","random","tmp","anyGlobal","self","window","global","getGlobal","msCrypto","getRandomValues","buffer","arrayifyInteger","unarrayifyInteger","_encode","payload","_decodeChildren","childOffset","decoded","_decode","lengthLength","update","digest","sha512","algorithm","msg","equal","utils","exports","zero2","res","toArray","enc","hi","lo","minAssert","minUtils","getNAF","num","naf","max","bitLength","ws","clone","andln","isOdd","isubn","iushrn","getJSF","k1","k2","jsf","m8","d1","d2","cmpn","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","BaseCurve","conf","red","prime","zero","toRed","one","two","g","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","step","nafW","repr","jpoint","mixedAdd","neg","toP","_wnafMul","nafPoints","_getNAFPoints","wnd","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","cmp","toJ","redNeg","ja","jb","decodePoint","byteLength","pointFromX","encodeCompressed","getX","getY","isEven","precompute","power","beta","_getBeta","_hasDoubles","dbl","module","superCtor","super_","configurable","TempCtor","ShortCurve","Base","tinv","redInvm","zeroA","fromRed","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","inherits","Point","isRed","inf","forceRed","JPoint","zOne","modn","lambda","betas","_getEndoRoots","lambdas","redMul","basis","vec","_getEndoBasis","ntinv","redSqrt","redAdd","redSub","a0","b0","a1","b1","a2","b2","prevR","aprxSqrt","ushrn","u","x1","y1","x2","y2","len1","sqr","negative","_endoSplit","v1","v2","c1","divRound","c2","q1","q2","odd","redSqr","redIAdd","ax","rhs","redISub","_endoWnafMulAdd","npoints","ncoeffs","ineg","fromJSON","pre","endoMul","obj2point","inspect","isInfinity","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","negate","zinv","zinv2","ay","pz2","z2","s1","s2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t1","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","d","c8","delta","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","zs","rx","xc","iadd","require$$0","short","require$$1","mont","edwards","curves","PresetCurve","defineCurve","HmacDRBG","predResist","outLen","outSize","minEntropy","hmacStrength","_reseed","reseedInterval","K","V","entropyEnc","nonceEnc","pers","persEnc","_init","_update","_hmac","kmac","reseed","addEnc","generate","KeyPair","ec","priv","pub","_importPrivate","privEnc","_importPublic","pubEnc","fromPublic","fromPrivate","getPublic","getPrivate","derive","sign","verify","Signature","_importDER","Position","place","getLength","buf","initial","octetLen","rmPadding","constructLength","octets","LN2","rlen","slen","toDER","backHalf","rand","EC","nh","keyPair","keyFromPrivate","keyFromPublic","genKeyPair","drbg","ns2","iaddn","_truncateToN","truncOnly","bkey","ns1","iter","kp","kpX","invm","canonical","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","elliptic","require$$2","require$$3","eddsa","_curve","getCurve","p0","signDigest","digestBytes","computeSharedSecret","otherKey","otherKeyPair","computePublicKey","_isSigningKey","recoverPublicKey","rs","compressed","regexBytes","regexNumber","regexArray","_pack","tight","hashKeccak256","hashSha256","formatBytes32String","parseBytes32String","createTable","pair","createRangeTable","matchMap","ranges","Table_A_1_ranges","Table_B_1_flags","Table_B_2_ranges","Table_B_2_lut_abs","Table_B_2_lut_rel","Table_B_2_complex","Table_C_ranges","nameprep","codes","codesTableB2","codepoint","_nameprepTableB2","_toUtf8String","Utf8ErrorReason","ignoreFunc","badCodepoint","BAD_PREFIX","UNEXPECTED_CONTINUE","o","OVERRUN","Utf8ErrorFuncs","ignore","OVERLONG","getUtf8CodePoints","onError","extraLength","overlongMask","nextChar","MISSING_CONTINUE","OUT_OF_RANGE","UTF16_SURROGATE","escapeChar","_toEscapedUtf8String","codePoint","codePoints","TransactionTypes","handleAddress","handleNumber","transactionFields","maxLength","numeric","recoverAddress","formatNumber","accessSetify","addr","storageKeys","storageKey","accessListify","localeCompare","formatAccessList","_serializeEip1559","accessList","RLP","_serializeEip2930","fieldInfo","_serialize","transactionType","_parseEipSignature","recid","rawTransaction","_parse","_parseEip2930","_parseEip1559","zeros","getMultiplier","decimals","formatFixed","multiplier","fraction","whole","parseFixed","wholeValue","fractionValue","wei","FixedFormat","_multiplier","FixedNumber","_value","_isFixedNumber","_checkFormat","addUnsafe","fromValue","subUnsafe","mulUnsafe","divUnsafe","hasFraction","ONE","toFormat","ceiling","round","factor","bump","BUMP","toUnsafeFloat","parseFloat","fixedFormat","decimal","fromBytes","names","commify","suffix","formatted","formatUnits","unitName","parseUnits","formatEther","parseEther","ether","Wallet","_mnemonic","_signingKey","connect","signMessage","_signTypedData","populated","_TypedDataEncoder","encryptKeystore","extraEntropy","fromMnemonic","verifyMessage","verifyTypedData","getUrl","href","request","headers","body","skipFetchSetup","mode","credentials","redirect","referrer","fetchOptions","opts","response","fetch","arrayBuffer","statusCode","status","statusMessage","statusText","staller","duration","setTimeout","bodyify","_fetchData","connection","processFunc","attemptLimit","throttleLimit","throttleCallback","throttleSlotInterval","errorPassThrough","allow304","timeout","allowGzip","user","allowInsecureAuthentication","authorization","base64Encode","reData","dataMatch","base64Decode","requestBody","requestMethod","flatHeaders","header","runningTimeout","timer","promise","cancel","clearTimeout","runningFetch","attempt","location","tryAgain","stall","retryAfter","serverError","throttleRetry","race","fetchJson","updated","poll","interval","done","retryLimit","oncePoll","once","onceBlock","_interopRequireDefault","require","_createSvgIcon","_jsxRuntime","_default","default","jsx","_utils","createSvgIcon","getSvgIconUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","SvgIconRoot","styled","overridesResolver","ownerState","color","capitalize","fontSize","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$transitions2$d","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_palette$ownerState$c","_palette","_palette$ownerState$c2","_palette2","_palette2$action","_palette3","_palette3$action","userSelect","height","display","transition","transitions","shorter","inherit","small","typography","pxToRem","medium","large","vars","palette","main","action","active","disabled","SvgIcon","inProps","useThemeProps","htmlColor","inheritViewBox","titleAccess","viewBox","_objectWithoutPropertiesLoose","instanceFontSize","more","classes","slots","composeClasses","useUtilityClasses","_jsxs","clsx","focusable","role","_jsx","muiName","createMixins","breakpoints","mixins","toolbar","minHeight","up","black","white","A100","A200","A400","A700","light","primary","secondary","divider","background","paper","common","hover","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","direction","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","lighten","darken","createPalette","contrastThreshold","blue","getDefaultPrimary","purple","getDefaultSecondary","getDefaultError","lightBlue","getDefaultInfo","success","green","getDefaultSuccess","orange","getDefaultWarning","getContrastText","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","_formatMuiErrorMessage","contrastText","modes","deepmerge","grey","caseAllCaps","textTransform","defaultFontFamily","createTypography","fontFamily","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem2","coef","buildVariant","letterSpacing","casing","variants","h1","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","createShadow","mobileStepper","fab","speedDial","appBar","drawer","modal","snackbar","tooltip","createTheme","mixinsInput","paletteInput","transitionsInput","typographyInput","systemTheme","systemCreateTheme","muiTheme","shadows","createTransitions","easing","easeInOut","easeOut","easeIn","sharp","shortest","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","getAutoHeightDuration","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","delay","animatedProp","rootShouldForwardProp","slotShouldForwardProp","defaultTheme","systemUseThemeProps","Component","validator","componentNameInError","componentName","propFullName","unstable_ClassNameGenerator","configure","generator","ClassNameGenerator","muiNames","controlled","defaultProp","isControlled","valueState","setValue","newValue","hadFocusVisibleRecentlyTimeout","hadKeyboardEvent","hadFocusVisibleRecently","inputTypesWhitelist","tel","email","date","month","week","time","datetime","handleKeyDown","event","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","matches","readOnly","isContentEditable","focusTriggersKeyboardModality","doc","ownerDocument","addEventListener","isFocusVisibleRef","onFocus","onBlur","useTheme","emStyled","internal_processStyles","processor","xs","sm","md","lg","xl","defaultBreakpoints","handleBreakpoints","propValue","styleFromPropValue","themeBreakpoints","breakpoint","cssKey","createEmptyBreakpointObject","breakpointsInput","_breakpointsInput$key","breakpointsInOrder","removeUnusedBreakpoints","breakpointKeys","style","breakpointOutput","mergeBreakpointsInOrder","emptyBreakpoints","mergedOutput","resolveBreakpointValues","breakpointValues","customBase","breakpointsKeys","computeBreakpointsBase","clamp","min","decomposeColor","re","colors","hexToRgb","marker","colorSpace","recomposeColor","getLuminance","rgb","hslToRgb","Number","toFixed","foreground","lumA","lumB","coefficient","emphasize","isEmpty","propsToClassKey","variant","classKey","_excluded2","_excluded3","getStyleOverrides","styleOverrides","getVariantStyles","variantsStyles","definition","variantsResolver","_theme$components","_theme$components$nam","themeVariants","themeVariant","isMatch","systemDefaultTheme","styleFunctionSx","defaultStyleFunctionSx","systemSx","__mui_systemSx","inputOptions","processStyles","componentSlot","skipVariantsResolver","inputSkipVariantsResolver","skipSx","inputSkipSx","shouldForwardPropOption","defaultStyledResolver","styledEngineStyled","muiStyledResolver","styleArg","expressions","expressionsWithDefaultTheme","stylesArg","themeInput","transformedStyleArg","resolvedStyleOverrides","entries","slotKey","slotStyle","numOfCustomFnsApplied","placeholders","_ref2","withConfig","createBreakpoints","unit","sortedValues","breakpointsAsArray","breakpoint1","breakpoint2","sortBreakpointsValues","down","between","endIndex","only","not","keyIndex","borderRadius","createSpacing","spacingInput","mui","transform","createUnarySpacing","spacing","argsInput","shape","shapeInput","handlers","filterProps","merge","propTypes","getBorder","border","themeKey","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","transformer","createUnaryUnit","getValue","compose","cssProperty","gap","columnGap","rowGap","maxWidth","_props$theme","_props$theme$breakpoi","_props$theme$breakpoi2","breakpointsValues","minWidth","maxHeight","fontStyle","textAlign","filterPropsMapping","borders","flexbox","grid","positions","sizing","styleFunctionMapping","propToStyleFunction","styleFnName","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","dir","marginKeys","paddingKeys","spacingKeys","_getPath","themeSpacing","getPath","transformed","resolveCssProperty","cssProperties","getStyleFromPropValue","margin","checkVars","themeMapping","propValueFinal","userValue","objectsHaveSameKeys","allKeys","union","callIfFn","maybeFn","defaultStyleFunctionMapping","getThemeValue","inputProps","styleFunction","sx","traverse","sxInput","sxObject","css","styleKey","unstable_createStyleFunctionSx","isObjectEmpty","contextTheme","muiUseTheme","useThemeWithoutDefault","resolveProps","getThemeProps","defaultGenerator","reset","createClassNameGenerator","getUtilityClass","createChainedFunction","funcs","debounce","wait","debounced","later","clear","isPlainObject","formatMuiErrorMessage","encodeURIComponent","globalStateClassesMapping","checked","completed","focused","focusVisible","required","globalStatePrefix","globalStateClass","ownerWindow","defaultView","setRef","useEventCallback","useEnhancedEffect","useForkRef","refA","refB","refValue","globalId","maybeReactUseId","useId","idOverride","reactId","defaultId","setDefaultId","useGlobalId","UnexpectedStateError","expectedTag","actualTag","setPrototypeOf","__exportStar","taggedState","context","Children","initialState","Context","react_1","ComponentGuard","ElementGuard","ComponentGuard_1","ElementGuard_1","ExpectContextState_1","expectTags","hookName","core_1","checkInt","checkInts","arrayish","coerceArray","ArrayBuffer","isView","createArray","copyArray","sourceArray","targetArray","targetStart","sourceStart","sourceEnd","convertUtf8","toBytes","encodeURI","convertHex","Hex","numberOfRounds","rcon","S","Si","T1","T2","T3","T4","T5","T6","T7","T8","U1","U2","U3","U4","convertToInt32","AES","_prepare","rounds","_Ke","_Kd","roundKeyCount","KC","tk","tt","rconpointer","plaintext","ModeOfOperationECB","description","_aes","ModeOfOperationCBC","_lastCipherblock","ModeOfOperationCFB","segmentSize","_shiftRegister","xorSegment","encrypted","ModeOfOperationOFB","_lastPrecipher","_lastPrecipherIndex","Counter","initialValue","_counter","setBytes","increment","ModeOfOperationCTR","_remainingCounter","_remainingCounterIndex","aesjs","ModeOfOperation","ecb","cbc","cfb","ofb","utf8","pkcs7","pad","padder","strip","_arrayTest","ALPHABET","ALPHABET_MAP","polymodStep","prefixChk","chk","__decode","LIMIT","lowered","uppered","wordChars","convert","inBits","outBits","maxV","decodeUnsafe","toWordsUnsafe","toWords","fromWordsUnsafe","fromWords","endian","isBN","Buffer","parseHex4Bits","parseHexByte","lowerBound","parseBase","move","dest","src","left","right","_initNumber","_initArray","_parseHex","_parseBase","_strip","limbLen","limbPow","imuln","_iaddn","_move","_expand","_normSign","Symbol","for","groupSizes","groupBases","out","groupSize","groupBase","modrn","idivn","toBuffer","toArrayLike","smallMulTo","ncarry","rword","maxJ","ArrayType","reqLength","allocUnsafe","allocate","_toArrayLikeLE","_toArrayLikeBE","clz32","_countBits","_zeroBits","zeroBits","inotn","testn","notn","iuor","ior","uor","iuand","iand","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","wbit","isub","comb10MulTo","al0","ah0","al1","ah1","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","bl0","bh0","bl1","bh1","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","mulTo","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","ie","ro","io","guessLen13b","conjugate","normalize13b","convert13b","stub","ph","mulp","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","isqr","toBitArray","iushln","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","ushln","imaskn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","diff","qj","divmod","positive","divn","dm","half","r2","egcd","A","B","C","D","yp","xp","im","jm","gcd","_invmp","bincn","ucmp","gtn","gten","ltn","lten","eqn","Red","ctx","convertTo","_forceRed","convertFrom","redShl","_verify2","redIMul","_verify1","redISqr","sqrt","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","_prime","Mont","imod","rinv","minv","ireduce","imulK","mod3","nOne","lpow","inv","currentLen","lowerCase","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","upperCase","constantCase","splitRegexp","_b","stripRegexp","_c","_d","noCase","__assign","abi_1","address_1","basex_1","bytes_1","hash_1","hdnode_1","json_wallets_1","keccak256_1","logger_1","sha2_1","solidity_1","random_1","properties_1","signing_key_1","strings_1","transactions_1","units_1","wallet_1","web_1","sha2_2","strings_2","Events","EE","emitter","evt","_events","_eventsCount","clearEvent","EventEmitter","__proto__","eventNames","getOwnPropertySymbols","listeners","listenerCount","emit","removeAllListeners","prefixed","sha","ripemd","hmac","sha1","sha224","sha384","BlockHash","pending","pendingTotal","blockSize","padLength","_delta8","_delta32","join32","_pad","_digest","Hmac","Hash","inner","outer","rotl32","sum32","sum32_3","sum32_4","RIPEMD160","Kh","E","Ah","Bh","Ch","Dh","Eh","rh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","W","SHA256","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","SHA512","SHA384","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","al","bh","bl","ch","cl","dh","dl","eh","el","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertyDescriptor","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","load_1","loadProduction","__importDefault","__esModule","load","loadNonProduction","formatEnvKeyWithPrefix_1","loadRemoteConfig_1","mergeFromEnv_1","remoteConfigPath","envKeyPrefix","formatEnvKey","cfg","env","detectEnv","config","constant_case_1","configKey","fillFromEnv_1","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","versions","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","define","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","CSHAKE_PADDING","SHIFT","RC","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","Keccak","createShakeOutputMethod","outputBits","createCshakeOutputMethod","methods","createKmacOutputMethod","createOutputMethods","createMethod","algorithms","bytepad","Kmac","methodNames","methodName","newMethodName","blocks","finalized","blockCount","byteCount","outputBlocks","extraBytes","notString","lastByteIndex","encodeString","strs","paddingBytes","finalize","Uint32Array","c0","c3","c4","c5","c6","c7","c9","b10","b11","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b48","b49","aa","ca","da","ea","fa","ha","ia","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","isNaN","qa","oa","removeAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","Ma","Na","Oa","prepareStackTrace","Reflect","construct","includes","Pa","Qa","_context","_payload","Ra","Sa","Ta","nodeName","Va","_valueTracker","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","ab","bb","cb","db","eb","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","aspectRatio","gridArea","lineClamp","qb","sb","setProperty","tb","menuitem","area","br","col","embed","hr","img","keygen","link","meta","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","removeEventListener","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","flags","Wb","memoizedState","dehydrated","Xb","Zb","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","pc","qc","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","fe","ge","he","le","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","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","of","pf","qf","rf","sf","capture","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","G","Vf","H","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","eventTime","lane","ih","jh","refs","kh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","_owner","_stringRef","th","uh","vh","wh","implementation","Fh","Gh","Hh","Ih","Jh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","O","P","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ii","ji","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","unstable_isNewReconciler","identifierPrefix","Li","Mi","Ni","Oi","Pi","Qi","Ri","componentDidCatch","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","Hj","Ij","Jj","Kj","Lj","WeakSet","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","Y","Z","qk","rk","sk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","isReactComponent","pendingChildren","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","tl","usingClientEntryPoint","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","keyList","hasProp","hasElementType","arrA","arrB","dateA","dateB","getTime","regexpA","regexpB","__self","__source","jsxs","setState","forceUpdate","escape","_status","_result","PureComponent","cloneElement","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","createFactory","createRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","MAX_VALUE","h0","h7","bytesLeft","bitLenHi","bitLenLo","numZeros","PBKDF2_HMAC_SHA256_OneIter","innerLen","outerKey","incrementCounter","blockmix_salsa8","BY","_X","arraycopy","blockxor","salsa20_8","srcPos","checkBufferish","ensureInteger","_scrypt","XY","totalOps","i1","currentOp","lastPercent10","stop","i0","limit","nextTick","incrementalSMix","steps","percent10","lib","lastProgress","progress","syncScrypt","engine","storages","plugins","createStore","rx_one","rx_two","rx_three","rx_four","rx_escapable","rx_dangerous","indent","rep","this_value","quote","holder","partial","mind","isFinite","Boolean","replacer","space","reviver","walk","eval","SyntaxError","util","pluck","each","isList","isFunction","isObject","storeAPI","enabled","optionalDefaultValue","_namespacePrefix","_deserialize","remove","write","namespacedKey","_namespaceRegexp","clearAll","hasNamespace","namespace","addPlugin","plugin","_addPlugin","namespacePrefix","namespaceRegexp","_privateStoreProps","_testStorage","testStr","_assignPluginFnProp","pluginFnProp","oldFn","super_fn","newFnArgs","strVal","defaultVal","_addStorage","seenPlugin","pluginProperties","addStorage","_console","_warn","store","props1","props2","etc","assignProps1","assignProps2","assignArgsList","make_create","Global","_has","regexpStr","unescape","cookie","cookies","kvp","localStorage","getItem","setItem","removeItem","memoryStorage","globalStorage","unfixedKey","disable","fixedKey","fixKey","_withStorageEl","storageEl","storageName","attributes","XMLDocument","attr","addBehavior","storageOwner","storageContainer","ActiveXObject","open","close","frames","storeFunction","_makeIEStorageElFunction","userAgent","forbiddenCharsRegex","sessionStorage","extendStatics","__extends","__","thisArg","_arguments","fulfilled","rejected","__generator","sent","trys","ops","verb","op","__values","__read","ar","__spreadArray","__await","__asyncGenerator","asyncIterator","resume","fulfill","settle","__asyncValues","lenIn","lenOut","excluded","sourceKeys","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdO","getter","leafPrototypes","getProto","ns","def","chunkId","miniCssF","globalThis","Function","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","charset","nc","onScriptComplete","onerror","onload","doneFns","toStringTag","nmd","paths","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","sheetRef","rehydrating","querySelector","sheetRefCurrent","nextElementSibling","_len","keyframes","insertable","GlobalStyles","globalStyles","SystemGlobalStyles","html","enableColorScheme","WebkitFontSmoothing","MozOsxFontSmoothing","boxSizing","WebkitTextSizeAdjust","colorScheme","backgroundColor","_theme$components$Mui","defaultStyles","themeOverrides","MuiCssBaseline","StyledEngineProvider","injectFirst","localTheme","outerTheme","mergeOuterLocalTheme","nested","InnerThemeProvider","StyledEngineThemeContext","MuiThemeProvider","_setPrototypeOf","_inheritsLoose","subClass","superClass","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","prevState","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","nodeRef","ReactDOM","forceReflow","performEnter","performExit","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","nextState","setNextCallback","_this4","handler","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","_this$props","childProps","TransitionGroupContext","noop","useThemeSystem","reflow","getTransitionProps","_style$transitionDura","_style$transitionTimi","transitionDuration","transitionTimingFunction","transitionDelay","setTranslateValue","containerProp","containerPropProp","resolvedContainer","rect","getBoundingClientRect","containerRect","containerWindow","fakeTransform","computedStyle","getComputedStyle","getPropertyValue","offsetX","offsetY","transformValues","innerWidth","bottom","innerHeight","getTranslateValue","webkitTransform","Slide","defaultEasing","defaultTimeout","easingProp","inProp","TransitionComponent","childrenRef","handleRefIntermediary","handleRef","normalizedTransitionCallback","isAppearing","handleEnter","handleEntering","transitionProps","webkitTransition","handleEntered","handleExiting","handleExit","handleExited","updatePosition","handleResize","visibility","mapEventPropToEvent","eventProp","disableReactTree","mouseEvent","onClickAway","touchEvent","movedRef","activatedRef","syntheticEventRef","handleClickAway","insideReactTree","clientWidth","clientHeight","clickedRootScrollbar","insideDOM","composedPath","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","handleTouchMove","mappedMouseEvent","getScale","entering","entered","isWebKit154","Grow","autoTimeout","foreignRef","maybeIsAppearing","muiSupportAuto","getPaperUtilityClass","getOverlayAlpha","elevation","alphaValue","PaperRoot","square","rounded","_theme$vars$overlays","boxShadow","backgroundImage","overlays","Paper","getSnackbarContentUtilityClass","SnackbarContentRoot","emphasis","SnackbarContent","alignItems","flexWrap","SnackbarContentMessage","SnackbarContentAction","marginLeft","paddingLeft","marginRight","getSnackbarUtilityClass","SnackbarRoot","anchorOrigin","vertical","horizontal","justifyContent","Snackbar","defaultTransitionDuration","autoHideDuration","ClickAwayListenerProps","ContentProps","disableWindowBlurListener","onClose","onMouseEnter","onMouseLeave","resumeHideDuration","TransitionProps","timerAutoHide","exited","setExited","handleClose","setAutoHideTimer","autoHideDurationParam","handlePause","handleResume","ClickAwayListener","_taggedTemplateLiteral","defineProperties","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","nextProps","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","TransitionGroup","ReferenceError","_assertThisInitialized","contextValue","firstRender","mounted","currentChildMapping","childFactory","pulsate","rippleX","rippleY","rippleSize","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","timeoutId","_t","_t2","_t3","_t4","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","pointerEvents","TouchRippleRipple","Ripple","touchRippleClasses","center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","fakeElement","sizeX","sizeY","getButtonBaseUtilityClass","ButtonBaseRoot","WebkitTapHighlightColor","outline","verticalAlign","MozAppearance","WebkitAppearance","textDecoration","borderStyle","buttonBaseClasses","colorAdjust","ButtonBase","centerRipple","disableRipple","disableTouchRipple","focusRipple","LinkComponent","onContextMenu","onDragLeave","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","buttonRef","rippleRef","handleRippleRef","handleFocusVisible","handleBlurVisible","focusVisibleRef","useIsFocusVisible","setFocusVisible","mountedState","setMountedState","enableTouchRipple","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleContextMenu","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleBlur","handleFocus","isNonNativeButton","keydownRef","handleKeyUp","ComponentProp","buttonProps","handleOwnRef","focusVisibleClassName","composedClasses","TouchRipple","getIconButtonUtilityClass","IconButtonRoot","edge","mainChannel","iconButtonClasses","IconButton","disableFocusRipple","createErrorClass","createImpl","ctorFunc","UnsubscriptionError","_super","arrRemove","initialTeardown","closed","_parentage","_finalizers","Subscription","_parentage_1_1","initialFinalizer","_finalizers_1_1","finalizer","execFinalizer","teardown","_hasParent","_addParent","_removeParent","empty","EMPTY_SUBSCRIPTION","EMPTY","isSubscription","unsubscribe","onUnhandledError","onStoppedNotification","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","delegate","handle","reportUnhandledError","COMPLETE_NOTIFICATION","createNotification","errorContext","isRoot","errorThrown","destination","EMPTY_OBSERVER","Subscriber","complete","SafeSubscriber","isStopped","handleStoppedNotification","nextNotification","_next","_error","_complete","_bind","partialObserver","ConsumerObserver","handleUnhandledError","observerOrNext","context_1","notification","subscriber","observable","identity","pipeFromArray","fns","subscribe","_subscribe","Observable","operator","isObserver","_trySubscribe","sink","promiseCtor","getPromiseCtor","Symbol_observable","operations","ObjectUnsubscribedError","Subject","subject","AnonymousSubject","_throwIfClosed","currentObservers","observers","hasError","thrownError","_checkFinalizedStatuses","_innerSubscribe","dateTimestampProvider","_bufferSize","_windowTime","_timestampProvider","_infiniteTimeWindow","ReplaySubject","_buffer","_trimBuffer","subscription","adjustedBufferSize","useIsomorphicLayoutEffect","useSubscription","input$","observerOrNext$","useCustomEffect","argsRef","subscriptionRef","nextObserver","errorObserver","completeObserver","useSubscriptionInternal","addAppError","addAppErrorData","SlideTransition","SnackBarWrapper","_event","handleCloseButtonClick","Close","setErrors","handleAddError","newId","errs","errorData","handleRemoveError","NavigationContext","LocationContext","RouteContext","outlet","invariant","cond","matchRoutes","routes","locationArg","basename","pathname","stripBasename","parsePath","flattenRoutes","score","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","route","relativePath","caseSensitive","startsWith","joinPaths","computeScore","paramRe","isSplat","segments","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","matcher","paramNames","regexpSource","paramName","endsWith","compilePath","captureGroups","splatValue","decodeURIComponent","safelyDecodeURIComponent","resolveTo","toArg","routePathnames","locationPathname","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","useHref","useInRouterContext","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","createHref","useLocation","useNavigate","routePathnamesJson","activeRef","go","_renderMatches","parentMatches","reduceRight","React.createElement","Route","_props","Router","basenameProp","locationProp","navigationType","NavigationType","static","staticProp","navigationContext","trailingPathname","Routes","_ref4","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","_parsedLocationArg$pa","useRoutes","createRoutesFromChildren","BrowserRouter","historyRef","createBrowserHistory","history","listen","Link","reloadDocument","rest","internalOnClick","replaceProp","_temp","navigate","isModifiedEvent","createPath","useLinkClickHandler","ErrorBoundary","errorInfo","renderError","getCollapseUtilityClass","CollapseRoot","orientation","collapsedSize","hidden","CollapseWrapper","wrapper","CollapseWrapperInner","wrapperInner","Collapse","collapsedSizeProp","wrapperRef","autoTransitionDuration","isHorizontal","getWrapperSize","wrapperSize","duration2","getAccordionUtilityClass","AccordionRoot","accordionClasses","region","disableGutters","gutters","overflowAnchor","content","marginTop","marginBottom","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","Accordion","childrenProp","defaultExpanded","expandedProp","onChange","setExpandedState","useControlled","handleChange","summary","toggle","AccordionContext","getAccordionSummaryUtilityClass","AccordionSummaryRoot","accordionSummaryClasses","AccordionSummaryContent","AccordionSummaryExpandIconWrapper","expandIconWrapper","AccordionSummary","expandIcon","getAccordionDetailsUtilityClass","AccordionDetailsRoot","defaultCreateStyledComponent","systemStyled","fixed","useThemePropsDefault","useThemePropsSystem","createContainer","createStyledComponent","ContainerRoot","paddingRight","breakpointValueKey","Container","extendSxProp","inSx","systemProps","otherProps","splitProps","finalSx","getTypographyUtilityClass","TypographyRoot","align","noWrap","gutterBottom","paragraph","textOverflow","whiteSpace","defaultVariantMapping","colorTransformations","textPrimary","textSecondary","Typography","themeProps","transformDeprecatedColors","variantMapping","LayoutContainer","flexDirection","backgroundPosition","backgroundRepeat","backgroundSize","LayoutLogo","logo","alt","objectFit","showLogo","ErrorDetails","ExpandMore","baseUrl","addEthereumChainParameter","eip712domain","eip191params","addEthereumChainParameterJSON","eip712domainJSON","eip191paramsJSON","URL","origin","ConfigContext","ConfigGuard","useConfig","createTaggedStateHook","useConfigError","configState","setConfigState","getCircularProgressUtilityClass","SIZE","circularRotateKeyframe","circularDashKeyframe","CircularProgressRoot","CircularProgressSVG","svg","CircularProgressCircle","circle","disableShrink","circleDisableShrink","stroke","CircularProgress","thickness","circleStyle","rootStyle","rootProps","circumference","cx","cy","getAlertUtilityClass","_CloseIcon","AlertRoot","severity","getColor","getBackgroundColor","Alert","alertClasses","AlertIcon","AlertMessage","AlertAction","defaultIconMapping","SuccessOutlinedIcon","ReportProblemOutlinedIcon","ErrorOutlineIcon","InfoOutlinedIcon","closeText","iconMapping","title","CloseIcon","joinChildren","separator","childrenArray","directionValues","spacingValues","previousDirectionValue","row","Stack","StackRoot","createStack","disablePortal","mountNode","setMountNode","getContainer","getScrollbarSize","documentWidth","ariaHidden","show","getPaddingRight","isAriaHiddenForbiddenOnElement","isForbiddenTagName","isInputHidden","ariaHiddenSiblings","mountElement","currentElement","elementsToExclude","isNotExcludedElement","isNotForbiddenElement","findIndexOf","idx","handleContainer","restoreStyle","disableScrollLock","scrollHeight","isOverflowing","scrollbarSize","scrollContainer","DocumentFragment","parentElement","overflowY","overflowX","removeProperty","candidatesSelector","defaultGetTabbable","regularTabNodes","orderedTabNodes","nodeTabIndex","tabindexAttr","getTabIndex","getRadio","roving","isNonTabbableRadio","isNodeMatchingSelectorFocusable","documentOrder","defaultIsEnabled","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","getTabbable","isEnabled","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","reactFocusEventTarget","activated","rootRef","lastKeydown","hasAttribute","contain","rootElement","hasFocus","tabbable","_lastKeydown$current","_lastKeydown$current2","isShiftTab","focusNext","focusPrevious","loopFocus","setInterval","clearInterval","handleFocusSentinel","getModalUtilityClass","omitEventHandlers","mergeSlotProps","parameters","getSlotProps","additionalProps","externalSlotProps","externalForwardedProps","joinedClasses","mergedStyle","internalRef","eventHandlers","excludeKeys","extractEventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","resolveComponentProps","componentProps","useSlotProps","_parameters$additiona","resolvedComponentsProps","isHostComponent","appendOwnerState","defaultManager","containers","modals","modalIndex","modalRef","hiddenSiblings","getHiddenSiblings","mount","containerIndex","restore","ariaHiddenState","nextTop","isTopModal","ModalUnstyled","_props$ariaHidden","classesProp","closeAfterTransition","componentsProps","disableEscapeKeyDown","hideBackdrop","keepMounted","manager","onBackdropClick","onTransitionEnter","onTransitionExited","mountNodeRef","hasTransition","getHasTransition","ariaHiddenProp","getModal","handleMounted","handleOpen","handlePortalRef","Root","BackdropComponent","Backdrop","backdropProps","backdrop","TrapFocus","Fade","getBackdropUtilityClass","BackdropRoot","invisible","_components$Root","_componentsProps$root","ModalRoot","ModalBackdrop","Modal","BackdropProps","commonProps","extendUtilityClasses","getDrawerUtilityClass","docked","DrawerRoot","DrawerDockedRoot","DrawerPaper","anchor","WebkitOverflowScrolling","oppositeDirection","Drawer","anchorProp","ModalProps","BackdropPropsProp","PaperProps","SlideProps","anchorInvariant","getAnchor","slidingDrawer","getStyleValue","TextareaAutosize","maxRows","minRows","inputRef","shadowRef","renders","getUpdatedState","inputShallow","placeholder","singleRowHeight","outerHeight","outerHeightStyle","updateState","newState","syncHeight","syncHeightWithFlushSycn","resizeObserver","ResizeObserver","observe","disconnect","rows","formControlState","states","muiFormControl","useFormControl","FormControlContext","hasValue","isFilled","SSR","getInputBaseUtilityClass","rootOverridesResolver","formControl","startAdornment","adornedStart","endAdornment","adornedEnd","sizeSmall","multiline","fullWidth","hiddenLabel","inputOverridesResolver","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel","InputBaseRoot","inputBaseClasses","paddingTop","InputBaseComponent","inputPlaceholder","placeholderHidden","placeholderVisible","font","animationDuration","WebkitTextFillColor","resize","inputGlobalStyles","InputBase","ariaDescribedby","autoComplete","disableInjectingGlobalStyles","inputComponent","inputPropsProp","inputRefProp","renderSuffix","valueProp","handleInputRefWarning","handleInputPropsRefProp","handleInputRefProp","handleInputRef","setFocused","fcs","onFilled","onEmpty","checkDirty","InputComponent","setAdornedStart","Input","onAnimationStart","getInputUtilityClass","InputRoot","inputBaseRootOverridesResolver","disableUnderline","underline","bottomLineColor","onBackgroundChannel","inputUnderline","inputClasses","borderBottomStyle","InputInput","InputBaseInput","inputBaseInputOverridesResolver","componentsPropsProp","inputComponentsProps","getFilledInputUtilityClass","FilledInputRoot","hoverBackground","FilledInput","hoverBg","filledInputClasses","disabledBg","paddingBottom","FilledInputInput","WebkitBoxShadow","caretColor","getColorSchemeSelector","filledInputComponentsProps","_span","NotchedOutlineRoot","borderWidth","NotchedOutlineLegend","float","withLabel","notched","getOutlinedInputUtilityClass","OutlinedInputRoot","outlinedInputClasses","notchedOutline","OutlinedInputInput","OutlinedInput","_React$Fragment","filled","getFormLabelUtilityClasses","FormLabelRoot","colorSecondary","formLabelClasses","AsteriskComponent","asterisk","FormLabel","getInputLabelUtilityClasses","InputLabelRoot","shrink","disableAnimation","animated","transformOrigin","InputLabel","shrinkProp","getFormControlUtilityClasses","FormControlRoot","FormControl","visuallyFocused","initialAdornedStart","isMuiElement","setFilled","initialFilled","focusedState","childContext","registerEffect","getFormHelperTextUtilityClasses","FormHelperTextRoot","contained","formHelperTextClasses","FormHelperText","getListUtilityClass","ListRoot","disablePadding","dense","subheader","listStyle","List","ListContext","nextItem","list","disableListWrap","previousItem","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","innerText","repeating","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","MenuList","actions","autoFocusItem","listRef","textCriteriaRef","previousKeyMatched","lastTime","adjustStyleForScrollbar","containerElement","noExplicitWidth","activeItemIndex","newChildProps","criteria","lowerKey","currTime","keepFocusOnCurrent","getPopoverUtilityClass","getOffsetTop","getOffsetLeft","getTransformOriginValue","resolveAnchorEl","anchorEl","PopoverRoot","PopoverPaper","anchorPosition","anchorReference","marginThreshold","transitionDurationProp","paperRef","handlePaperRef","getAnchorOffset","resolvedAnchorEl","anchorRect","getTransformOrigin","elemRect","getPositioningStyle","offsetWidth","offsetHeight","elemTransformOrigin","heightThreshold","widthThreshold","setPositioningStyles","positioning","getMenuUtilityClass","RTL_ORIGIN","LTR_ORIGIN","MenuRoot","Popover","MenuPaper","MenuMenuList","disableAutoFocusItem","MenuListProps","PopoverClasses","isRtl","menuListActionsRef","getNativeSelectUtilityClasses","nativeSelectSelectStyles","nativeSelectClasses","NativeSelectSelect","select","nativeSelectIconStyles","NativeSelectIcon","iconOpen","NativeSelectInput","IconComponent","getSelectUtilityClasses","SelectSelect","selectClasses","SelectIcon","SelectNativeInput","nativeInput","areEqualValues","SelectInput","ariaLabel","autoWidth","defaultOpen","displayEmpty","labelId","MenuProps","onOpen","openProp","renderValue","SelectDisplayProps","tabIndexProp","setValueState","openState","setOpenState","displayRef","displayNode","setDisplayNode","isOpenControlled","menuMinWidthState","setMenuMinWidthState","handleDisplayRef","getElementById","isCollapsed","handleItemClick","itemIndex","clonedEvent","displaySingle","displayMultiple","computeDisplay","foundMatch","firstSelectableElement","isFirstSelectableElement","menuMinWidth","buttonId","_StyledInput","_StyledFilledInput","styledRootConfig","StyledInput","StyledOutlinedInput","StyledFilledInput","Select","ArrowDropDownIcon","native","variantProp","outlined","inputComponentRef","getTextFieldUtilityClass","variantComponent","TextFieldRoot","TextField","FormHelperTextProps","helperText","InputLabelProps","InputProps","SelectProps","InputMore","helperTextId","inputLabelId","InputElement","htmlFor","getButtonUtilityClass","commonIconStyles","ButtonRoot","colorInherit","disableElevation","_theme$palette$getCon","_theme$palette","primaryChannel","buttonClasses","ButtonStartIcon","startIcon","ButtonEndIcon","endIcon","Button","contextProps","ButtonGroupContext","resolvedProps","endIconProp","startIconProp","_useUtilityClasses","classesRoot","createBox","defaultClassName","generateClassName","BoxRoot","Box","_extendSxProp","setConnectionUrl","ApiContext","ApiGuard","useApi","settings","urlLabel","claimInfo","validation","manual","ethereumAddress","eip712","defaultStepLabel","fieldLabels","substrateAddress","substrateAddressHex","buttonText","getBackButtonText","descriptions","signDescription","tabs","toggleText","setOpen","setUrl","typedLocalStorage","reconnectHandler","resetToDefaultHandler","Settings","pr","textsOnPage","pt","mr","mt","getStepperUtilityClass","StepperContext","StepContext","getStepConnectorUtilityClass","StepConnectorRoot","alternativeLabel","StepConnectorLine","StepConnector","borderTopStyle","borderTopWidth","borderLeftStyle","borderLeftWidth","StepperRoot","defaultConnector","Stepper","activeStep","connector","nonLinear","objectSpread","REGEX_HEX_PREFIXED","REGEX_HEX_NOPREFIX","isHex","ignoreLength","hexStripPrefix","hexToBn","isLe","stripped","bn","isBigInt","isOn","isOnObject","isToBigInt","isToBn","bnToBn","toBn","sharedTypes","AnchorData","anchoredBlock","docRoot","DispatchErrorModule","PreCommitData","expirationBlock","signingRoot","Fee","price","MultiAccountData","deposit","depositor","signatories","threshold","ChainId","DepositNonce","ResourceId","RegistryId","TokenId","AssetId","registryId","tokenId","AssetInfo","metadata","MintInfo","anchorId","proofs","staticHashes","Proof","leafHash","sortedHashes","ProofMint","hashes","RegistryInfo","ownerCanBurn","ProxyType","_enum","standaloneTypes","AccountInfo","Address","LookupSource","Multiplier","RefCount","minmax","XCM_MAPPINGS","mapXcmTypes","CompactAssignments","RawSolution","Keys","Weight","addrIndicesTypes","ValidatorPrefs","addrAccountIdTypes","BalanceLock","DispatchError","DispatchInfo","Heartbeat","IdentityInfo","OpenTip","ReferendumInfo","SlashingSpans","StakingLedger","Votes","Any","NonTransfer","Governance","Staking","UnusedSudoBalances","IdentityJudgement","CancelProxy","Auction","FullIdentification","TAssetBalance","centrifugeChain","kusama","nodeTemplate","polkadot","rococo","shell","statemine","statemint","westend","westmint","knownLedger","acala","astar","bifrost","centrifuge","composable","darwinia","edgeware","equilibrium","genshiro","hydradx","karura","khala","parallel","phala","polkadex","polymesh","sora","stafi","xxnetwork","knownGenesis","basilisk","kulupu","picasso","subsocial","knownIcon","knownTestnet","jupiter","p3dt","subspace_testnet","UNSORTED","TESTNETS","availableNetworks","knownSubstrate","network","nameParts","slip44","hasLedgerSupport","genesisHash","isTestnet","isIgnored","standardAccount","isUnSortedA","selectableNetworks","CHR","U8","U16","hexToU8a","decLength","endLength","NET_EXTRA","checkOrder","ooo","curr","upgrades","allKnown","chain","blockNumber","specVersion","apis","withNames","chainName","specName","filterVersions","getSpecTypes","knownTypes","_specVersion","_knownTypes$typesBund7","_knownTypes$typesBund8","_knownTypes$typesBund9","_knownTypes$typesBund10","_knownTypes$typesBund11","_knownTypes$typesBund12","_knownTypes$typesSpec","_knownTypes$typesChai","typesSpec","typesChain","typesBundle","spec","getSpecRpc","_knownTypes$typesBund19","_knownTypes$typesBund20","_knownTypes$typesBund21","_knownTypes$typesBund22","_knownTypes$typesBund23","_knownTypes$typesBund24","rpc","assertNumber","isSafeInteger","letter","chr","convertRadix","digit","digitBase","radix2carry","convertRadix2","radix","radix2","revPadding","unsafeWrapper","base16","base32","base64","base64url","genBase58","abc","base58","XMR_BLOCK_LEN","base58xmr","subarray","padStart","blockLen","BECH_ALPHABET","POLYMOD_GENERATORS","bech32Polymod","bechChecksum","encodingConst","genBech32","encoding","ENCODING_CONST","_words","sepIndex","sum","actualLength","decodeToBytes","TextDecoder","TextEncoder","CODERS","xglobal","extractGlobal","asIntN","NaN","hasBigInt","hasBuffer","hasProcess","isBuffer","readDoubleLE","isU8a","u8a","stringToU8a","u8aToU8a","createDecode","ipfs","ipfsCompat","createEncode","createIs","createValidate","base64Validate","isMergeableObject","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","defaultArrayMerge","arrayMerge","sourceIsArray","mergeObject","freeSelf","freeGlobal","objectProto","nativeObjectToString","symToStringTag","isOwn","unmasked","getRawTag","objectToString","overArg","funcProto","funcToString","objectCtorString","isObjectLike","baseGetTag","proto","getPrototype","Ctor","__data__","assocIndexOf","ListCache","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","maskSrcKey","uid","coreJsData","reIsHostCtor","reIsNative","isMasked","toSource","baseIsNative","getNative","nativeCreate","hashClear","hashDelete","hashGet","hashHas","hashSet","isKeyable","getMapData","MapCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","pairs","LARGE_ARRAY_SIZE","stackClear","stackDelete","stackGet","stackHas","stackSet","iteratee","objValue","baseAssignValue","customizer","isNew","assignValue","propertyIsEnumerable","isArguments","baseIsArguments","freeExports","freeModule","stubFalse","reIsUint","typedArrayTags","isLength","freeProcess","nodeUtil","binding","nodeIsTypedArray","baseUnary","baseIsTypedArray","inherited","isArr","isArg","isBuff","isType","isTypedArray","skipIndexes","baseTimes","isIndex","isPrototype","nativeKeys","isArrayLike","arrayLikeKeys","baseKeys","copyObject","nativeKeysIn","isProto","baseKeysIn","keysIn","isDeep","predicate","resIndex","nativeGetSymbols","arrayFilter","symbol","stubArray","getSymbols","arrayPush","getSymbolsIn","keysFunc","symbolsFunc","baseGetAllKeys","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","DataView","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","dataView","cloneArrayBuffer","byteOffset","reFlags","regexp","symbolProto","symbolValueOf","typedArray","cloneDataView","cloneTypedArray","cloneRegExp","cloneSymbol","objectCreate","baseCreate","nodeIsMap","baseIsMap","nodeIsSet","baseIsSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","isFlat","isFull","initCloneArray","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","initCloneByTag","stacked","isSet","subValue","isMap","getAllKeysIn","getAllKeys","arrayEach","resolver","memoized","Cache","rePropName","reEscapeChar","stringToPath","memoizeCapped","subString","isSymbol","symbolToString","baseToString","arrayMap","toKey","CLONE_DEEP_FLAG","isEmptyArray","isString","isEmptyChildren","isPromise","getIn","toPath","setIn","resVal","pathArray","currentPath","currentObj","nextPath","setNestedObjectValues","visited","FormikContext","FormikProvider","useFormikContext","formik","formikReducer","touched","isEqual","isSubmitting","isValidating","submitCount","emptyErrors","emptyTouched","useFormik","validateOnChange","_ref$validateOnChange","validateOnBlur","_ref$validateOnBlur","validateOnMount","_ref$validateOnMount","isInitialValid","enableReinitialize","_ref$enableReinitiali","onSubmit","initialValues","initialErrors","initialTouched","fieldRegistry","runValidateHandler","maybePromisedErrors","actualException","runValidationSchema","validationSchema","schema","validateAt","sync","validateData","prepareDataForValidation","abortEarly","validateYupSchema","yupError","_ref5","yupToFormErrors","runSingleFieldLevelValidation","runFieldLevelValidations","fieldKeysWithValidation","fieldValidations","fieldErrorsList","runAllValidations","fieldErrors","schemaErrors","validateErrors","validateFormWithHighPriority","combinedErrors","resetForm","dispatchFn","onReset","maybePromisedOnReset","imperativeMethods","validateField","maybePromise","registerField","unregisterField","setTouched","shouldValidate","setValues","resolvedValues","setFieldError","setFieldValue","executeChange","eventOrTextValue","maybePath","outerHTML","currentValue","currentArrayOfValues","isValueInArray","getValueForCheckbox","getSelectedValues","eventOrPath","setFieldTouched","executeBlur","eventOrString","setFormikState","stateOrCb","setStatus","setSubmitting","submitForm","isInstanceOfError","promiseOrUndefined","executeSubmit","_errors","handleSubmit","validateForm","handleReset","getFieldMeta","initialError","getFieldHelpers","setError","getFieldProps","nameOrOptions","isAnObject","dirty","isValid","Formik","formikbag","innerRef","shouldClone","Form","_action","arrayLike","copyArrayLike","maxIndex","FieldArrayInner","alterTouched","alterErrors","updateErrors","updateTouched","fieldError","fieldTouched","updateArrayField","cloneDeep","indexA","indexB","swap","arrayHelpers","handlePush","handlePop","handleSwap","handleMove","handleInsert","handleReplace","handleUnshift","handleRemove","restOfFormik","hasLift","lift","operate","init","liftedSource","createOperatorSubscriber","onNext","onComplete","onFinalize","OperatorSubscriber","shouldUnsubscribe","closed_1","scanInternals","accumulator","hasSeed","emitOnNext","emitBeforeComplete","hasState","MUIPaper","rightAction","mono","maxLines","valueExt","alignSelf","wordBreak","u8aEq","u8aa","u8ab","dvA","dvB","getUint32","u8aConcat","u8as","u8aConcatStrict","base58Validate","base58Decode","base58Encode","lengths","bool","outputLen","exists","checkFinished","destroyed","finished","u32","utf8ToBytes","_cloneInto","wrapConstructorWithOpts","hashCons","hashC","SIGMA","BLAKE2","keyLen","saltLen","persLen","personalization","buffer32","compress","take","dataOffset","data32","pos32","digestInto","out32","U32_MASK64","_32n","fromBig","u64","lst","Al","toBig","shrSH","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotr32H","rotr32L","rotlSH","rotlSL","rotlBH","rotlBL","Bl","add3L","Cl","add3H","add4L","Dl","add4H","add5H","add5L","El","IV","BUF","G1","Xl","G2","BLAKE2b","v0l","v0h","v1l","v1h","v2l","v2h","v3l","v3h","v4l","v4h","v5l","v5h","v6l","v6h","v7l","v7h","keyLength","isLast","blake2b","_classPrivateFieldInitSpec","privateMap","privateCollection","_classExtractFieldDescriptor","receiver","_classPrivateFieldGet","_classPrivateFieldSet","decoder","u8aToString","DEFAULT_CRYPTO","DEFAULT_SELF","Wbg","bridge","getObject","ptr","getString","addObject","_idx","_arg0","getU8a","_ptr","takeObject","u8","Uint16Array","clim","fleb","fdeb","freb","revfl","rev","hMap","co","rvb","sv","flt","fdt","flrm","fdrm","bits16","inflt","dat","noSt","noBuf","cbuf","nbuf","final","bt","lm","lbt","dbt","tbts","hLit","hcLen","ldt","clt","clb","clbmsk","clm","dt","lms","dms","mxa","sym","dsym","slc","wasmBytes","zlv","createWasm","asmFn","async","wasm","WebAssembly","instantiate","wbg","createWasmFn","dropObject","getInt32","Int32Array","getUint8","allocU8a","__wbindgen_malloc","allocString","resultU8a","r0","r1","__wbindgen_free","resultString","withWasm","ext_bip39_generate","ext_bip39_to_entropy","ext_bip39_to_mini_secret","ext_bip39_to_seed","ext_bip39_validate","ext_ed_from_seed","pubkey","seckey","ext_ed_sign","ext_ed_verify","ext_secp_from_seed","ext_secp_pub_compress","secp256k1Expand","ext_secp_pub_expand","msgHash","recovery","ext_secp_recover","ext_secp_sign","ext_sr_derive_keypair_hard","ext_sr_derive_keypair_soft","ext_sr_derive_public_soft","ext_sr_from_seed","secret","ext_sr_sign","ext_sr_verify","ext_sr_agree","extra","ext_vrf_sign","outAndProof","ext_vrf_verify","ext_blake2b","ext_hmac_sha256","ext_hmac_sha512","ext_keccak256","keccak512","ext_keccak512","twox","ext_pbkdf2","log2n","ext_scrypt","ext_sha256","ext_sha512","ext_twox","isReady","waitReady","initBridge","u8aToHex","isPrefixed","createAsHex","createBitHasher","onlyJs","blake2AsU8a","blake2bJs","blake2AsHex","SS58_PREFIX","sshash","checkAddressChecksum","ss58Length","ss58Decoded","isPublicKey","defaults","allowedDecodedLengths","allowedEncodedLengths","allowedPrefix","decodeAddress","encoded","ignoreChecksum","ss58Format","endPos","encodeAddress","documentReadyPromise","creator","readyState","win","web3IsInjected","injectedWeb3","mapAccounts","isWeb3Injected","web3EnablePromise","getWindowExtensions","originName","enable","web3FromSource","sources","web3FromAddress","accounts","accountType","extensions","injected","retrieved","addresses","web3Accounts","accountU8a","substrateEnable","compatInits","initCompat","ext","web3Enable","substrateAccountsSubscribe","triggerUpdate","unsubs","_triggerUpdate","unsub","web3AccountsSubscribe","SubstrateContext","substrateSign","substrateAccounts","setSubstrateAccounts","_unsub","substrateState","isInteropObservable","isAsyncIterable","createInvalidObservableTypeError","isIterable","Symbol_iterator","readableStreamLikeToAsyncGenerator","readableStream","getReader","releaseLock","isReadableStreamLike","innerFrom","obs","fromAsyncIterable","iterable","iterable_1_1","asyncIterable","asyncIterable_1","executeSchedule","parentSubscription","scheduler","work","scheduleSubscription","schedule","observeOn","subscribeOn","scheduleAsyncIterable","scheduled","pipe","scheduleObservable","scheduleArray","schedulePromise","scheduleIterable","scheduleReadableStreamLike","switchMap","project","resultSelector","innerSubscriber","isComplete","checkComplete","innerIndex","outerIndex","innerValue","catchError","handledResult","innerSub","syncUnsub","EmptyError","firstValueFrom","hasConfig","RequirementsContext","RequirementsGuard","useSubstrateInjectedExtension","TokenClaimsContext","TokenClaimsGuard","useTokenClaims","getClaims","getStepUtilityClass","StepRoot","Step","activeProp","completedProp","disabledProp","newChildren","getStepIconUtilityClass","_circle","StepIconRoot","stepIconClasses","StepIconText","StepIcon","classNameProp","Warning","CheckCircle","textAnchor","dominantBaseline","getStepLabelUtilityClass","StepLabelRoot","stepLabelClasses","StepLabelLabel","StepLabelIconContainer","iconContainer","StepLabelLabelContainer","labelContainer","StepLabel","iconProp","optional","StepIconComponent","StepIconComponentProp","StepIconProps","iconContext","getStepContentUtilityClass","StepContentRoot","StepContent","StepContentTransition","getUnit","toUnitless","getSkeletonUtilityClass","pulseKeyframe","waveKeyframe","SkeletonRoot","hasChildren","withChildren","fitContent","heightAuto","radiusUnit","radiusValue","Skeleton","isBoolean","NUMBER_REGEX","formatDecimal","matched","SI","findSi","calcSi","forceUnit","siDefIndex","SI_MID","DEFAULT_UNIT","defaultDecimals","defaultUnit","getUnits","withSi","withSiFull","withUnit","getPrePost","formatBalance","postfix","units","getDefaults","getOptions","setDefaults","toUnit","balance","unitString","msToString","dateFrom","dateTo","day","hour","minute","second","curSrt","TokenClaimPending","TokenClaimError","TokenClaimReady","api","ClaimInfoComponent","runtimeChain","registry","chainDecimals","chainTokens","hasVesting","vesting","toUnitCarried","splittedBalanceString","cliff","splittedVestingBalanceString","vestingTimeString","cliffTimeString","nothingToClaim","uninit","ready","ClaimStep","substrateSignState","setSubstrateSignState","substrateSignHanler","substrate","ethereum","formParams","SuccessfulView","tokenClaimsEvent","who","FailureView","registryError","docs","SomethingWentWrong","CompleteStep","claimingEvents","eventRecord","section","dispatchError","asModule","findMetaError","cachedType","detectScrollType","dummy","getNormalizedScrollLeft","scrollWidth","easeInOutSin","animate","ease","cancelled","requestAnimationFrame","getTabScrollButtonUtilityClass","_KeyboardArrowLeft","_KeyboardArrowRight","TabScrollButtonRoot","tabScrollButtonClasses","TabScrollButton","KeyboardArrowLeft","KeyboardArrowRight","getTabsUtilityClass","TabsRoot","tabsClasses","scrollButtons","scrollButtonsHideMobile","TabsScroller","scroller","hideScrollbar","scrollableX","scrollableY","scrollbarWidth","FlexContainer","flexContainer","flexContainerVertical","centered","TabsIndicator","indicator","indicatorColor","TabsScrollbarSize","scrollbarHeight","setMeasurements","prevHeight","defaultIndicatorStyle","Tabs","ariaLabelledBy","allowScrollButtonsMobile","ScrollButtonComponent","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","textColor","visibleScrollbar","scrollable","scrollStart","clientSize","setMounted","indicatorStyle","setIndicatorStyle","displayScroll","setDisplayScroll","scrollerStyle","setScrollerStyle","valueToIndex","tabsRef","tabListRef","getTabsMeta","tabsNode","tabsMeta","tabMeta","scrollLeftNormalized","tab","updateIndicatorState","startIndicator","startValue","correction","newIndicatorStyle","dStart","dSize","scroll","scrollValue","moveTabsScroll","getScrollSize","containerSize","totalSize","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","nextScrollStart","updateScrollButtonState","showStartScroll","showEndScroll","handleTabsScroll","updateIndicator","updateScrollButtons","childIndex","childValue","conditionalElements","scrollbarSizeListener","scrollButtonsActive","showScrollButtons","scrollButtonStart","scrollButtonEnd","getConditionalElements","onScroll","previousItemKey","nextItemKey","getTabUtilityClass","TabRoot","labelIcon","wrapped","iconPosition","tabClasses","flexBasis","Tab","iconWrapper","setEthereumAddress","rpcProvider","setFirstAccount","send","NETWORK","requiredNetwork","setRequiredNetwork","OTHER","onNetworkChanged","ethChainId","REQUIRED","ethDefaultProvider","providers","providerList","InfuraProvider","infura","EtherscanProvider","etherscan","AlchemyProvider","alchemy","PocketProvider","pocket","CloudflareProvider","cloudflare","AnkrProvider","ankr","FallbackProvider","quorum","renetwork","etcDefaultProvider","JsonRpcProvider","homestead","ensAddress","_defaultProvider","ropsten","classicMordor","networks","unspecified","mainnet","morden","testnet","rinkeby","kovan","goerli","kintsugi","sepolia","classic","classicMorden","classicTestnet","classicKotti","xdai","matic","maticmum","optimism","arbitrum","bnb","bnbt","Formatter","formats","getDefaultFormats","bigNumber","allowNull","blockHash","transactionIndex","confirmations","uint256","creates","transactionRequest","receiptLog","transactionHash","arrayOf","logIndex","receipt","contractAddress","gasUsed","logsBloom","logs","cumulativeGasUsed","effectiveGasPrice","parentHash","difficulty","miner","extraData","transactions","blockWithTransactions","transactionResponse","fromBlock","toBlock","filterLog","removed","allowFalsish","strict","callAddress","_block","author","_difficulty","networkId","byzantium","checkKey","checkValue","nullValue","replaceValue","checkTopic","serializeTopics","getEventTag","PollableEvents","Event","_lastBlockNumber","_inflight","deserializeTopics","pollable","coinInfos","p2pkh","p2sh","ilk","bytes32ify","matcherIpfs","matchers","_parseString","_parseBytes","getIpfsLink","numPad","padded","bytesPad","encodeBytes","datas","Resolver","resolvedAddress","formatter","supportsWildcard","_supportsEip2544","_fetch","ccipReadEnabled","_fetchBytes","_getAddress","coinType","hexBytes","coinInfo","bech32","getAvatar","linkage","avatar","getText","scheme","owner","_resolvedAddress","tokenOwner","metadataUrl","imageUrl","image","getContentHash","ipns","swarm","skynet","urlSafe","keyBytes","defaultFormatter","nextPollId","BaseProvider","_emitted","disableCcipRead","getFormatter","anyNetwork","detectNetwork","_networkPromise","_ready","knownNetwork","_maxInternalBlockNumber","_maxFilterBlockRange","_pollingInterval","_fastQueryDate","_network","defaultProvider","ccipReadFetch","urls","sender","errorMessages","errorMessage","_getInternalBlockNumber","maxAge","_internalBlockNumber","internalBlockNumber","respTime","reqTime","checkInternalBlockNumber","perform","networkError","_setFastBlockNumber","pollId","runners","pollingInterval","previousBlockNumber","eventBlockNumber","runner","getTransactionReceipt","minFromBlock","getLogs","resetEventsBlock","polling","currentNetwork","_fastBlockNumber","_fastBlockNumberPromise","detectedNetwork","_poller","_bootstrapPoll","_getFastBlockNumber","getBlockNumber","waitForTransaction","_waitForTransaction","replaceable","cancelFuncs","alreadyDone","minedHandler","lastBlockNumber","startBlock","scannedBlock","replaceHandler","mined","getTransaction","getBlockWithTransactions","_wrapTransaction","unref","addressOrName","_getBlockTag","getCode","getStorageAt","expectedHash","returnedHash","confirms","signedTransaction","hexTx","_getTransactionRequest","_getFilter","_call","redirects","txSender","urlsOffset","urlsLength","urlsData","callbackSelector","ccipResult","resolved","_getBlock","blockHashOrBlockTag","includeTransactions","blockWithTxs","getEtherPrice","getResolver","currentName","_getResolver","addrData","lookupAddress","resolverAddr","nameOrAddress","resolverAddress","_startEvent","_stopEvent","_addEventListener","stopped","eventTag","errorGas","spelunk","requireData","checkError","responseText","getResult","getLowerCase","JsonRpcSigner","addressOrIndex","connectUnchecked","UncheckedJsonRpcSigner","_address","_index","sendUncheckedTransaction","fromAddress","estimate","hexlifyTransaction","messageData","_legacySignMessage","unlock","networkOrReady","_nextId","_cache","_eventLoopCache","_uncachedDetectNetwork","getSigner","getUncheckedSigner","listAccounts","jsonrpc","prepareRequest","_startPending","_pendingFilter","pendingFilter","filterId","seq","allowExtra","allowed","buildWeb3LegacyFetcher","sendFunc","fetcher","Web3Provider","jsonRpcFetchFunc","subprovider","host","isMetaMask","buildEip1193Fetcher","sendAsync","EthereumContext","useRequiredNetwork","useEthereumAddresses","ethereumSign","switchNetwork","switchEthereumNetwork","getLinkUtilityClass","transformedColor","channelColor","LinkRoot","textDecorationColor","getTextDecoration","linkClasses","TypographyClasses","handlerRef","buildMessage","TokenClaim","substrateHex","eip712data","toU8a","clipboard","writeText","formikPath","signButtonState","setSignButtonState","ethereumSignHandler","formValues","fmt","formatMessage","substrate_address","genesis_hash","TabPanel","SetupEthereum","isExtMissing","ethers","getWeb3Provider","EthereumStep","STEP_INDEX","getMenuItemUtilityClass","MenuItemRoot","backgroundClip","menuItemClasses","dividerClasses","listItemTextClasses","listItemIconClasses","MenuItem","menuItemRef","SelectSubstrateAddress","onChangeHandler","SubstrateStep","handleStep","Account32Details","overrideRawType","toRawType","U128Details","FrameSupportWeightsDispatchInfoDetails","VestingScheduleLinearLinearScheduleDetails","oneData","toHuman","PrimitivesEthereumEthereumAddressDetails","ExtrinsicFailedDetails","dispatchInfo","ClaimingEvent","eventData","setExpanded","expandHandler","isExpanded","details","linkToExplorer","rel","TransactionProcessingStep","showLogs","stepData","MainComponent","Label","CompletedComponent","FormBody","systemChain","setSystemChain","extension","txTokenClaimsClaim","substrateAccount","injector","setSigner","signer","tokenClaims","claim","signAndSend","caught","scan","eventRecords","inclusive","system","getSystemChain","metadataDef","provide","storeKey","allProperties","extensionVersion","chainSS58","tokenDecimals","tokenSymbol","substrateUpdate","chainType","metaCalls","runtimeMetadata","asCallsOnly","runtimeVersion","getClaimsHandler","query","claims","Steps","initialFormValues","builder","providerRef","disconnectedHandler","connectedHandler","_classPrivateFieldBase","_classPrivateFieldKey","formatDate","year","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","isBn","logTo","loggerFormat","formatOther","formatWithLength","maxSize","fnResult","isDebugOn","isDebugOff","getDebugFlag","flag","_type","isDebug","DEBUG_MAX","parseEnv","isUndefined","isNull","WebSocket","isNumber","UNKNOWN","that","RpcError","captureStackTrace","formatErrorData","ASSERT","INVALID_JSONRPC","METHOD_NOT_FOUND","RpcCoder","decodeResponse","encodeJson","encodeObject","LRUNode","_classPrivateFieldLooseKey","_refs","_length","_head","_tail","_toHead","LRUCache","capacity","_toHead2","_classPrivateFieldLooseBase","lengthData","lengthRefs","known","ALIASES","chain_finalisedHead","chain_subscribeFinalisedHeads","chain_unsubscribeFinalisedHeads","eraseRecord","record","_callCache","_coder","_endpoints","_headers","_eventemitter","_handlers","_isReadyPromise","_stats","_waitingForId","_autoConnectMs","_endpointIndex","_isConnected","_subscriptions","_timeoutId","_websocket","_timeout","_send","_emit","_onSocketClose","_onSocketError","_onSocketMessage","_onSocketMessageResult","_onSocketMessageSubscribe","_onSocketOpen","_resubscribe","_timeoutHandlers","WsProvider","endpoint","autoConnectMs","_send2","getUnmapped","onclose","onopen","connectWithRetry","bytesRecv","subId","subscriptions","ids","endpoints","requests","bytesSent","hasSubscriptions","isConnected","Parent","Child","isPrototypeOf","fragmentOutgoingMessages","fragmentationThreshold","maxReceivedFrameSize","maxReceivedMessageSize","stats","isCacheable","resultPromise","ERROR_SUBSCRIBE","_endpoint","HttpProvider","Accept","packageInfo","import","findCall","callIndex","findMetaCall","findError","errorIndex","isScheduler","popResultSelector","popScheduler","objectProperty","getName","objectProperties","hasEq","compareMapArray","notEntry","hasMismatch","compareMap","Json","decodeJson","encodedLength","getT","toPrimitive","isBare","isAsciiBytes","isAscii","isAsciiStr","Raw","species","initialU8aLength","isUtf8","toUtf8","DoNotConstruct","typeName","u8aToBn","compactFromU8a","compactFromU8aLim","BN_ZERO","BN_ONE","BN_TWO","BN_HUNDRED","BN_MILLION","BN_BILLION","BN_QUINTILL","BN_MAX_INTEGER","MAX_SAFE_INTEGER","DEFAULT_OPTS","bnToU8a","valueBn","MAX_U8","MAX_U16","MAX_U32","BL_16","BL_32","compactToU8a","compareArray","AbstractArray","inspectInner","isExtended","toU8aInner","CC_TO_UP","CC_TO_LO","formatAllCaps","converter","parts","stringCamelCase","stringPascalCase","typeToConstructor","createClassUnsafe","mapToTypeMap","typesToMap","Types","getClassName","Null","noopSetDefinition","extractDef","_def","isBasic","isIndexed","Type","defValues","isRustEnum","getEntryType","checkIdx","createFromU8a","createFromValue","decodeFromJSON","keyLower","Enum","setDefinition","decodeEnum","_class","asKeys","isKeys","isNone","defIndexes","defKeys","_toRawStruct","formatFailure","decodeU8a","decodeU8aVec","startAt","Struct","jsonMap","typeMap","decodedLength","decodeU8aStruct","jsonObj","typeofArray","typeofMap","jsonKey","decodeStructFromObject","getAtIndex","isCodec","isEnum","isNumberLike","sortAsc","sortRes","minLen","sortArray","decodeMapFromMap","KeyClass","ValClass","isComplex","decodeMap","keyType","valType","decodeMapFromU8a","CodecMap","rawValue","keyA","keyB","sortMap","BTreeMap","compareSetArray","decodeSet","decodeSetFromU8a","decodeSetFromSet","BTreeSet","Compact","unwrap","decodeCompact","HashMap","ZERO_STR","MUL_P","FORMATTERS","decodeAbstractInt","MIN_SAFE_INTEGER","AbstractInt","isSigned","u8aToNumber","isUnsigned","maxBits","isMax","bnToHex","rawType","divisor","toPercentage","Int","checkCodec","checkRegistry","None","Option","decodeOption","isSome","unwrapOr","unwrapOrDefault","Tuple","Classes","decodeTuple","Range","rangeName","RangeInclusive","Result","Err","asErr","isErr","asOk","isOk","encodeSet","decodeSetArray","decodeSetNumber","computed","CodecSet","valueEncoded","_set","UInt","compactAddLength","MAX_LENGTH","Bytes","decodeBytesU8a","clength","decodeVec","Vec","decodeFrom","decodeVecLength","_other","U8aFixed","decodeU8aFixed","VecFixed","compactStripLength","WrapperKeepOpaque","opaqueName","decodeRaw","isDecoded","WrapperOpaque","TypeDefInfo","BOUNDED","ALLOWED_BOXES","BOX_PRECEDING","mappings","alias","findClosing","removeExtensions","from1","from2","from3","from4","from5","from6","removeTraits","replaceTagWith","removePairOf","removeWrap","box","flattenSingleTuple","withChecks","isSized","sanitizeMap","sanitize","KNOWN_INTERNALS","getTypeString","typeOrObj","_decodeEnum","fallbackType","Plain","getTypeDef","_decodeTuple","subType","typeSplit","_decodeAnyInt","clazz","strLength","hasWrapper","nestedExtraction","vecType","_fallback","_decodeSet","_alias","NAME_LENGTH","wrappedExtraction","Linkage","extractSubType","getTypeDefType","lookupName","getSubDefArray","getSubType","getSubDef","getTypeClassMap","subs","getTypeClassArray","createInt","Clazz","with","createHashMap","valueType","createWithSub","infoMapping","getOrUnknown","getTypeClass","typeDef","getUnsafe","isLookupType","checkInstance","created","checkPedantic","initType","isOptional","isPedantic","createdAtHash","createTypeUnsafe","firstError","__fallbackType","lazyMethod","lazyMethods","assertReturn","emptyCheck","extrinsic","CheckMortality","era","allExtensions","ChargeTransactionPayment","tip","CheckBlockGasLimit","CheckEra","CheckGenesis","CheckNonZeroSender","CheckNonce","CheckSpecVersion","CheckTxVersion","transactionVersion","CheckVersion","CheckWeight","LockStakingStatus","ValidateEquivocationReport","LimitParathreadCommits","OnlyStakingAndClaims","PrevalidateAttests","RestrictFunctionality","TransactionCallFilter","ValidateDoubleVoteReports","DisallowSigned","ChargeAssetTxPayment","assetId","fallbackExtensions","expandExtensionTypes","userExtensions","GenericEventData","createLookupType","sanitizeField","GenericEvent","DataType","findMetaEvent","decodeEvent","AbstractBase","GenericExtrinsicV4","decodeExtrinsic","addSignature","signFake","EMPTY_U8A","IMMORTAL_ERA","VERSIONS","newFromValue","GenericExtrinsic","ExtrinsicBase","signKeys","getSignedExtensionTypes","argsDef","decodeMortalEra","U64","first","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","signedExtensions","GenericSignerPayload","extensionTypes","getSignedExtensionExtra","toPayload","toRaw","GenericExtrinsicPayloadV4","withType","FAKE_SIGNATURE","toAddress","GenericExtrinsicSignatureV4","signTypes","decodeExtrinsicSignature","multiSignature","_injectSignature","createPayload","addressRaw","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","enableXOF","posOut","state32","keccak","idx1","idx0","B0","B1","Tl","curH","curL","keccakP","finish","writeInto","bufferOut","xofInto","xof","gen","hashConstructor","wrapConstructor","keccak_256","keccak_512","genShake","keccakAsU8a","js","keccak256Js","keccak512Js","isEthereumAddress","isEthereumChecksum","_3n","_8n","CURVE","Gx","Gy","weistrass","x3","USE_ENDOMORPHISM","ShaError","JacobianPoint","toInv","nums","scratch","inverted","invert","invertBatch","toAffine","toAffineBatch","fromAffine","equals","X1","Y1","Z1","X2","Y2","Z2","Z1Z1","Z2Z2","S1","S2","double","x1b","X3","Y3","Z3","ZERO","HH","HHH","subtract","multiplyUnsafe","scalar","P0","normalizeScalar","k1neg","k2neg","splitScalarEndo","k1p","k2p","precomputeWindow","windows","wNAF","affinePoint","BASE","_WINDOW_SIZE","precomputes","pointPrecomputes","normalizeZ","windowSize","maxNumber","shiftBy","wbits","multiply","fake","f1p","f2p","invZ","iz1","iz2","iz3","_setWindowSize","hasEvenY","isShort","bytesToNumber","isValidFieldElement","_6n","_11n","_22n","_23n","_44n","_88n","pow2","b88","b176","b220","b223","sqrtMod","assertValidity","ensureBytes","fromCompressedHex","fromUncompressedHex","normalizePrivateKey","truncateHash","normalizeSignature","fromHex","numTo32bStr","multiplyAndAddUnsafe","toRawBytes","isCompressed","hexToBytes","toHexX","toRawX","aP","bQ","sliceDER","parseDERInt","bytesToHex","hexToNumber","sBytes","rBytesLeft","parseDERSignature","fromDER","isWithinCurveOrder","hasHighS","normalizeS","toDERRawBytes","toDERHex","sHex","numberToHexUnpadded","rHex","rLen","sLen","toCompactRawBytes","toCompactHex","concatBytes","arrays","hexes","uint8a","POW_2_256","numTo32b","hexByte","modulo","divNearest","ENDO","POW_2_128","_sha256Sync","_hmacSha256Sync","fromCompact","nodeCrypto","web","TAGGED_HASH_PREFIXES","isValidPrivateKey","_bigintTo32Bytes","_normalizePrivateKey","hashToPrivateKey","bytesLength","randomPrivateKey","messages","subtle","createHash","hmacSha256","ckey","importKey","createHmac","sha256Sync","hmacSha256Sync","taggedHash","tagP","tagH","taggedHashSync","BN_BE_256_OPTS","getH160","decodeAccountId","GenericEthereumAccountId","addressOrPublic","u8aAddress","ethereumEncode","MAX_1BYTE","MAX_2BYTE","MAX_4BYTE","decodeAccountIndex","GenericAccountIndex","calcLength","ACCOUNT_ID_PREFIX","decodeAddressOrIndex","GenericEthereumLookupSource","readLength","decodeString","rawLength","_rawLength","writeLength","BaseAccountId","allowedBits","GenericAccountId","GenericAccountId33","GenericBlock","extrinsics","contentHash","getArgsDef","decodeCallViaObject","_meta","lookupIndex","GenericCallIndex","decodeCallViaU8a","firstCallIndex","GenericCall","decodeCall","argsEntries","_call2","createValue","asArray","decodeValue","GenericChainProperties","CID_AURA","CID_BABE","CID_GRPA","CID_POW","GenericConsensusEngineId","isAura","isBabe","isGrandpa","isPow","extractAuthor","sessionValidators","slotNumber","getAuraAuthor","getBabeAuthor","getBytesAsAuthor","GenericLookupSource","Address20","Index","GenericMultiAddress","Address32","decodeMultiAny","isFalse","isTrue","AYE_BITS","decodeVoteBool","decodeVote","decodeVoteU8a","Bool","aye","conviction","decodeVoteType","GenericVote","isAye","isNay","vote","decodeBitVec","decodeBitVecU8a","BitVec","isMsb","bitVec","Float","dv","getFloat32","getFloat64","u8aToFloat","setFloat32","setFloat64","floatToU8a","f32","f64","i8","i16","i32","i64","i128","i256","OptionBool","Text","decodeText","setOverride","override","u128","u256","usize","decodeData","decodeDataU8a","Data","BlakeTwo256","Sha256","Keccak256","ShaThree256","isRaw","asRaw","asBlakeTwo256","asKeccak256","asSha256","asShaThree256","isBlakeTwo256","isKeccak256","isSha256","isShaThree256","getSiName","HASHER_MAP","Blake2_128","Blake2_128Concat","Blake2_256","Identity","Twox128","Twox256","Twox64Concat","unwrapStorageType","isPlain","asPlain","asMap","unwrapStorageSi","decodeArgsFromMeta","hashers","getSiType","asTuple","hasher","hashLen","canDecode","decodeHashers","StorageKey","decodeStorageKey","getType","setMeta","getMeta","v11","ErrorMetadataV11","EventMetadataV11","ExtrinsicMetadataV11","FunctionArgumentMetadataV11","FunctionMetadataV11","MetadataV11","modules","ModuleConstantMetadataV11","ModuleMetadataV11","calls","constants","StorageEntryModifierV11","StorageEntryMetadataV11","StorageEntryTypeV11","linked","DoubleMap","key1","key2","key2Hasher","StorageMetadataV11","StorageHasherV11","Si1Variant","Si1Field","Si1LookupTypeId","Si1Path","Si1Type","Si1TypeDef","Composite","Variant","Sequence","Primitive","BitSequence","HistoricMetaCompat","Si1TypeDefArray","Si1TypeDefBitSequence","bitStoreType","bitOrderType","Si1TypeDefCompact","Si1TypeDefComposite","Si1TypeDefPrimitive","Si1TypeDefSequence","Si1TypeDefTuple","Si1TypeParameter","Si1TypeDefVariant","v14","PortableTypeV14","ErrorMetadataV14","EventMetadataV14","FunctionArgumentMetadataV14","FunctionMetadataV14","ExtrinsicMetadataV14","MetadataV14","pallets","PalletCallMetadataV14","PalletConstantMetadataV14","PalletErrorMetadataV14","PalletEventMetadataV14","PalletMetadataV14","PalletStorageMetadataV14","SignedExtensionMetadataV14","additionalSigned","StorageEntryMetadataV14","StorageEntryModifierV14","StorageEntryTypeV14","StorageHasherV14","Metadata","ErrorMetadataV9","EventMetadataV9","FunctionArgumentMetadataV9","FunctionMetadataV9","MetadataV9","ModuleConstantMetadataV9","ModuleMetadataV9","StorageEntryMetadataV9","StorageEntryModifierV9","StorageEntryTypeV9","StorageHasherV9","StorageMetadataV9","ErrorMetadataV10","EventMetadataV10","FunctionArgumentMetadataV10","FunctionMetadataV10","MetadataV10","ModuleConstantMetadataV10","ModuleMetadataV10","StorageEntryModifierV10","StorageEntryMetadataV10","StorageEntryTypeV10","StorageMetadataV10","StorageHasherV10","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","ErrorMetadataLatest","EventMetadataLatest","ExtrinsicMetadataLatest","FunctionArgumentMetadataLatest","FunctionMetadataLatest","MetadataLatest","PalletCallMetadataLatest","PalletConstantMetadataLatest","PalletErrorMetadataLatest","PalletEventMetadataLatest","PalletMetadataLatest","PalletStorageMetadataLatest","PortableType","SignedExtensionMetadataLatest","StorageEntryMetadataLatest","StorageEntryModifierLatest","StorageEntryTypeLatest","StorageHasher","OpaqueMetadata","MetadataAll","V0","V1","V2","V3","V4","V5","V6","V7","V8","V9","V10","V11","V12","V13","V14","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","Balance","BalanceOf","Block","BlockNumber","BlockNumberFor","BlockNumberOf","Call","CallHash","CallHashOf","ChangesTrieConfiguration","digestInterval","digestLevels","ChangesTrieSignal","NewConfiguration","ConsensusEngineId","CodecHash","CrateVersion","major","minor","patch","Digest","DigestItem","Other","AuthoritiesChange","ChangesTrieRoot","SealV0","Consensus","Seal","PreRuntime","RuntimeEnvironmentUpdated","ExtrinsicsWeight","normal","operational","H32","H64","H128","H160","H256","H512","H1024","H2048","Header","stateRoot","extrinsicsRoot","HeaderPartial","IndicesLookupSource","Justification","EncodedJustification","Justifications","KeyValue","KeyTypeId","LockIdentifier","LookupTarget","ModuleId","MultiAddress","MultiSigner","Ed25519","Sr25519","Ecdsa","Moment","OpaqueCall","Origin","OriginCaller","PalletId","PalletsOrigin","PalletVersion","Pays","Phantom","PhantomData","Releases","RuntimeDbWeight","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","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","AssetApprovalKey","AssetApproval","amount","AssetBalance","isSufficient","AssetDestroyWitness","sufficients","approvals","AssetDetails","issuer","admin","freezer","supply","minBalance","AssetMetadata","TAssetDepositBalance","UncleEntryItem","InclusionHeight","Uncle","AuraApi","authorities","slot_duration","RawAuraPreDigest","V1_V2_SHARED","current_epoch","current_epoch_start","generate_key_ownership_proof","next_epoch","submit_report_equivocation_unsigned_extrinsic","epochAuthorship","BabeApi","configuration","AllowedSlots","BabeAuthorityWeight","BabeEpochConfiguration","allowedSlots","BabeBlockWeight","BabeEquivocationProof","offender","firstHeader","secondHeader","BabeGenesisConfiguration","slotDuration","epochLength","genesisAuthorities","randomness","BabeGenesisConfigurationV1","secondarySlots","BabeWeight","MaybeRandomness","MaybeVrf","Epoch","epochIndex","startSlot","EpochAuthorship","secondary_vrf","NextConfigDescriptor","NextConfigDescriptorV1","OpaqueKeyOwnershipProof","Randomness","RawBabePreDigest","Primary","SecondaryPlain","SecondaryVRF","RawBabePreDigestPrimary","authorityIndex","vrfOutput","vrfProof","RawBabePreDigestSecondaryPlain","RawBabePreDigestSecondaryVRF","RawBabePreDigestTo159","Secondary","RawBabePreDigestPrimaryTo159","weight","RawBabePreDigestSecondaryTo159","RawBabePreDigestCompat","Two","Three","SlotNumber","VrfData","VrfOutput","VrfProof","AccountData","free","reserved","miscFrozen","feeFrozen","BalanceLockTo212","until","reasons","BalanceStatus","Reasons","ReserveData","ReserveIdentifier","VestingSchedule","perBlock","startingBlock","WithdrawReasons","TransactionPayment","Transfer","Reserve","Tip","getFinalizedHead","subscribeJustifications","pubsub","BeefyApi","validator_set","BeefyMmrApi","authority_set_proof","next_authority_set_proof","BeefyAuthoritySet","BeefyCommitment","validatorSetId","BeefyId","BeefySignedCommitment","commitment","signatures","BeefyNextAuthoritySet","BeefyPayload","BeefyPayloadId","MmrRootHash","ValidatorSetId","ValidatorSet","validators","Benchmark","benchmark_metadata","dispatch_benchmark","BenchmarkBatch","pallet","benchmark","BenchmarkConfig","selectedComponents","internalRepeats","BenchmarkList","benchmarks","BenchmarkMetadata","BenchmarkParameter","BenchmarkResult","extrinsicTime","storageRootTime","reads","repeatReads","writes","repeatWrites","proofSize","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","ayes","nays","AuthorityId","RawVRFOutput","isHistoric","getStorage","rentProjection","uploadCode","ContractsApi","get_storage","upload_code","AliveContractInfo","trieId","storageSize","pairCount","codeHash","rentAllowance","rentPaid","deductBlock","lastWrite","_reserved","CodeHash","CodeSource","Upload","Existing","CodeUploadRequest","storageDepositLimit","CodeUploadResult","CodeUploadResultValue","ContractCallRequest","inputData","ContractExecResultSuccessTo255","ContractExecResultTo255","Success","ContractExecResultSuccessTo260","gasConsumed","ContractExecResultTo260","ContractExecResultOk","ContractExecResultResult","ContractExecResultTo267","debugMessage","ContractExecResult","gasRequired","storageDeposit","ContractInfo","Alive","Tombstone","ContractCallFlags","ForwardInput","CloneInput","TailCall","AllowReentry","ContractReturnFlags","Revert","ContractStorageKey","DeletedContract","ExecReturnValue","Gas","HostFnWeightsTo264","gasLeft","valueTransferred","minimumBalance","tombstoneDeposit","weightToFee","inputPerByte","returnPerByte","terminate","restoreTo","restoreToPerDelta","depositEvent","depositEventPerTopic","depositEventPerByte","setRentAllowance","setStorage","setStoragePerByte","clearStorage","getStoragePerByte","transfer","callTransferSurcharge","callPerInputByte","callPerOutputByte","instantiatePerInputByte","instantiatePerOutputByte","hashSha2256","hashSha2256PerByte","hashKeccak256PerByte","hashBlake2256","hashBlake2256PerByte","hashBlake2128","hashBlake2128PerByte","HostFnWeights","terminatePerCodeByte","restoreToPerCallerCodeByte","restoreToPerTombstoneCodeByte","callPerCodeByte","instantiatePerCodeByte","instantiatePerSaltByte","rentParams","InstantiateRequestV1","InstantiateRequestV2","InstantiateRequest","ContractInstantiateResultTo267","ContractInstantiateResultTo299","ContractInstantiateResult","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","memoryPages","tableSize","brTableSize","subjectLen","codeSize","Limits","PrefabWasmModule","scheduleVersion","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","since","expiry","PriorLock","PropIndex","Proposal","ProxyState","Open","Active","ReferendumIndex","ReferendumInfoTo239","proposalHash","Ongoing","Finished","ReferendumInfoFinished","approved","ReferendumStatus","tally","Tally","turnout","Voting","Direct","Delegating","VotingDirect","delegations","prior","VotingDirectVote","VotingDelegating","getBlockStats","BlockStats","witnessLen","witnessCompactLen","blockNumExtrinsics","AuthorityDiscoveryApi","ApprovalFlag","DefunctVoter","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","EvmLog","EvmVicinity","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","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","Prevotes","ReportedRoundStates","best","RoundState","totalWeight","thresholdWeight","prevotes","SetId","StoredPendingChange","StoredState","Live","Paused","IdentityFields","Display","Legal","Web","Riot","Email","PgpFingerprint","Image","Twitter","IdentityInfoAdditional","IdentityInfoTo198","additional","legal","riot","pgpFingerprint","twitter","Unknown","FeePaid","Reasonable","KnownGood","OutOfDate","LowQuality","Erroneous","RegistrationJudgement","RegistrationTo198","judgements","Registration","RegistrarIndex","RegistrarInfo","fee","AuthIndex","AuthoritySignature","networkState","sessionIndex","validatorsLen","HeartbeatTo244","OpaqueMultiaddr","OpaquePeerId","OpaqueNetworkState","peerId","externalAddresses","CallIndex","LotteryConfig","generateBatchProof","generateProof","MmrApi","generate_batch_proof","generate_proof","mmr_root","verify_batch_proof","verify_batch_proof_stateless","verify_proof","verify_proof_stateless","MmrBatchProof","leafIndices","leafCount","MmrEncodableOpaqueLeaf","MmrError","MmrLeafBatchProof","leaves","MmrLeafIndex","MmrLeafProof","leaf","MmrNodeIndex","MmrProof","leafIndex","NominationPoolsApi","pending_rewards","NpApiError","DeferredOffenceOf","Kind","OffenceDetails","reporters","Offender","OpaqueTimeSlot","ReportIdOf","Reporter","DifficultyApi","TimestampApi","ProxyDefinition","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","SessionKeys1","SessionKeys2","SessionKeys3","SessionKeys4","SessionKeys5","SessionKeys6","SessionKeys6B","SessionKeys7","SessionKeys7B","SessionKeys8","SessionKeys8B","SessionKeys9","SessionKeys9B","SessionKeys10","SessionKeys10B","IdentificationTuple","MembershipProof","session","validatorCount","SessionIndex","ValidatorCount","Bid","BidKind","Deposit","Vouch","SocietyJudgement","SocietyVote","StrikeCount","VouchingStatus","Points","EraPoints","individual","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","ExtendedBalance","RawSolutionWith16","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","lastNonzeroSlash","SpanIndex","SpanRecord","slashed","paidOut","StakingLedgerTo223","stash","unlocking","StakingLedgerTo240","lastReward","claimedRewards","UnappliedSlashOther","UnappliedSlash","payout","UnlockChunk","ValidatorIndex","ValidatorIndexCompact","ValidatorPrefsWithCommission","commission","ValidatorPrefsWithBlocked","blocked","ValidatorPrefsTo196","validatorPayment","ValidatorPrefsTo145","unstakeThreshold","WeightToFeeCoefficient","coeffInteger","coeffFrac","degree","genSyncSpec","accountNextIndex","addLogFilter","addReservedPeer","dryRun","health","noErrorLog","localListenAddresses","localPeerId","nodeRoles","peers","removeReservedPeer","reservedPeers","resetLogFilter","syncState","AccountNonceApi","account_nonce","AccountInfoWithRefCountU8","AccountInfoWithRefCount","AccountInfoWithDualRefCount","consumers","AccountInfoWithProviders","AccountInfoWithTripleRefCount","ApplyExtrinsicResult","ApplyExtrinsicResultPre6","ArithmeticError","BlockLength","BlockWeights","baseBlock","maxBlock","perClass","ChainProperties","ChainType","Development","Local","Custom","ConsumedWeight","DigestOf","DispatchClass","CannotLookup","BadOrigin","Module","ConsumerRemaining","NoProviders","TooManyConsumers","Token","Arithmetic","Transactional","DispatchErrorPre6","DispatchErrorPre6First","DispatchErrorModuleU8","DispatchErrorModuleU8a","DispatchErrorModulePre6","DispatchErrorTo198","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","NetworkState","listenedAddresses","connectedPeers","notConnectedPeers","averageDownloadPerSec","averageUploadPerSec","peerset","NetworkStatePeerset","messageQueue","NetworkStatePeersetInfo","connected","reputation","NodeRole","Full","LightClient","UnknownRole","NotConnectedPeer","knownAddresses","latestPingTime","versionString","Peer","PeerEndpoint","listening","PeerEndpointAddr","localAddr","sendBackAddr","PeerPing","nanos","secs","PeerInfo","roles","protocolVersion","bestHash","bestNumber","PerDispatchClassU32","mandatory","PerDispatchClassWeight","PerDispatchClassWeightsPerClass","Phase","ApplyExtrinsic","Finalization","Initialization","RawOrigin","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","finder","closes","tips","findersFee","OpenTipTo225","OpenTipFinderTo225","OpenTipTip","TreasuryProposal","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","Timepoint","VestingInfo","locked","BlockAttestations","invalid","IncludedBlocks","actualNumber","randomSeed","activeParachains","paraBlocks","MoreAttestations","BridgedBlockHash","BridgedBlockNumber","BridgedHeader","BridgeMessageId","CallOrigin","SourceRoot","TargetAccount","SourceAccount","DeliveredMessages","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","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","ParachainHost","pvfs_require_precheck","session_info","submit_pvf_check_statement","validation_code_hash","SlotRange10","SlotRange","Bidder","New","IncomingParachain","Unset","Fixed","Deploy","IncomingParachainDeploy","initialHeadData","IncomingParachainFixed","NewBidder","SubId","AuctionIndex","LeasePeriod","LeasePeriodOf","WinningData10","WinningData","WinningDataEntry","WinnersData10","WinnersData","WinnersDataTuple10","WinnersDataTuple","ServiceQuality","DisputeLocation","DisputeResult","DisputeState","validatorsFor","validatorsAgainst","concludedAt","DisputeStatement","Valid","DisputeStatementSet","candidateHash","statements","ExplicitDisputeStatement","InvalidDisputeStatementKind","MultiDisputeStatementSet","ValidDisputeStatementKind","Explicit","BackingSeconded","BackingValid","ApprovalChecking","HrmpChannel","maxCapacity","maxTotalSize","maxMessageSize","msgCount","mqcHead","senderDeposit","recipientDeposit","HrmpChannelId","HrmpOpenChannelRequest","confirmed","age","ParachainProposal","genesisHead","RegisteredParachainInfo","slotTypes","AbridgedCandidateReceipt","parachainIndex","relayParent","collator","povBlockHash","commitments","AbridgedHostConfiguration","maxCodeSize","maxHeadDataSize","maxUpwardQueueCount","maxUpwardQueueSize","maxUpwardMessageSize","maxUpwardMessageNumPerCandidate","hrmpMaxMessageNumPerCandidate","validationUpgradeFrequency","validationUpgradeDelay","AbridgedHrmpChannel","AssignmentId","AssignmentKind","Parachain","Parathread","AttestedCandidate","candidate","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","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","ParachainDispatchOrigin","ParachainInherentData","validationData","relayChainState","ParachainsInherentData","bitfields","backedCandidates","disputes","parentHeader","ParaGenesisArgs","validationCode","parachain","ParaId","ParaInfo","ParaLifecycle","ParaPastCodeMeta","upgradeTimes","lastPruned","ParaScheduling","ParathreadClaim","ParathreadClaimQueue","nextCoreOffset","ParathreadEntry","retries","ParaValidatorIndex","PersistedValidationData","relayParentStorageRoot","PvfCheckStatement","accept","validatorIndex","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","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","BodyId","Unit","Named","Executive","Technical","Legislative","Judicial","BodyPart","Voice","Fraction","nom","denom","AtLeastProportion","MoreThanProportion","InteriorMultiLocation","NetworkId","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","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","ContractMetadataV0","metadataVersion","ContractMetadataV3","ContractProjectInfo","contract","ContractCryptoHasher","ContractDiscriminant","ContractLayoutArray","cellsPerElem","layout","ContractLayoutCell","ty","ContractLayoutEnum","dispatchKey","ContractLayoutHash","strategy","ContractLayoutHashingStrategy","ContractLayoutKey","ContractLayoutStruct","ContractLayoutStructField","ContractStorageLayout","Cell","ContractConstructorSpecV0","ContractConstructorSpecV1","ContractConstructorSpecV2","ContractConstructorSpecV3","ContractContractSpecV0","constructors","ContractContractSpecV1","ContractContractSpecV2","ContractContractSpecV3","ContractContractSpecV4","ContractDisplayName","ContractEventParamSpecV0","ContractEventParamSpecV2","ContractEventSpecV0","ContractEventSpecV1","ContractEventSpecV2","ContractMessageParamSpecV0","ContractMessageParamSpecV2","ContractMessageSpecV0","mutates","returnType","ContractMessageSpecV1","ContractMessageSpecV2","ContractSelector","ContractTypeSpec","ContractConstructorSpecLatest","ContractEventSpecLatest","ContractEventParamSpecLatest","ContractMessageParamSpecLatest","ContractMessageSpecLatest","ContractMetadataLatest","ContractMetadataV1","ContractMetadataV2","ContractMetadataV4","ContractMetadata","ContractProjectV0","ContractProject","ContractProjectContract","authors","repository","homepage","license","ContractProjectSource","wasmHash","language","compiler","aliasSection","peerCount","clientVersion","coinbase","feeHistory","getBlockByHash","getBlockByNumber","getBlockTransactionCountByHash","getBlockTransactionCountByNumber","getFilterChanges","getFilterLogs","getProof","getTransactionByBlockHashAndIndex","getTransactionByBlockNumberAndIndex","getTransactionByHash","getUncleByBlockHashAndIndex","getUncleByBlockNumberAndIndex","getUncleCountByBlockHash","getUncleCountByBlockNumber","getWork","hashrate","mining","newBlockFilter","newFilter","newPendingTransactionFilter","sendRawTransaction","submitHashrate","submitWork","syncing","uninstallFilter","ConvertTransactionRuntimeApi","convert_transaction","DebugRuntimeApi","trace_block","trace_transaction","EthereumRuntimeRPCApi","account_basic","account_code_at","chain_id","current_all","current_block","current_receipts","current_transaction_statuses","elasticity","extrinsic_filter","gas_price","storage_at","BlockV0","ommers","LegacyTransaction","TransactionV0","BlockV1","EIP2930Transaction","oddYParity","TransactionV1","Legacy","EIP2930","BlockV2","EIP1559Transaction","TransactionV2","EIP1559","EthereumAccountId","EthereumAddress","EthereumLookupSource","EthereumSignature","EthAccessListItem","EthAccessList","EthAccount","storageHash","accountProof","EthAddress","EthBlock","EthHeader","ommersHash","transactionsRoot","receiptsRoot","mixMash","EthRichBlock","sha3Uncles","totalDifficulty","sealFields","uncles","EthBloom","EthCallRequest","EthFeeHistory","oldestBlock","gasUsedRatio","EthFilter","EthFilterAddress","Single","Multiple","EthFilterChanges","Logs","Hashes","Empty","EthFilterTopic","EthFilterTopicEntry","EthFilterTopicInner","EthRichHeader","EthLog","transactionLogIndex","EthReceipt","EthReceiptV0","EthReceiptV3","EthStorageProof","EthSubKind","EthSubParams","EthSubResult","Log","TransactionHash","EthSyncInfo","warpChunksAmount","warpChunksProcessed","EthSyncStatus","Info","EthTransaction","standardV","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","getBlockHash","getHeader","subscribeAllHeads","subscribeFinalizedHeads","subscribeNewHeads","getKeys","getKeysPaged","getStorageEntries","getStorageHash","getStorageSize","PrefixedStorageKey","localStorageGet","localStorageSet","OffchainWorkerApi","offchain_worker","StorageKind","PERSISTENT","LOCAL","queryFeeDetails","queryInfo","TransactionPaymentApi","query_fee_details","query_info","TransactionPaymentCallApi","query_call_fee_details","query_call_info","FeeDetails","inclusionFee","InclusionFee","baseFee","lenFee","adjustedWeightFee","RuntimeDispatchInfo","partialFee","getChildKeys","getChildReadProof","getChildStorage","getChildStorageHash","getChildStorageSize","getMetadata","getPairs","getReadProof","getRuntimeVersion","queryStorage","queryStorageAt","subscribeRuntimeVersion","subscribeStorage","traceBlock","trieMigrationStatus","ApiId","BlockTrace","tracingTargets","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","objectNameToCamel","objectNameToString","variantToMeta","decorateErrors","sectionIndex","errorMod","filterEventsSome","decorateEvents","filtered","filterCallsSome","createCallFunction","sectionName","callMetadata","expectedArgs","funcName","extrinsicFn","isTx","createUnchecked","decorateExtrinsics","decorateConstants","_version","codec","createStorageHasher","createStorageType","entryType","isDoubleMap","asDoubleMap","toV10","convertModule","toV11","toV12","toV13","typesAlias","Approval","ApprovalKey","babe","EquivocationProof","balances","Status","beefy","contracts","electionProviderMultiPhase","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","findIndex","makeTupleType","makeVariantType","modName","variantType","setTypeOverride","sectionTypes","aliased","orig","dst","convertCalls","convertConstants","convertErrors","_sectionTypes","convertEvents","createMapEntry","isLinked","convertStorage","plain","nm","asNMap","createPallet","_knownTypes$typesAlia","getAliasTypes","toV14","v13","metaVersion","compatTypes","registerOriginCaller","convertExtrinsic","toLatest","_metaVersion","MAGIC_NUMBER","MagicNumber","U32","trimDocs","firstEmpty","toCallsOnly","flattenUniq","extractSubSingle","extractTypes","extractSubArray","unhandled","mapping","extractFieldTypes","getUniqTypes","hasType","validateTypes","getPalletNames","MetadataVersioned","magicNumber","fromPrev","asCurr","asPrev","asLatest","asV9","asV10","asV11","asV12","asV13","asV14","EMPTY_METADATA","VERSION_IDX","stringIdentity","INFO_WRAP","encodeWithParams","paramsNotation","encodeTypeDef","encodeSubTypes","asEnum","encoders","withLookup","withTypeString","TYPE_UNWRAP","PRIMITIVE_ALIAS","Char","Str","PATHS_ALIAS","splitNamespace","PATHS_SET","BITVEC_NS","WRAPPERS","RESERVED","PATH_RM_INDEX_1","sanitizeDocs","matchParts","suba","subb","extractNameFlat","portable","isInternal","camels","lowers","instanceType","extractName","rewriteDupes","rewrite","extractTypeInfo","nameInfo","porCount","extracted","lookups","dedup","original","allSame","nextDupeMatches","paramIdx","aIndex","adjusted","isPrimitive","asPrimitive","removeDupeNames","dedupCount","_lookups","_names","_params","_typeDefs","_createSiDef","_getLookupId","_extract","_extractArray","_extractBitSequence","_extractCompact","_extractComposite","_extractCompositeSet","_extractFields","_extractFieldsAlias","_extractHistoric","_extractPrimitive","_extractAliasPath","_extractSequence","_extractTuple","_extractVariant","_extractVariantEnum","PortableRegistry","isContract","_extractVariantEnum2","_extractVariant2","_extractTuple2","_extractSequence2","_extractAliasPath2","_extractPrimitive2","_extractHistoric2","_extractFieldsAlias2","_extractFields2","_extractCompositeSet2","_extractComposite2","_extractCompact2","_extractBitSequence2","_extractArray2","_extract2","_getLookupId2","_createSiDef2","_params2","hasParams","SpRuntimeUncheckedExtrinsic","FrameSystemEventRecord","extractAliases","addrParam","sigParam","siAddress","nsSignature","nsAccountId","isMultiAddress","idParam","registerTypes","lookupId","lookupNameRoot","nameField","nameOrig","aliasType","asBitSequence","asCompact","asComposite","asHistoricMetaCompat","asSequence","assertUnreachable","bitOrder","bitStore","pathFirst","pathLast","isStruct","isTuple","isFromSi","typeStr","specialVariant","bnIndex","DEFAULT_FIRST_CALL_IDX","sortDecimalStrings","valueToString","getFieldArgs","clearRecord","getVariantStringIdx","TypeRegistry","baseTypes","definitions","createType","_this$chainProperties","allDecimals","_this$chainProperties2","_this$chainProperties3","allTokens","unknownTypes","clearCache","createClass","eventIndex","withUnknown","knownTypeDef","BaseType","constructTypeClass","getChainProperties","getDefinition","getModuleInstances","moduleName","_this$knownTypes","_this$knownTypes$type","_this$knownTypes$type2","_this$knownTypes$type3","_this$knownTypes$type4","getOrThrow","hasClass","hasDef","arg1","arg2","_registerObject","setChainProperties","setHasher","setKnownTypes","setLookup","setMetadata","allCalls","palletIdx","injectExtrinsics","injectErrors","injectEvents","defSection","defMethod","setSignedExtensions","sS58Prefix","ss58Prefix","extractProperties","unknown","findUnknownExtensions","BehaviorSubject","argsArgArrayOrObject","first_1","mapOneOrManyArgs","callOrApply","createObject","combineLatest","observables","combineLatestInit","valueTransform","maybeSchedule","remainingFirstValues","hasFirstValue","execute","tap","tapObserver","isUnsub","arrReducer","defaultGetId","getInstanceId","stringParams","instanceId","unmemoize","distinctUntilChanged","comparator","keySelector","defaultCompare","previousKey","currentKey","refCount","_refCount","refCounter","sharedConnection","_connection","conn","subjectFactory","ConnectableObservable","getSubject","_subject","subject_1","_teardown","higherOrderRefCount","DEFAULT_CONFIG","subscribable","publishReplay","bufferSize","windowTime","selectorOrScheduler","timestampProvider","subjectOrSubjectFactory","multicast","Action","intervalProvider","AsyncAction","recycleAsyncId","requestAsyncId","_id","_scheduler","_execute","_delay","errorValue","errored","nextHandle","activeHandles","findAndClearHandle","clearImmediate","immediateProvider","AsapAction","_scheduled","schedulerActionCtor","Scheduler","SchedulerAction","AsyncScheduler","_active","asapScheduler","AsapScheduler","flushId","refCountDelay","CMP","ERR","NOOP","drr","skipChange","skipTimeout","source$","observer","accountIndex","indexToId","_flags","_api$query$council","_api$query$technicalC","_api$query$society","_api$query$sudo","phragmenElection","electionsPhragmen","elections","members","council","technicalCommittee","sudo","queryMulti","resultIndex","electionsMembers","councilMembers","technicalCommitteeMembers","societyMembers","sudoKey","addrStr","isIncluded","isCouncil","isSociety","isSudo","isTechCommittee","parseFlags","idAndIndex","idToIndex","indexes","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","optResult","mergeMap","concurrent","onBeforeNext","expand","innerSubScheduler","additionalFinalizer","outerNext","doInnerSub","innerComplete","bufferedValue","mergeInternals","concatAll","startWith","indicesCache","idOpt","queryAccounts","retrieveNick","_api$query$nicks","nicks","nameOf","consts","nickname","withSection","getInstance","callMethod","_proposalsFrom","proposals","proposalOf","voting","proposal","hasProposals","proposalHashes","proposalCount","collectiveMembers","collectiveHasProposals","collectiveProposal","collectiveProposalCount","collectiveProposalHashes","collectiveProposals","collectivePrime","_getIds","_ids","voterList","bagsList","listBags","bags","bag","bagLower","bagUpper","orderBags","listNodes","getExpanded","onExec","traverseLinks","createCmp","bnMax","bnMin","calcShared","locks","allLocked","lockedBreakdown","vestingLocked","notAll","calcLocked","availableBalance","calcBalances","allLocks","namedReserves","_vesting","isVesting","vestedBalances","vestedBalance","vestingTotal","vestedClaimable","endBlock","vested","calcVesting","accountNonce","queryOld","optVesting","vestingNew","isNonNullable","nullable","createCalls","queryCurrent","balanceInstances","_api$query$vesting","lockEmpty","lockQueries","_m","_api$query","customLocks","reserveEmpty","reserveQueries","_api$query2","reserves","opt","offsetLock","offsetReserve","_api$query$system","_api$query$balances","zeroBalance","reservedBalance","frozenFee","frozenMisc","votingBalance","queryBalancesFree","queryNonceOnly","queryBalancesAccount","_api$query$m","customAccount","extract","querySystemAccount","infoOrTuple","nonDefaultBalances","_api$query$balances2","votingBalances","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","authorMapping","mappingWithDeposit","mapId","isConsensus","asConsensus","isPreRuntime","asPreRuntime","bestNumberFinalized","bestNumberLag","citem","pitem","sitem","isSeal","asSeal","createHeaderExtended","HeaderBase","signedBlock","SignedBlockBase","records","isApplyExtrinsic","asApplyExtrinsic","createSignedBlockExtended","_getHeaderRange","startHash","endHash","prevHash","subscribeNewBlocks","callBaseFee","contractFee","creationFee","transactionBaseFee","transactionByteFee","transferFee","rentByteFee","rentDepositOffset","surchargeReward","queryConstants","isVoter","retrieveStakeOf","stakeOf","retrieveVoteOf","votesOf","stakes","voter","staker","retrievePrev","retrieveCurrent","childKey","crowdloan","funds","optInfo","fundIndex","createChildKey","arrayFlatten","extractContributed","_events$createdAtHash","eventParaId","added","PAGE_SIZE_K","_getUpdates","addedDelta","removedDelta","_getAll","_events$createdAtHash2","_eventTriggerAll","childstate","startKey","keyArr","_getKeysPaged","contributions","contributorsMap","contributorsHex","_contributions","_getValues","_watchOwnChanges","childkey","ownContributions","latest","DEMOCRACY_ID","queryScheduler","democracy","referendumsFinished","agenda","blockNumbers","schedulerEntries","agendas","imageHash","isHash","asHash","asValue","preimages","infos","images","dispatchQueue","_api$query$scheduler","dispatches","dispatchIndex","queryQueue","LOCKUPS","parseLock","referendum","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","imageOpt","isDemocracyPreimage","isMissing","asAvailable","parseDemocracy","optDepositors","_optDepositors$index","proposalIndex","depositors","isNewDepositors","seconds","_api$query$democracy2","publicProps","depositOf","referendumIds","lowestUnbaked","referendumCount","referendumsActive","_referendumsVotes","referendumsInfo","SQRT_MAX_SAFE_INTEGER","bnSqrt","x0","compareRationals","n1","n2","calcPassing","sqrtElectorate","isSimpleMajority","votedAye","votedNay","votedTotal","sqrtVoters","isSuperMajorityApprove","calcPassingOther","calcVotes","allAye","allNay","derived","voteCountAye","voteCountNay","calcVotesCurrent","isDefault","counted","isPassing","votesPrev","votersFor","voteOf","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","getConstants","mapResult","heartbeats","numBlocks","validatorId","hasMessage","isOnline","receivedHeartbeats","_api$query$imOnline","imOnline","overview","currentIndex","authoredBlocks","didUpdateToBool","didUpdate","parseActive","retriable","isWithRetries","isRetriable","asWithRetries","parseCollators","collatorQueue","registrar","retryQueue","selectedThreads","paras","pendingSwap","heads","relayDispatchQueue","pendingSwapId","retryCollators","selectedCollators","pendingSwaps","relayDispatchQueueSizes","_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","_api$query$staking","erasStartSessionIndex","currentSlot","genesisSlot","optStartIndex","queryBabe","epochOrGenesisStartSlot","activeEraStartSessionIndex","epochStartSlot","sessionProgress","eraProgress","createDerive","queryAura","suspendedCandidates","suspended","isSuspended","bids","defender","founder","maxMembers","hasDefender","member","_members","payouts","strikes","defenderVotes","suspendedMembers","vouching","isDefenderVoter","QUERY_OPTS","withDestination","withLedger","withNominations","withPrefs","calculateUnlocking","stakingLedger","sessionInfo","eraString","remainingEras","redeemableSum","redeemable","keysMulti","queries","currentPoints","erasRewardPoints","deriveNoopCache","del","deriveCache","wrapCache","keyStart","getEraCache","CACHE_KEY","withActive","cacheKey","getEraMultiCache","eras","setEraCache","setEraMultiCache","filterCachedEras","arrayChunk","chunkSize","outputSize","setDeriveCache","filterEras","erasHistoricApply","erasHistoric","erasHistoricApplyAccount","singleEra","combineEras","chunked","chunkEras","mapStakers","stakers","exposure","nominatorId","_eraExposure","erasStakersClipped","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","DEFAULT_FLAGS","withController","withExposure","combineAccounts","nextElected","electedInfo","stashId","stashIds","queuedKeys","_api$consts$session","dedupKeyPrefix","nextKeys","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","parseRewards","eraValidators","allValPoints","allValPrefs","_allValPrefs$validato","_exposure$total","valPoints","valComm","expTotal","avail","valCut","staked","stakerExp","allUniqValidators","perStash","uniq","filterRewards","valInfo","queryValidators","rm","valLedger","removeClaimed","_stakerRewardsEras","_stakerRewards","erasResult","allRewards","stashValidators","queriedVals","stakerRewards","stakerRewardsMultiEras","stakerRewardsMulti","_stakerSlashes","slashes","stakerSlashes","stashes","onBondedEvent","currentElected","waitingInfo","elected","waiting","approvalIds","proposalIds","allIds","councilProposals","councilTreasury","approveProposal","rejectProposal","isApproval","approvalId","retrieveProposals","FALLBACK_PERIOD","MAX_FINALITY_LAG","MORTAL_PERIOD","latestNonce","nextNonce","_api$rpc$system","signingHeader","signingInfo","_instanceId","_api$consts$system","_api$consts$system$bl","_api$consts$timestamp","mortalLength","blockHashCount","expectedBlockTime","minimumPeriod","alliance","membership","lazyDeriveSection","checks","allianceMotion","withDetect","injectFunctions","derives","filterKeys","filterInstances","defs","EMPTY_META","logErrorMessage","isTreatAsHex","RpcCore","userRpc","sectionNames","rpcDefinitions","sections","addUserInterfaces","setRegistrySwap","registrySwap","setResolveBlockHash","resolveBlockHash","_createMethodSubscribe","_createMethodSend","_memomize","memoOpts","_formatResult","isScale","_formatOutput","rpcName","hashIndex","callWithRegistry","_this$getBlockHash","blockId","_formatInputs","isDelayed","_memoized","_memoized2","_createSubscriber","errorHandler","paramsJson","subName","updateType","subMethod","unsubMethod","unsubName","subscriptionPromise","_memoized3","_memoized4","subscriptionId","reqArgCount","optText","_formatStorageData","_formatStorageSet","_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","v3","v4","adjustV","h64","xxhashAsU8a","DEFAULT_FN","HASHERS","NO_RAW_ARGS","assertArgs","filterDefined","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","changesTrieConfig","childStorageKeyPrefix","extrinsicIndex","heapPages","VERSION_DOCS","decorateStorage","_prefix","palletVersion","stringUpperFirst","seen","defaultIfEmpty","throwIfEmpty","errorFactory","defaultErrorFactory","hasDefaultValue","isKeyringPair","filterEvents","txHash","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","optionsOrNonce","eraOptions","updateId","asInBlock","asFinalized","signPayload","signRaw","optionsOrHash","paymentInfo","transactionPaymentApi","callAt","allOptions","signOptions","signAsync","mapTo","optionalStatusCb","withResultTransform","createSubmittable","Submittable","objectClear","logLength","logValues","findSectionExcludes","extractSections","srcSections","dstSections","findMethodExcludes","excludes","srcMethods","dstMethods","extractMethods","augmentObject","fromEmpty","decorateDeriveSections","extractStorageArgs","_args","instanceCounter","getAtQueryFn","textToString","_atLast","_healthTimer","_registries","_updateSub","_waitingRegistries","_onProviderConnect","_onProviderDisconnect","_onProviderError","_onProviderConnect2","cryptoReady","_options","initWasm","hasMeta","_loadMeta","_subscribeHealth","_isReady","_onProviderDisconnect2","_unsubscribeHealth","_onProviderError2","assertResult","toRxMethod","ApiRx","_options$source","LATEST_EXTRINSIC_VERSION","_rx","knownVersion","thisProvider","_rpcCore","_decorateMethod","supportMulti","_emptyDecorated","_createDecorated","decoratedApi","decoratedMeta","expandMetadata","_decorateCalls","runtimeRx","_rxDecorateMethod","_decorateStorage","storageRx","_decorateMultiAt","_decorateMulti","createdAt","_injectMetadata","_consts","_query","_decorateExtrinsics","rxtx","_extrinsics","injectMetadata","_decorateFunctionMeta","_filterRpc","_decorateRpc","_rpc","sectionMap","nameA","nameB","_runtimeMap","_filterRpcMethods","exposed","hasResults","noInitWarn","decorateFn","decorateInternal","_addRuntimeDef","_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","getArgs","getQueryAt","_decorateStorageCall","sizeAt","_retrieveMapEntries","entriesAt","entriesPaged","_retrieveMapEntriesPaged","_retrieveMapKeys","keysAt","keysPaged","_retrieveMapKeysPaged","_retrieveMulti","_queueStorage","valueObs","queueIdx","valueIdx","overrideNoSub","headKey","startSubject","pageSize","valsArr","_decorateDeriveRx","_this$_runtimeVersion","_this$_options$typesB","_this$_options$typesB2","_this$_options$typesB3","_runtimeVersion","custom","getAvailableDerives","_decorateDerive","_queryMulti","getBlockRegistry","_initRegistry","chainProps","_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","lastBlockHash","_cacheBlockRegistryProgress","_getBlockRegistryViaVersion","existingViaVersion","_genesisHash","firstVersion","lastVersion","getUpgradeVersion","_createBlockRegistry","_getBlockRegistryViaHash","_this$_options$source","_unsubscribeUpdates","_runtimeMetadata","_metaFromSource","_metaFromChain","_initFromMeta","_extrinsicType","extrinsicVersion","rpcs","_subscribeUpdates","thisRegistry","optMetadata","rpcMethods","chainMetadata","metadataKey","throwOnUnknown","_unsubscribe","libraryInfo","_signer","setKeys","FacetecDeviceSdkParams","deviceKeyIdentifier","publicFaceMapEncryptionKey","productionKey","LivenessData","faceScan","auditTrailImage","lowQualityAuditTrailImage","UnixMilliseconds","BioauthStatusActive","expiresAt","BioauthStatus","Inactive","getFacetecDeviceSdkParams","provideLivenessData","enroll","authenticate","getFacetecSessionToken","asyncScheduler","dueTime","intervalOrScheduler","intervalDuration","due","isValidDate","initialTaggedState","setTaggedState","interval$","SyncStateGuard","setSyncState","systemHealth","IsNotSupportedPeer","RequirementsInitializing","SubstrateExtensionMissing","ApiLoadingPage","ApiEstablishingPage","ApiDisconnectedPage","Requirements","substrateExtensionMissing","ApiConnector","connectionUrl","handleSetConnectionUrl","newConnectionUrl","createApi","throwOnConnect","establishing","disconnected","ErrorPage","CheckPeerVersion","supportedPeerVersion","isSupportedPeerVersion","synced","systemHealthHandler","useSyncState","CommonBoundary","useSetupDefaultConnectionUrl","requiredHexFormat","environment","Content","ConfigInitializing","ErrorConfig","WithConfig","MuiSkeleton","MuiAlert","standardInfo","standardError","standardSuccess","standardWarning","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","reportWebVitals"],"sourceRoot":""}