var __awaiter=this&&this.__awaiter||function(n,t,i,a){function e(n){return n instanceof i?n:new i((function(t){t(n)}))}return new(i||(i=Promise))((function(i,r){function o(n){try{c(a.next(n))}catch(n){r(n)}}function f(n){try{c(a["throw"](n))}catch(n){r(n)}}function c(n){n.done?i(n.value):e(n.value).then(o,f)}c((a=a.apply(n,t||[])).next())}))};var __generator=this&&this.__generator||function(n,t){var i={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},a,e,r,o;return o={next:f(0),throw:f(1),return:f(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function f(n){return function(t){return c([n,t])}}function c(f){if(a)throw new TypeError("Generator is already executing.");while(o&&(o=0,f[0]&&(i=0)),i)try{if(a=1,e&&(r=f[0]&2?e["return"]:f[0]?e["throw"]||((r=e["return"])&&r.call(e),0):e.next)&&!(r=r.call(e,f[1])).done)return r;if(e=0,r)f=[f[0]&2,r.value];switch(f[0]){case 0:case 1:r=f;break;case 4:i.label++;return{value:f[1],done:false};case 5:i.label++;e=f[1];f=[0];continue;case 7:f=i.ops.pop();i.trys.pop();continue;default:if(!(r=i.trys,r=r.length>0&&r[r.length-1])&&(f[0]===6||f[0]===2)){i=0;continue}if(f[0]===3&&(!r||f[1]>r[0]&&f[1]