-1?Qn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Qn[e]=/HTMLUnknownElement/.test(t.toString())},I(On.options.directives,Zi),I(On.options.components,pr),On.prototype.__patch__=q?Wi:V,On.prototype.$mount=function(e,t){return function(e,t,n){var a;return e.$el=t,e.$options.render||(e.$options.render=be),nn(e,"beforeMount"),a=function(){e._update(e._render(),n)},new fn(e,a,V,{before:function(){e._isMounted&&!e._isDestroyed&&nn(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,nn(e,"mounted")),e}(this,e=e&&q?ta(e):void 0,t)},q&&setTimeout((function(){j.devtools&&se&&se.emit("init",On)}),0);var lr=/\{\{((?:.|\r?\n)+?)\}\}/g,cr=/[-.*+?^${}()|[\]\/\\]/g,yr=k((function(e){var t=e[0].replace(cr,"\\$&"),n=e[1].replace(cr,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")}));var mr={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=ja(e,"class");n&&(e.staticClass=JSON.stringify(n));var a=Ba(e,"class",!1);a&&(e.classBinding=a)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var fr,hr={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=ja(e,"style");n&&(e.staticStyle=JSON.stringify(oi(n)));var a=Ba(e,"style",!1);a&&(e.styleBinding=a)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},vr=function(e){return(fr=fr||document.createElement("div")).innerHTML=e,fr.textContent},br=h("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),Tr=h("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),gr=h("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),wr=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,kr=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,_r="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+N.source+"]*",xr="((?:"+_r+"\\:)?"+_r+")",Sr=new RegExp("^<"+xr),Or=/^\s*(\/?)>/,Ar=new RegExp("^<\\/"+xr+"[^>]*>"),Cr=/^]+>/i,Mr=/^",""":'"',"&":"&","
":"\n"," ":"\t","'":"'"},Er=/&(?:lt|gt|quot|amp|#39);/g,Pr=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Fr=h("pre,textarea",!0),$r=function(e,t){return e&&Fr(e)&&"\n"===t[0]};function Lr(e,t){var n=t?Pr:Er;return e.replace(n,(function(e){return Rr[e]}))}var Br,jr,Nr,Wr,Ur,Hr,Gr,zr,qr=/^@|^v-on:/,Xr=/^v-|^@|^:|^#/,Kr=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Yr=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Jr=/^\(|\)$/g,Zr=/^\[.*\]$/,Qr=/:(.*)$/,es=/^:|^\.|^v-bind:/,ts=/\.[^.\]]+(?=[^\]]*$)/g,ns=/^v-slot(:|$)|^#/,as=/[\r\n]/,is=/[ \f\t\r\n]+/g,rs=k(vr);function ss(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ys(t),rawAttrsMap:{},parent:n,children:[]}}function os(e,t){Br=t.warn||Da,Hr=t.isPreTag||R,Gr=t.mustUseProp||R,zr=t.getTagNamespace||R;var n=t.isReservedTag||R;(function(e){return!(!(e.component||e.attrsMap[":is"]||e.attrsMap["v-bind:is"])&&(e.attrsMap.is?n(e.attrsMap.is):n(e.tag)))}),Nr=Va(t.modules,"transformNode"),Wr=Va(t.modules,"preTransformNode"),Ur=Va(t.modules,"postTransformNode"),jr=t.delimiters;var a,i,r=[],s=!1!==t.preserveWhitespace,o=t.whitespace,d=!1,u=!1;function p(e){if(l(e),d||e.processed||(e=ds(e,t)),r.length||e===a||a.if&&(e.elseif||e.else)&&ps(a,{exp:e.elseif,block:e}),i&&!e.forbidden)if(e.elseif||e.else)s=e,(o=function(e){for(var t=e.length;t--;){if(1===e[t].type)return e[t];e.pop()}}(i.children))&&o.if&&ps(o,{exp:s.elseif,block:s});else{if(e.slotScope){var n=e.slotTarget||'"default"';(i.scopedSlots||(i.scopedSlots={}))[n]=e}i.children.push(e),e.parent=i}var s,o;e.children=e.children.filter((function(e){return!e.slotScope})),l(e),e.pre&&(d=!1),Hr(e.tag)&&(u=!1);for(var p=0;p]*>)","i")),c=e.replace(l,(function(e,n,a){return u=a.length,Dr(p)||"noscript"===p||(n=n.replace(//g,"$1").replace(//g,"$1")),$r(p,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""}));d+=e.length-c.length,e=c,O(p,d-u,d)}else{var y=e.indexOf("<");if(0===y){if(Mr.test(e)){var m=e.indexOf("--\x3e");if(m>=0){t.shouldKeepComment&&t.comment(e.substring(4,m),d,d+m+3),_(m+3);continue}}if(Ir.test(e)){var f=e.indexOf("]>");if(f>=0){_(f+2);continue}}var h=e.match(Cr);if(h){_(h[0].length);continue}var v=e.match(Ar);if(v){var b=d;_(v[0].length),O(v[1],b,d);continue}var T=x();if(T){S(T),$r(T.tagName,e)&&_(1);continue}}var g=void 0,w=void 0,k=void 0;if(y>=0){for(w=e.slice(y);!(Ar.test(w)||Sr.test(w)||Mr.test(w)||Ir.test(w)||(k=w.indexOf("<",1))<0);)y+=k,w=e.slice(y);g=e.substring(0,y)}y<0&&(g=e),g&&_(g.length),t.chars&&g&&t.chars(g,d-g.length,d)}if(e===n){t.chars&&t.chars(e);break}}function _(t){d+=t,e=e.substring(t)}function x(){var t=e.match(Sr);if(t){var n,a,i={tagName:t[1],attrs:[],start:d};for(_(t[0].length);!(n=e.match(Or))&&(a=e.match(kr)||e.match(wr));)a.start=d,_(a[0].length),a.end=d,i.attrs.push(a);if(n)return i.unarySlash=n[1],_(n[0].length),i.end=d,i}}function S(e){var n=e.tagName,d=e.unarySlash;r&&("p"===a&&gr(n)&&O(a),o(n)&&a===n&&O(n));for(var u=s(n)||!!d,p=e.attrs.length,l=new Array(p),c=0;c=0&&i[s].lowerCasedTag!==o;s--);else s=0;if(s>=0){for(var u=i.length-1;u>=s;u--)t.end&&t.end(i[u].tag,n,r);i.length=s,a=s&&i[s-1].tag}else"br"===o?t.start&&t.start(e,[],!0,n,r):"p"===o&&(t.start&&t.start(e,[],!1,n,r),t.end&&t.end(e,n,r))}O()}(e,{warn:Br,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,n,s,o,l){var c=i&&i.ns||zr(e);J&&"svg"===c&&(n=function(e){for(var t=[],n=0;nd&&(o.push(r=e.slice(d,i)),s.push(JSON.stringify(r)));var u=Ma(a[1].trim());s.push("_s("+u+")"),o.push({"@binding":u}),d=i+a[0].length}return d-1"+("true"===r?":("+t+")":":_q("+t+","+r+")")),La(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+r+"):("+s+");if(Array.isArray($$a)){var $$v="+(a?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Ha(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Ha(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Ha(t,"$$c")+"}",null,!0)}(e,a,i);else if("input"===r&&"radio"===s)!function(e,t,n){var a=n&&n.number,i=Ba(e,"value")||"null";Ra(e,"checked","_q("+t+","+(i=a?"_n("+i+")":i)+")"),La(e,"change",Ha(t,i),null,!0)}(e,a,i);else if("input"===r||"textarea"===r)!function(e,t,n){var a=e.attrsMap.type;0;var i=n||{},r=i.lazy,s=i.number,o=i.trim,d=!r&&"range"!==a,u=r?"change":"range"===a?"__r":"input",p="$event.target.value";o&&(p="$event.target.value.trim()");s&&(p="_n("+p+")");var l=Ha(t,p);d&&(l="if($event.target.composing)return;"+l);Ra(e,"value","("+t+")"),La(e,u,l,null,!0),(o||s)&&La(e,"blur","$forceUpdate()")}(e,a,i);else{if(!j.isReservedTag(r))return Ua(e,a,i),!1}return!0},text:function(e,t){t.value&&Ra(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Ra(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:br,mustUseProp:Fn,canBeLeftOpenTag:Tr,isReservedTag:Jn,getTagNamespace:Zn,staticKeys:function(e){return e.reduce((function(e,t){return e.concat(t.staticKeys||[])}),[]).join(",")}(vs)},ws=k((function(e){return h("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))}));function ks(e,t){e&&(bs=ws(t.staticKeys||""),Ts=t.isReservedTag||R,function e(t){if(t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||v(e.tag)||!Ts(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(bs)))}(t),1===t.type){if(!Ts(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,a=t.children.length;n|^function(?:\s+[\w$]+)?\s*\(/,xs=/\([^)]*?\);*$/,Ss=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Os={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},As={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Cs=function(e){return"if("+e+")return null;"},Ms={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Cs("$event.target !== $event.currentTarget"),ctrl:Cs("!$event.ctrlKey"),shift:Cs("!$event.shiftKey"),alt:Cs("!$event.altKey"),meta:Cs("!$event.metaKey"),left:Cs("'button' in $event && $event.button !== 0"),middle:Cs("'button' in $event && $event.button !== 1"),right:Cs("'button' in $event && $event.button !== 2")};function Is(e,t){var n=t?"nativeOn:":"on:",a="",i="";for(var r in e){var s=Ds(e[r]);e[r]&&e[r].dynamic?i+=r+","+s+",":a+='"'+r+'":'+s+","}return a="{"+a.slice(0,-1)+"}",i?n+"_d("+a+",["+i.slice(0,-1)+"])":n+a}function Ds(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map((function(e){return Ds(e)})).join(",")+"]";var t=Ss.test(e.value),n=_s.test(e.value),a=Ss.test(e.value.replace(xs,""));if(e.modifiers){var i="",r="",s=[];for(var o in e.modifiers)if(Ms[o])r+=Ms[o],Os[o]&&s.push(o);else if("exact"===o){var d=e.modifiers;r+=Cs(["ctrl","shift","alt","meta"].filter((function(e){return!d[e]})).map((function(e){return"$event."+e+"Key"})).join("||"))}else s.push(o);return s.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Vs).join("&&")+")return null;"}(s)),r&&(i+=r),"function($event){"+i+(t?"return "+e.value+".apply(null, arguments)":n?"return ("+e.value+").apply(null, arguments)":a?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(a?"return "+e.value:e.value)+"}"}function Vs(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=Os[e],a=As[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(a)+")"}var Rs={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:V},Es=function(e){this.options=e,this.warn=e.warn||Da,this.transforms=Va(e.modules,"transformCode"),this.dataGenFns=Va(e.modules,"genData"),this.directives=I(I({},Rs),e.directives);var t=e.isReservedTag||R;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Ps(e,t){var n=new Es(t);return{render:"with(this){return "+(e?"script"===e.tag?"null":Fs(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Fs(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return $s(e,t);if(e.once&&!e.onceProcessed)return Ls(e,t);if(e.for&&!e.forProcessed)return js(e,t);if(e.if&&!e.ifProcessed)return Bs(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',a=Hs(e,t),i="_t("+n+(a?",function(){return "+a+"}":""),r=e.attrs||e.dynamicAttrs?qs((e.attrs||[]).concat(e.dynamicAttrs||[]).map((function(e){return{name:x(e.name),value:e.value,dynamic:e.dynamic}}))):null,s=e.attrsMap["v-bind"];!r&&!s||a||(i+=",null");r&&(i+=","+r);s&&(i+=(r?"":",null")+","+s);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var a=t.inlineTemplate?null:Hs(t,n,!0);return"_c("+e+","+Ns(t,n)+(a?","+a:"")+")"}(e.component,e,t);else{var a;(!e.plain||e.pre&&t.maybeComponent(e))&&(a=Ns(e,t));var i=e.inlineTemplate?null:Hs(e,t,!0);n="_c('"+e.tag+"'"+(a?","+a:"")+(i?","+i:"")+")"}for(var r=0;r>>0}(s):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var r=function(e,t){var n=e.children[0];0;if(n&&1===n.type){var a=Ps(n,t.options);return"inlineTemplate:{render:function(){"+a.render+"},staticRenderFns:["+a.staticRenderFns.map((function(e){return"function(){"+e+"}"})).join(",")+"]}"}}(e,t);r&&(n+=r+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+qs(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ws(e){return 1===e.type&&("slot"===e.tag||e.children.some(Ws))}function Us(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Bs(e,t,Us,"null");if(e.for&&!e.forProcessed)return js(e,t,Us);var a="_empty_"===e.slotScope?"":String(e.slotScope),i="function("+a+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(Hs(e,t)||"undefined")+":undefined":Hs(e,t)||"undefined":Fs(e,t))+"}",r=a?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+r+"}"}function Hs(e,t,n,a,i){var r=e.children;if(r.length){var s=r[0];if(1===r.length&&s.for&&"template"!==s.tag&&"slot"!==s.tag){var o=n?t.maybeComponent(s)?",1":",0":"";return""+(a||Fs)(s,t)+o}var d=n?function(e,t){for(var n=0,a=0;a':'',Zs.innerHTML.indexOf("
")>0}var no=!!q&&to(!1),ao=!!q&&to(!0),io=k((function(e){var t=ta(e);return t&&t.innerHTML})),ro=On.prototype.$mount;On.prototype.$mount=function(e,t){if((e=e&&ta(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var a=n.template;if(a)if("string"==typeof a)"#"===a.charAt(0)&&(a=io(a));else{if(!a.nodeType)return this;a=a.innerHTML}else e&&(a=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(a){0;var i=eo(a,{outputSourceRange:!1,shouldDecodeNewlines:no,shouldDecodeNewlinesForHref:ao,delimiters:n.delimiters,comments:n.comments},this),r=i.render,s=i.staticRenderFns;n.render=r,n.staticRenderFns=s}}return ro.call(this,e,t)},On.compile=eo,t.a=On}).call(this,n(0),n(7).setImmediate)},function(e){e.exports=JSON.parse('{"a":"hardhat-docgen","b":{"type":"git","url":"git+https://github.com/ItsNickBarry/hardhat-docgen.git"}}')},function(e,t,n){var a=n(5);a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n(11).default)("0b345cf4",a,!1,{})},function(e,t,n){"use strict";n(3)},function(e,t,n){(t=e.exports=n(6)(!1)).push([e.i,"@import url(https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;500;600;700&display=swap);",""]),t.push([e.i,"\nhtml,\nbody {\n font-family: 'Source Code Pro', monospace;\n}\n",""])},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",a=e[3];if(!a)return n;if(t&&"function"==typeof btoa){var i=(s=a,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */"),r=a.sources.map((function(e){return"/*# sourceURL="+a.sourceRoot+e+" */"}));return[n].concat(r).concat([i]).join("\n")}var s;return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n})).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var a={},i=0;i=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(8),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(0))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var a,i,r,s,o,d=1,u={},p=!1,l=e.document,c=Object.getPrototypeOf&&Object.getPrototypeOf(e);c=c&&c.setTimeout?c:e,"[object process]"==={}.toString.call(e.process)?a=function(){var e=y(arguments);return t.nextTick(m(f,e)),e}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((r=new MessageChannel).port1.onmessage=function(e){f(e.data)},a=function(){var e=y(arguments);return r.port2.postMessage(e),e}):l&&"onreadystatechange"in l.createElement("script")?(i=l.documentElement,a=function(){var e=y(arguments),t=l.createElement("script");return t.onreadystatechange=function(){f(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t),e}):a=function(){var e=y(arguments);return setTimeout(m(f,e),0),e}:(s="setImmediate$"+Math.random()+"$",o=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(s)&&f(+t.data.slice(s.length))},e.addEventListener?e.addEventListener("message",o,!1):e.attachEvent("onmessage",o),a=function(){var t=y(arguments);return e.postMessage(s+t,"*"),t}),c.setImmediate=a,c.clearImmediate=h}function y(e){return u[d]=m.apply(void 0,e),d++}function m(e){var t=[].slice.call(arguments,1);return function(){"function"==typeof e?e.apply(void 0,t):new Function(""+e)()}}function f(e){if(p)setTimeout(m(f,e),0);else{var t=u[e];if(t){p=!0;try{t()}finally{h(e),p=!1}}}}function h(e){delete u[e]}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,n(0),n(9))},function(e,t){var n,a,i=e.exports={};function r(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function o(e){if(n===setTimeout)return setTimeout(e,0);if((n===r||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:r}catch(e){n=r}try{a="function"==typeof clearTimeout?clearTimeout:s}catch(e){a=s}}();var d,u=[],p=!1,l=-1;function c(){p&&d&&(p=!1,d.length?u=d.concat(u):l=-1,u.length&&y())}function y(){if(!p){var e=o(c);p=!0;for(var t=u.length;t;){for(d=u,u=[];++l1)for(var n=1;n0?u(n.join("=")):null;void 0===t[a]?t[a]=i:Array.isArray(t[a])?t[a].push(i):t[a]=[t[a],i]})),t):t}function c(e){var t=e?Object.keys(e).map((function(t){var n=e[t];if(void 0===n)return"";if(null===n)return d(t);if(Array.isArray(n)){var a=[];return n.forEach((function(e){void 0!==e&&(null===e?a.push(d(t)):a.push(d(t)+"="+d(e)))})),a.join("&")}return d(t)+"="+d(n)})).filter((function(e){return e.length>0})).join("&"):null;return t?"?"+t:""}var y=/\/?$/;function m(e,t,n,a){var i=a&&a.options.stringifyQuery,r=t.query||{};try{r=f(r)}catch(e){}var s={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:r,params:t.params||{},fullPath:b(t,i),matched:e?v(e):[]};return n&&(s.redirectedFrom=b(n,i)),Object.freeze(s)}function f(e){if(Array.isArray(e))return e.map(f);if(e&&"object"==typeof e){var t={};for(var n in e)t[n]=f(e[n]);return t}return e}var h=m(null,{path:"/"});function v(e){for(var t=[];e;)t.unshift(e),e=e.parent;return t}function b(e,t){var n=e.path,a=e.query;void 0===a&&(a={});var i=e.hash;return void 0===i&&(i=""),(n||"/")+(t||c)(a)+i}function T(e,t,n){return t===h?e===t:!!t&&(e.path&&t.path?e.path.replace(y,"")===t.path.replace(y,"")&&(n||e.hash===t.hash&&g(e.query,t.query)):!(!e.name||!t.name)&&(e.name===t.name&&(n||e.hash===t.hash&&g(e.query,t.query)&&g(e.params,t.params))))}function g(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var n=Object.keys(e).sort(),a=Object.keys(t).sort();return n.length===a.length&&n.every((function(n,i){var r=e[n];if(a[i]!==n)return!1;var s=t[n];return null==r||null==s?r===s:"object"==typeof r&&"object"==typeof s?g(r,s):String(r)===String(s)}))}function w(e){for(var t=0;t=0&&(t=e.slice(a),e=e.slice(0,a));var i=e.indexOf("?");return i>=0&&(n=e.slice(i+1),e=e.slice(0,i)),{path:e,query:n,hash:t}}(r.path||""),c=t&&t.path||"/",y=u.path?x(u.path,c,n||r.append):c,m=function(e,t,n){void 0===t&&(t={});var a,i=n||l;try{a=i(e||"")}catch(e){a={}}for(var r in t){var s=t[r];a[r]=Array.isArray(s)?s.map(p):p(s)}return a}(u.query,r.query,a&&a.options.parseQuery),f=r.hash||u.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:y,query:m,hash:f}}var G,z=function(){},q={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,a=this.$route,r=n.resolve(this.to,a,this.append),s=r.location,o=r.route,d=r.href,u={},p=n.options.linkActiveClass,l=n.options.linkExactActiveClass,c=null==p?"router-link-active":p,f=null==l?"router-link-exact-active":l,h=null==this.activeClass?c:this.activeClass,v=null==this.exactActiveClass?f:this.exactActiveClass,b=o.redirectedFrom?m(null,H(o.redirectedFrom),null,n):o;u[v]=T(a,b,this.exactPath),u[h]=this.exact||this.exactPath?u[v]:function(e,t){return 0===e.path.replace(y,"/").indexOf(t.path.replace(y,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(a,b);var g=u[v]?this.ariaCurrentValue:null,w=function(e){X(e)&&(t.replace?n.replace(s,z):n.push(s,z))},k={click:X};Array.isArray(this.event)?this.event.forEach((function(e){k[e]=w})):k[this.event]=w;var _={class:u},x=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:d,route:o,navigate:w,isActive:u[h],isExactActive:u[v]});if(x){if(1===x.length)return x[0];if(x.length>1||!x.length)return 0===x.length?e():e("span",{},x)}if("a"===this.tag)_.on=k,_.attrs={href:d,"aria-current":g};else{var S=function e(t){var n;if(t)for(var a=0;a-1&&(o.params[c]=n.params[c]);return o.path=U(p.path,o.params),d(p,o,s)}if(o.path){o.params={};for(var y=0;y=e.length?n():e[i]?t(e[i],(function(){a(i+1)})):a(i+1)};a(0)}var ge={redirected:2,aborted:4,cancelled:8,duplicated:16};function we(e,t){return _e(e,t,ge.redirected,'Redirected when going from "'+e.fullPath+'" to "'+function(e){if("string"==typeof e)return e;if("path"in e)return e.path;var t={};return xe.forEach((function(n){n in e&&(t[n]=e[n])})),JSON.stringify(t,null,2)}(t)+'" via a navigation guard.')}function ke(e,t){return _e(e,t,ge.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+t.fullPath+'" with a new navigation.')}function _e(e,t,n,a){var i=new Error(a);return i._isRouter=!0,i.from=e,i.to=t,i.type=n,i}var xe=["params","query","hash"];function Se(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function Oe(e,t){return Se(e)&&e._isRouter&&(null==t||e.type===t)}function Ae(e){return function(t,n,a){var i=!1,r=0,s=null;Ce(e,(function(e,t,n,o){if("function"==typeof e&&void 0===e.cid){i=!0,r++;var d,u=De((function(t){var i;((i=t).__esModule||Ie&&"Module"===i[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:G.extend(t),n.components[o]=t,--r<=0&&a()})),p=De((function(e){var t="Failed to resolve async component "+o+": "+e;s||(s=Se(e)?e:new Error(t),a(s))}));try{d=e(u,p)}catch(e){p(e)}if(d)if("function"==typeof d.then)d.then(u,p);else{var l=d.component;l&&"function"==typeof l.then&&l.then(u,p)}}})),i||a()}}function Ce(e,t){return Me(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Me(e){return Array.prototype.concat.apply([],e)}var Ie="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function De(e){var t=!1;return function(){for(var n=[],a=arguments.length;a--;)n[a]=arguments[a];if(!t)return t=!0,e.apply(this,n)}}var Ve=function(e,t){this.router=e,this.base=function(e){if(!e)if(K){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=h,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Re(e,t,n,a){var i=Ce(e,(function(e,a,i,r){var s=function(e,t){"function"!=typeof e&&(e=G.extend(e));return e.options[t]}(e,t);if(s)return Array.isArray(s)?s.map((function(e){return n(e,a,i,r)})):n(s,a,i,r)}));return Me(a?i.reverse():i)}function Ee(e,t){if(t)return function(){return e.apply(t,arguments)}}Ve.prototype.listen=function(e){this.cb=e},Ve.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},Ve.prototype.onError=function(e){this.errorCbs.push(e)},Ve.prototype.transitionTo=function(e,t,n){var a,i=this;try{a=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var r=this.current;this.confirmTransition(a,(function(){i.updateRoute(a),t&&t(a),i.ensureURL(),i.router.afterHooks.forEach((function(e){e&&e(a,r)})),i.ready||(i.ready=!0,i.readyCbs.forEach((function(e){e(a)})))}),(function(e){n&&n(e),e&&!i.ready&&(Oe(e,ge.redirected)&&r===h||(i.ready=!0,i.readyErrorCbs.forEach((function(t){t(e)}))))}))},Ve.prototype.confirmTransition=function(e,t,n){var a=this,i=this.current;this.pending=e;var r,s,o=function(e){!Oe(e)&&Se(e)&&(a.errorCbs.length?a.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},d=e.matched.length-1,u=i.matched.length-1;if(T(e,i)&&d===u&&e.matched[d]===i.matched[u])return this.ensureURL(),o(((s=_e(r=i,e,ge.duplicated,'Avoided redundant navigation to current location: "'+r.fullPath+'".')).name="NavigationDuplicated",s));var p=function(e,t){var n,a=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,a=he&&n;a&&this.listeners.push(se());var i=function(){var n=e.current,i=Fe(e.base);e.current===h&&i===e._startLocation||e.transitionTo(i,(function(e){a&&oe(t,e,n,!0)}))};window.addEventListener("popstate",i),this.listeners.push((function(){window.removeEventListener("popstate",i)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var a=this,i=this.current;this.transitionTo(e,(function(e){ve(S(a.base+e.fullPath)),oe(a.router,e,i,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var a=this,i=this.current;this.transitionTo(e,(function(e){be(S(a.base+e.fullPath)),oe(a.router,e,i,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(Fe(this.base)!==this.current.fullPath){var t=S(this.base+this.current.fullPath);e?ve(t):be(t)}},t.prototype.getCurrentLocation=function(){return Fe(this.base)},t}(Ve);function Fe(e){var t=window.location.pathname;return e&&0===t.toLowerCase().indexOf(e.toLowerCase())&&(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var $e=function(e){function t(t,n,a){e.call(this,t,n),a&&function(e){var t=Fe(e);if(!/^\/#/.test(t))return window.location.replace(S(e+"/#"+t)),!0}(this.base)||Le()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=he&&t;n&&this.listeners.push(se());var a=function(){var t=e.current;Le()&&e.transitionTo(Be(),(function(a){n&&oe(e.router,a,t,!0),he||We(a.fullPath)}))},i=he?"popstate":"hashchange";window.addEventListener(i,a),this.listeners.push((function(){window.removeEventListener(i,a)}))}},t.prototype.push=function(e,t,n){var a=this,i=this.current;this.transitionTo(e,(function(e){Ne(e.fullPath),oe(a.router,e,i,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var a=this,i=this.current;this.transitionTo(e,(function(e){We(e.fullPath),oe(a.router,e,i,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Be()!==t&&(e?Ne(t):We(t))},t.prototype.getCurrentLocation=function(){return Be()},t}(Ve);function Le(){var e=Be();return"/"===e.charAt(0)||(We("/"+e),!1)}function Be(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function je(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function Ne(e){he?ve(je(e)):window.location.hash=e}function We(e){he?be(je(e)):window.location.replace(je(e))}var Ue=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var a=this;this.transitionTo(e,(function(e){a.stack=a.stack.slice(0,a.index+1).concat(e),a.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var a=this;this.transitionTo(e,(function(e){a.stack=a.stack.slice(0,a.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var a=this.stack[n];this.confirmTransition(a,(function(){var e=t.current;t.index=n,t.updateRoute(a),t.router.afterHooks.forEach((function(t){t&&t(a,e)}))}),(function(e){Oe(e,ge.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(Ve),He=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Z(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!he&&!1!==e.fallback,this.fallback&&(t="hash"),K||(t="abstract"),this.mode=t,t){case"history":this.history=new Pe(this,e.base);break;case"hash":this.history=new $e(this,e.base,this.fallback);break;case"abstract":this.history=new Ue(this,e.base);break;default:0}},Ge={currentRoute:{configurable:!0}};function ze(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}He.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},Ge.currentRoute.get=function(){return this.history&&this.history.current},He.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof Pe||n instanceof $e){var a=function(e){n.setupListeners(),function(e){var a=n.current,i=t.options.scrollBehavior;he&&i&&"fullPath"in e&&oe(t,e,a,!1)}(e)};n.transitionTo(n.getCurrentLocation(),a,a)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},He.prototype.beforeEach=function(e){return ze(this.beforeHooks,e)},He.prototype.beforeResolve=function(e){return ze(this.resolveHooks,e)},He.prototype.afterEach=function(e){return ze(this.afterHooks,e)},He.prototype.onReady=function(e,t){this.history.onReady(e,t)},He.prototype.onError=function(e){this.history.onError(e)},He.prototype.push=function(e,t,n){var a=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){a.history.push(e,t,n)}));this.history.push(e,t,n)},He.prototype.replace=function(e,t,n){var a=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){a.history.replace(e,t,n)}));this.history.replace(e,t,n)},He.prototype.go=function(e){this.history.go(e)},He.prototype.back=function(){this.go(-1)},He.prototype.forward=function(){this.go(1)},He.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},He.prototype.resolve=function(e,t,n){var a=H(e,t=t||this.history.current,n,this),i=this.match(a,t),r=i.redirectedFrom||i.fullPath;return{location:a,route:i,href:function(e,t,n){var a="hash"===n?"#"+t:t;return e?S(e+"/"+a):a}(this.history.base,r,this.mode),normalizedTo:a,resolved:i}},He.prototype.getRoutes=function(){return this.matcher.getRoutes()},He.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==h&&this.history.transitionTo(this.history.getCurrentLocation())},He.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==h&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(He.prototype,Ge),He.install=function e(t){if(!e.installed||G!==t){e.installed=!0,G=t;var n=function(e){return void 0!==e},a=function(e,t){var a=e.$options._parentVnode;n(a)&&n(a=a.data)&&n(a=a.registerRouteInstance)&&a(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,a(this,this)},destroyed:function(){a(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",k),t.component("RouterLink",q);var i=t.config.optionMergeStrategies;i.beforeRouteEnter=i.beforeRouteLeave=i.beforeRouteUpdate=i.created}},He.version="3.5.1",He.isNavigationFailure=Oe,He.NavigationFailureType=ge,He.START_LOCATION=h,K&&window.Vue&&window.Vue.use(He);var qe=He,Xe=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"min-h-screen bg-gray-100 px-4 pt-6"},[t("router-view")],1)};Xe._withStripped=!0;n(4);function Ke(e,t,n,a,i,r,s,o){var d,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),a&&(u.functional=!0),r&&(u._scopeId="data-v-"+r),s?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=d):i&&(d=o?function(){i.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:i),d)if(u.functional){u._injectStyles=d;var p=u.render;u.render=function(e,t){return d.call(t),p(e,t)}}else{var l=u.beforeCreate;u.beforeCreate=l?[].concat(l,d):[d]}return{exports:e,options:u}}var Ye=Ke({},Xe,[],!1,null,null,null);Ye.options.__file="node_modules/hardhat-docgen/src/App.vue";var Je=Ye.exports,Ze=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"w-full space-y-10 md:max-w-screen-sm lg:max-w-screen-md mx-auto"},[n("HeaderBar"),e._v(" "),n("div",{staticClass:"pb-32"},[n("div",{staticClass:"space-y-4"},[n("span",{staticClass:"text-lg"},[e._v("\n "+e._s(e.json.source)+"\n ")]),e._v(" "),n("h1",{staticClass:"text-xl"},[e._v("\n "+e._s(e.json.name)+"\n ")]),e._v(" "),n("h2",{staticClass:"text-lg"},[e._v("\n "+e._s(e.json.title)+"\n ")]),e._v(" "),n("h2",{staticClass:"text-lg"},[e._v("\n "+e._s(e.json.author)+"\n ")]),e._v(" "),n("p",[e._v(e._s(e.json.notice))]),e._v(" "),n("p",[e._v(e._s(e.json.details))])]),e._v(" "),n("div",{staticClass:"mt-8"},[e.json.hasOwnProperty("constructor")?n("Member",{attrs:{json:e.json.constructor}}):e._e()],1),e._v(" "),n("div",{staticClass:"mt-8"},[e.json.receive?n("Member",{attrs:{json:e.json.receive}}):e._e()],1),e._v(" "),n("div",{staticClass:"mt-8"},[e.json.fallback?n("Member",{attrs:{json:e.json.fallback}}):e._e()],1),e._v(" "),e.json.events?n("MemberSet",{attrs:{title:"Events",json:e.json.events}}):e._e(),e._v(" "),e.json.stateVariables?n("MemberSet",{attrs:{title:"State Variables",json:e.json.stateVariables}}):e._e(),e._v(" "),e.json.methods?n("MemberSet",{attrs:{title:"Methods",json:e.json.methods}}):e._e()],1),e._v(" "),n("FooterBar")],1)};Ze._withStripped=!0;var Qe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"bg-gray-100 fixed bottom-0 right-0 w-full border-t border-dashed border-gray-300"},[n("div",{staticClass:"w-full text-center py-2 md:max-w-screen-sm lg:max-w-screen-md mx-auto"},[n("button",{staticClass:"py-1 px-2 text-gray-500",on:{click:function(t){return e.openLink(e.repository)}}},[e._v("\n built with "+e._s(e.name)+"\n ")])])])};Qe._withStripped=!0;var et=n(2),tt=Ke({data:function(){return{repository:et.b,name:et.a}},methods:{openLink(e){window.open(e,"_blank")}}},Qe,[],!1,null,null,null);tt.options.__file="node_modules/hardhat-docgen/src/components/FooterBar.vue";var nt=tt.exports,at=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"w-full border-b border-dashed py-2 border-gray-300"},[t("router-link",{staticClass:"py-2 text-gray-500",attrs:{to:"/"}},[this._v("\n <- Go back\n ")])],1)};at._withStripped=!0;var it=Ke({},at,[],!1,null,null,null);it.options.__file="node_modules/hardhat-docgen/src/components/HeaderBar.vue";var rt=it.exports,st=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"border-2 border-gray-400 border-dashed w-full p-2"},[n("h3",{staticClass:"text-lg pb-2 mb-2 border-b-2 border-gray-400 border-dashed"},[e._v("\n "+e._s(e.name)+" "+e._s(e.keywords)+" "+e._s(e.inputSignature)+"\n ")]),e._v(" "),n("div",{staticClass:"space-y-3"},[n("p",[e._v(e._s(e.json.notice))]),e._v(" "),n("p",[e._v(e._s(e.json.details))]),e._v(" "),n("MemberSection",{attrs:{name:"Parameters",items:e.inputs}}),e._v(" "),n("MemberSection",{attrs:{name:"Return Values",items:e.outputs}})],1)])};st._withStripped=!0;var ot=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.items.length>0?n("ul",[n("h4",{staticClass:"text-lg"},[e._v("\n "+e._s(e.name)+"\n ")]),e._v(" "),e._l(e.items,(function(t,a){return n("li",{key:a},[n("span",{staticClass:"bg-gray-300"},[e._v(e._s(t.type))]),e._v(" "),n("b",[e._v(e._s(t.name||"_"+a))]),t.desc?n("span",[e._v(": "),n("i",[e._v(e._s(t.desc))])]):e._e()])}))],2):e._e()};ot._withStripped=!0;var dt=Ke({props:{name:{type:String,default:""},items:{type:Array,default:()=>new Array}}},ot,[],!1,null,null,null);dt.options.__file="node_modules/hardhat-docgen/src/components/MemberSection.vue";var ut=Ke({components:{MemberSection:dt.exports},props:{json:{type:Object,default:()=>new Object}},computed:{name:function(){return this.json.name||this.json.type},keywords:function(){let e=[];return this.json.stateMutability&&e.push(this.json.stateMutability),"true"===this.json.anonymous&&e.push("anonymous"),e.join(" ")},params:function(){return this.json.params||{}},returns:function(){return this.json.returns||{}},inputs:function(){return(this.json.inputs||[]).map(e=>({...e,desc:this.params[e.name]}))},inputSignature:function(){return`(${this.inputs.map(e=>e.type).join(",")})`},outputs:function(){return(this.json.outputs||[]).map((e,t)=>({...e,desc:this.returns[e.name||"_"+t]}))},outputSignature:function(){return`(${this.outputs.map(e=>e.type).join(",")})`}}},st,[],!1,null,null,null);ut.options.__file="node_modules/hardhat-docgen/src/components/Member.vue";var pt=ut.exports,lt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"w-full mt-8"},[n("h2",{staticClass:"text-lg"},[e._v(e._s(e.title))]),e._v(" "),e._l(Object.keys(e.json),(function(t){return n("Member",{key:t,staticClass:"mt-3",attrs:{json:e.json[t]}})}))],2)};lt._withStripped=!0;var ct=Ke({components:{Member:pt},props:{title:{type:String,default:""},json:{type:Object,default:()=>new Object}}},lt,[],!1,null,null,null);ct.options.__file="node_modules/hardhat-docgen/src/components/MemberSet.vue";var yt=Ke({components:{Member:pt,MemberSet:ct.exports,HeaderBar:rt,FooterBar:nt},props:{json:{type:Object,default:()=>new Object}}},Ze,[],!1,null,null,null);yt.options.__file="node_modules/hardhat-docgen/src/components/Contract.vue";var mt=yt.exports,ft=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"w-full space-y-10 md:max-w-screen-sm lg:max-w-screen-md mx-auto pb-32"},[t("Branch",{attrs:{json:this.trees,name:"Sources:"}}),this._v(" "),t("FooterBar",{staticClass:"mt-20"})],1)};ft._withStripped=!0;var ht=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[e._v("\n "+e._s(e.name)+"\n "),Array.isArray(e.json)?n("div",{staticClass:"pl-5"},e._l(e.json,(function(t,a){return n("div",{key:a},[n("router-link",{attrs:{to:t.source+":"+t.name}},[e._v("\n "+e._s(t.name)+"\n ")])],1)})),0):n("div",{staticClass:"pl-5"},e._l(Object.keys(e.json),(function(t){return n("div",{key:t},[n("Branch",{attrs:{json:e.json[t],name:t}})],1)})),0)])};ht._withStripped=!0;var vt=Ke({name:"Branch",props:{name:{type:String,default:null},json:{type:[Object,Array],default:()=>new Object}}},ht,[],!1,null,null,null);vt.options.__file="node_modules/hardhat-docgen/src/components/Branch.vue";var bt=Ke({components:{Branch:vt.exports,FooterBar:nt},props:{json:{type:Object,default:()=>new Object}},computed:{trees:function(){let e={};for(let t in this.json)t.split(/(?<=\/)/).reduce(function(e,n){if(!n.includes(":"))return e[n]=e[n]||{},e[n];{let[a]=n.split(":");e[a]=e[a]||[],e[a].push(this.json[t])}}.bind(this),e);return e}}},ft,[],!1,null,null,null);bt.options.__file="node_modules/hardhat-docgen/src/components/Index.vue";var Tt=bt.exports;a.a.use(qe);const gt={"contracts/Interfaces/IApproveAndCall.sol:IApproveAndCall":{source:"contracts/Interfaces/IApproveAndCall.sol",name:"IApproveAndCall",title:"Interface for contract governance/ApprovalReceiver.sol",details:"Interfaces are used to cast a contract address into a callable instance.",methods:{"receiveApproval(address,uint256,address,bytes)":{constant:!1,inputs:[{internalType:"address",name:"_sender",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_token",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"receiveApproval",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"The amount was approved.",_data:"The data will be used for low level call.",_sender:"The sender of SOV.approveAndCall function.",_token:"The address of token."},notice:"Receives approval from SOV token."}}},"contracts/Interfaces/IERC20.sol:IERC20":{source:"contracts/Interfaces/IERC20.sol",name:"IERC20",events:{"Approval(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},"Transfer(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"}},methods:{"allowance(address,address)":{constant:!0,inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"address",name:"_spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"approve(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_spender",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},"balanceOf(address)":{constant:!0,inputs:[{internalType:"address",name:"_who",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"decimals()":{constant:!0,inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},"name()":{constant:!0,inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},"symbol()":{constant:!0,inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},"totalSupply()":{constant:!0,inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"transfer(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},"transferFrom(address,address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}}},"contracts/Interfaces/IFeeSharingProxy.sol:IFeeSharingProxy":{source:"contracts/Interfaces/IFeeSharingProxy.sol",name:"IFeeSharingProxy",title:"Interface for contract governance/FeeSharingProxy.sol",details:"Interfaces are used to cast a contract address into a callable instance.",methods:{"transferTokens(address,uint96)":{constant:!1,inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"uint96",name:"_amount",type:"uint96"}],name:"transferTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},"withdraw(address,uint32,address)":{constant:!1,inputs:[{internalType:"address",name:"_loanPoolToken",type:"address"},{internalType:"uint32",name:"_maxCheckpoints",type:"uint32"},{internalType:"address",name:"_receiver",type:"address"}],name:"withdraw",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},"withdrawFees(address)":{constant:!1,inputs:[{internalType:"address",name:"_token",type:"address"}],name:"withdrawFees",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"}}},"contracts/Interfaces/ILockedFund.sol:ILockedFund":{source:"contracts/Interfaces/ILockedFund.sol",name:"ILockedFund",title:"An interface of Locked Fund Contract.",author:"Franklin Richards - powerhousefrank@protonmail.com",methods:{"addAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_newAdmin",type:"address"}],name:"addAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Admin.",params:{_newAdmin:"The address of the new admin."},notice:"The function to add a new admin."},"changeVestingRegistry(address)":{constant:!1,inputs:[{internalType:"address",name:"_vestingRegistry",type:"address"}],name:"changeVestingRegistry",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_vestingRegistry:"The Vesting Registry Address."},notice:"The function to update the Vesting Registry, Duration and Cliff."},"changeWaitedTS(uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_waitedTS",type:"uint256"}],name:"changeWaitedTS",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_waitedTS:"The timestamp after which withdrawal is allowed."},notice:"The function used to update the waitedTS."},"createVesting()":{constant:!1,inputs:[],name:"createVesting",outputs:[{internalType:"address",name:"_vestingAddress",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"function",return:"_vestingAddress The New Vesting Contract Created.",notice:"Creates vesting contract (if it hasn't been created yet) for the calling user."},"createVestingAndStake()":{constant:!1,inputs:[],name:"createVestingAndStake",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only use this function if the `duration` is small.",notice:"Creates vesting if not already created and Stakes tokens for a user."},"depositLocked(address,uint256,uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_userAddress",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"uint256",name:"_basisPoint",type:"uint256"},{internalType:"uint256",name:"_unlockedOrWaited",type:"uint256"}],name:"depositLocked",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Future iteration will have choice between waited unlock and immediate unlock.",params:{_amount:"The amount of Token to be added to the locked and/or unlocked balance.",_basisPoint:"The % (in Basis Point) which determines how much will be (waited) unlocked immediately.",_cliff:"The cliff for vesting.",_duration:"The duration for vesting.",_unlockedOrWaited:"Determines if the Basis Point determines the Unlocked or Waited Unlock Balance.",_userAddress:"The user whose locked balance has to be updated with `_amount`."},notice:"Adds Token to the user balance (Locked and Waited Unlocked Balance based on `_basisPoint`)."},"depositVested(address,uint256,uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_userAddress",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"uint256",name:"_basisPoint",type:"uint256"},{internalType:"uint256",name:"_unlockedOrWaited",type:"uint256"}],name:"depositVested",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Future iteration will have choice between waited unlock and immediate unlock.",params:{_amount:"The amount of Token to be added to the locked and/or unlocked balance.",_basisPoint:"The % (in Basis Point) which determines how much will be (waited) unlocked immediately.",_cliff:"The cliff for vesting.",_duration:"The duration for vesting.",_unlockedOrWaited:"Determines if the Basis Point determines the Unlocked or Waited Unlock Balance.",_userAddress:"The user whose locked balance has to be updated with `_amount`."},notice:"Adds Token to the user balance (Vested and Waited Unlocked Balance based on `_basisPoint`)."},"depositWaitedUnlocked(address,uint256,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_userAddress",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_basisPoint",type:"uint256"}],name:"depositWaitedUnlocked",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Future iteration will have choice between waited unlock and immediate unlock.",params:{_amount:"The amount of Token to be added to the locked and/or unlocked balance.",_basisPoint:"The % (in Basis Point) which determines how much will be unlocked immediately.",_userAddress:"The user whose locked balance has to be updated with `_amount`."},notice:"Adds Token to the user balance (Vested and Waited Unlocked Balance based on `_basisPoint`)."},"removeAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_adminToRemove",type:"address"}],name:"removeAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Admin.",params:{_adminToRemove:"The address of the admin which should be removed."},notice:"The function to remove an admin."},"stakeTokens()":{constant:!1,inputs:[],name:"stakeTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"The user should already have a vesting created, else this function will throw error.",notice:"Stakes tokens for a user who already have a vesting created."},"withdrawAndStakeTokens(address)":{constant:!1,inputs:[{internalType:"address",name:"_receiverAddress",type:"address"}],name:"withdrawAndStakeTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_receiverAddress:"If specified, the unlocked balance will go to this address, else to msg.sender."},notice:"Withdraws unlocked tokens and Stakes Locked tokens for a user who already have a vesting created."},"withdrawWaitedUnlockedBalance(address)":{constant:!1,inputs:[{internalType:"address",name:"_receiverAddress",type:"address"}],name:"withdrawWaitedUnlockedBalance",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_receiverAddress:"If specified, the unlocked balance will go to this address, else to msg.sender."},notice:"A function to withdraw the waited unlocked balance."}}},"contracts/Interfaces/IOrigins.sol:IOrigins":{source:"contracts/Interfaces/IOrigins.sol",name:"IOrigins",title:"Interface of the Origins Platform.",author:"Franklin Richards - powerhousefrank@protonmail.com",methods:{"addressVerification(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_addressToBeVerified",type:"address"},{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"addressVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_addressToBeVerified:"The address which has to be veriried for the sale.",_tierID:"The tier for which the address has to be verified."},notice:"Function to verify a single address with a single tier."},"buy(uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"buy",outputs:[],payable:!0,stateMutability:"payable",type:"function",details:"If deposit type if RBTC, then _amount can be passed as zero.",params:{_amount:"The amount of token (deposit asset) which will be sent for purchasing.",_tierID:"The Tier ID from which the token has to be bought."},notice:"Function to buy tokens from sale based on tier."},"checkSaleEnded(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"checkSaleEnded",outputs:[{internalType:"bool",name:"_status",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"A return of false does not necessary mean the sale is active. It can also be in inactive state.",params:{_tierID:"The Tier whose info is to be read."},return:"True is sale ended, False otherwise.",notice:"Function to check if a tier sale ended or not."},"createTier(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_maxAmount",type:"uint256"},{internalType:"uint256",name:"_remainingTokens",type:"uint256"},{internalType:"uint256",name:"_saleStartTS",type:"uint256"},{internalType:"uint256",name:"_saleEnd",type:"uint256"},{internalType:"uint256",name:"_unlockedBP",type:"uint256"},{internalType:"uint256",name:"_vestOrLockCliff",type:"uint256"},{internalType:"uint256",name:"_vestOrLockDuration",type:"uint256"},{internalType:"uint256",name:"_depositRate",type:"uint256"},{internalType:"uint256",name:"_depositType",type:"uint256"},{internalType:"uint256",name:"_verificationType",type:"uint256"},{internalType:"uint256",name:"_saleEndDurationOrTS",type:"uint256"},{internalType:"uint256",name:"_transferType",type:"uint256"}],name:"createTier",outputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"In the future this should be decoupled. Some are currently sent with default value due to Stack Too Deep problem.",params:{_depositRate:"Contains the rate of the token w.r.t. the depositing asset.",_maxAmount:"The maximum amount of asset which can be deposited.",_remainingTokens:"Contains the remaining tokens for sale.",_saleEnd:"Contains the duration or timestamp for the sale to end. After which no user will be able to buy tokens.",_saleEndDurationOrTS:"Contains whether end of sale is by Duration or Timestamp.",_saleStartTS:"Contains the timestamp for the sale to start. Before which no user will be able to buy tokens.",_transferType:"Contains the type of token transfer after a user buys to get the tokens.",_unlockedBP:"Contains the unlock amount in Basis Point for Vesting/Lock.",_verificationType:"Contains the method by which verification happens.",_vestOrLockCliff:"Contains the cliff of the vesting/lock for distribution.",_vestOrLockDuration:"Contains the duration of the vesting/lock for distribution."},return:"_tierID The newly created tier ID.",notice:"Function to create a new tier."},"getDepositAddress()":{constant:!0,inputs:[],name:"getDepositAddress",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"If zero is returned, any of the owners can withdraw the raised funds.",return:"The address of the deposit address.",notice:"Function to read the deposit address."},"getLockDetails()":{constant:!0,inputs:[],name:"getLockDetails",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of Locked Fund Contract.",notice:"Function to read the locked fund contract address."},"getParticipatingWalletCountPerTier(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"getParticipatingWalletCountPerTier",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"Total participation of wallets cannot be determined by this. A user can participate on one round and not on other. In the future maybe a count on that can be created.",params:{_tierID:"The tier ID for which the count has to be checked."},return:"The number of wallets who participated in that Tier.",notice:"Function to read participating wallet count per tier."},"getTierCount()":{constant:!0,inputs:[],name:"getTierCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",return:"The number of tiers present in the contract.",notice:"Function to read the tier count."},"getToken()":{constant:!0,inputs:[],name:"getToken",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"The Token contract address which is being sold in the contract.",notice:"Function to read the token on sale."},"getTokensBoughtByAddressOnTier(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"},{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"getTokensBoughtByAddressOnTier",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address which has to be checked.",_tierID:"The tier ID for which the address has to be checked."},return:"The amount of tokens bought by the address.",notice:"Function to read tokens bought by an address on a particular tier."},"getTokensSoldPerTier(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"getTokensSoldPerTier",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_tierID:"The tier ID for which the sold metrics has to be checked."},return:"The amount of tokens sold on that tier.",notice:"Function to read tokens sold per tier."},"getTotalTokenAllocationPerTier(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"getTotalTokenAllocationPerTier",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_tierID:"The tier ID for which the metrics has to be checked."},return:"The amount of tokens allocation on that tier.",notice:"Function to read total token allocation per tier."},"isAddressApproved(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"},{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"isAddressApproved",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address which has to be checked.",_tierID:"The tier ID for which the address has to be checked."},return:"True is allowed, False otherwise.",notice:"Function to read address which are approved for sale in a tier."},"multipleAddressAndTierVerification(address[],uint256[])":{constant:!1,inputs:[{internalType:"address[]",name:"_addressToBeVerified",type:"address[]"},{internalType:"uint256[]",name:"_tierID",type:"uint256[]"}],name:"multipleAddressAndTierVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_addressToBeVerified:"The addresses which has to be veriried for the sale.",_tierID:"The tiers for which the addresses has to be verified."},notice:"Function to verify multiple address with multiple tiers."},"multipleAddressSingleTierVerification(address[],uint256)":{constant:!1,inputs:[{internalType:"address[]",name:"_addressToBeVerified",type:"address[]"},{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"multipleAddressSingleTierVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_addressToBeVerified:"The addresses which has to be veriried for the sale.",_tierID:"The tier for which the addresses has to be verified."},notice:"Function to verify multiple address with a single tier."},"readTierPartA(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"readTierPartA",outputs:[{internalType:"uint256",name:"_minAmount",type:"uint256"},{internalType:"uint256",name:"_maxAmount",type:"uint256"},{internalType:"uint256",name:"_remainingTokens",type:"uint256"},{internalType:"uint256",name:"_saleStartTS",type:"uint256"},{internalType:"uint256",name:"_saleEnd",type:"uint256"},{internalType:"uint256",name:"_unlockedBP",type:"uint256"},{internalType:"uint256",name:"_vestOrLockCliff",type:"uint256"},{internalType:"uint256",name:"_vestOrLockDuration",type:"uint256"},{internalType:"uint256",name:"_depositRate",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_tierID:"The Tier whose info is to be read."},return:"_minAmount The minimum amount which can be deposited._maxAmount The maximum amount which can be deposited._remainingTokens Contains the remaining tokens for sale._saleStartTS Contains the timestamp for the sale to start. Before which no user will be able to buy tokens._saleEnd Contains the duration or timestamp for the sale to end. After which no user will be able to buy tokens._unlockedBP Contains the unlock amount in Basis Point for Vesting/Lock._vestOrLockCliff Contains the cliff of the vesting/lock for distribution._vestOrLockDuration Contains the duration of the vesting/lock for distribution._depositRate Contains the rate of the token w.r.t. the depositing asset.",notice:"Function to read a Tier parameter."},"readTierPartB(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"readTierPartB",outputs:[{internalType:"address",name:"_depositToken",type:"address"},{internalType:"uint256",name:"_depositType",type:"uint256"},{internalType:"uint256",name:"_verificationType",type:"uint256"},{internalType:"uint256",name:"_saleEndDurationOrTS",type:"uint256"},{internalType:"uint256",name:"_transferType",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_tierID:"The Tier whose info is to be read."},return:"_depositToken Contains the deposit token address if the deposit type is Token._depositType The type of deposit for the particular sale._verificationType Contains the method by which verification happens._saleEndDurationOrTS Contains whether end of sale is by Duration or Timestamp._transferType Contains the type of token transfer after a user buys to get the tokens.",notice:"Function to read a Tier parameter."},"setDepositAddress(address)":{constant:!1,inputs:[{internalType:"address payable",name:"_depositAddress",type:"address"}],name:"setDepositAddress",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"If this is not set, an owner can withdraw the funds. Here owner is supposed to be a multisig. Or a trusted party.",params:{_depositAddress:"The address of deposit address where all the raised fund will go."},notice:"Function to set the deposit address."},"setLockedFund(address)":{constant:!1,inputs:[{internalType:"address",name:"_lockedFund",type:"address"}],name:"setLockedFund",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_lockedFund:"The address of new the Vesting registry."},notice:"Function to set the Locked Fund Contract Address."},"setTierDeposit(uint256,uint256,address,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_depositRate",type:"uint256"},{internalType:"address",name:"_depositToken",type:"address"},{internalType:"uint256",name:"_depositType",type:"uint256"}],name:"setTierDeposit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_depositRate:"The rate is the, asset * rate = token.",_depositToken:"The token for that particular Tier Sale.",_depositType:"The type of deposit for the particular sale.",_tierID:"The Tier ID which is being updated."},notice:"Function to set the Tier Deposit Parameters."},"setTierTime(uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_saleStartTS",type:"uint256"},{internalType:"uint256",name:"_saleEnd",type:"uint256"},{internalType:"uint256",name:"_saleEndDurationOrTS",type:"uint256"}],name:"setTierTime",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_saleEnd:"The Tier Sale End Duration or Timestamp.",_saleEndDurationOrTS:"The Tier Sale End Type for the Tier.",_saleStartTS:"The Tier Sale Start Timestamp.",_tierID:"The Tier ID which is being updated."},notice:"Function to set the Tier Time Parameters."},"setTierTokenAmount(uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_remainingTokens",type:"uint256"}],name:"setTierTokenAmount",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_remainingTokens:"The maximum number of tokens allowed to be sold in the tier.",_tierID:"The Tier ID which is being updated."},notice:"Function to set the Tier Token Amount Parameters."},"setTierTokenLimit(uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_minAmount",type:"uint256"},{internalType:"uint256",name:"_maxAmount",type:"uint256"}],name:"setTierTokenLimit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_maxAmount:"The maximum asset amount allowed to participate in that tier.",_minAmount:"The minimum asset amount required to participate in that tier.",_tierID:"The Tier ID which is being updated."},notice:"Function to set the Tier Token Limit Parameters."},"setTierVerification(uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_verificationType",type:"uint256"}],name:"setTierVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_tierID:"The Tier ID which is being updated.",_verificationType:"The type of verification for the particular sale."},notice:"Function to set the Tier Verification Method."},"setTierVestOrLock(uint256,uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_vestOrLockCliff",type:"uint256"},{internalType:"uint256",name:"_vestOrLockDuration",type:"uint256"},{internalType:"uint256",name:"_unlockedBP",type:"uint256"},{internalType:"uint256",name:"_transferType",type:"uint256"}],name:"setTierVestOrLock",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_tierID:"The Tier ID which is being updated.",_transferType:"The Tier Transfer Type for the Tier.",_unlockedBP:"The unlocked token amount in BP.",_vestOrLockCliff:"The Vest/Lock Cliff = A * LockedFund.Interval, where A is the cliff.",_vestOrLockDuration:"The Vest/Lock Duration = A * LockedFund.Interval, where A is the duration."},notice:"Function to set the Tier Vest/Lock Parameters."},"singleAddressMultipleTierVerification(address,uint256[])":{constant:!1,inputs:[{internalType:"address",name:"_addressToBeVerified",type:"address"},{internalType:"uint256[]",name:"_tierID",type:"uint256[]"}],name:"singleAddressMultipleTierVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_addressToBeVerified:"The address which has to be veriried for the sale.",_tierID:"The tiers for which the address has to be verified."},notice:"Function to verify a single address with multiple tiers."},"withdrawSaleDeposit()":{constant:!1,inputs:[],name:"withdrawSaleDeposit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"In the future this could be made to be accessible only to seller, rather than owner.",notice:"The function used by the admin or deposit address to withdraw the sale proceedings."}}},"contracts/Interfaces/IStaking.sol:IStaking":{source:"contracts/Interfaces/IStaking.sol",name:"IStaking",title:"Interface for contract governance/Staking/Staking.sol",details:"Interfaces are used to cast a contract address into a callable instance.",methods:{"getPriorTotalVotingPower(uint32,uint256)":{constant:!0,inputs:[{internalType:"uint32",name:"blockNumber",type:"uint32"},{internalType:"uint256",name:"time",type:"uint256"}],name:"getPriorTotalVotingPower",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"getPriorVotes(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"date",type:"uint256"}],name:"getPriorVotes",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"getPriorWeightedStake(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"date",type:"uint256"}],name:"getPriorWeightedStake",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"stake(uint96,uint256,address,address)":{constant:!1,inputs:[{internalType:"uint96",name:"amount",type:"uint96"},{internalType:"uint256",name:"until",type:"uint256"},{internalType:"address",name:"stakeFor",type:"address"},{internalType:"address",name:"delegatee",type:"address"}],name:"stake",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},"stakesBySchedule(uint256,uint256,uint256,uint256,address,address)":{constant:!1,inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"cliff",type:"uint256"},{internalType:"uint256",name:"duration",type:"uint256"},{internalType:"uint256",name:"intervalLength",type:"uint256"},{internalType:"address",name:"stakeFor",type:"address"},{internalType:"address",name:"delegatee",type:"address"}],name:"stakesBySchedule",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},"timestampToLockDate(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],name:"timestampToLockDate",outputs:[{internalType:"uint256",name:"lockDate",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"}}},"contracts/Interfaces/ITeamVesting.sol:ITeamVesting":{source:"contracts/Interfaces/ITeamVesting.sol",name:"ITeamVesting",title:"Interface for TeamVesting contract.",details:"Interfaces are used to cast a contract address into a callable instance. This interface is used by Staking contract to call governanceWithdrawTokens function having the vesting contract instance address.",methods:{"governanceWithdrawTokens(address)":{constant:!1,inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"governanceWithdrawTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"}}},"contracts/Interfaces/IVesting.sol:IVesting":{source:"contracts/Interfaces/IVesting.sol",name:"IVesting",title:"Interface for Vesting contract.",details:"Interfaces are used to cast a contract address into a callable instance. This interface is used by VestingLogic contract to implement stakeTokens function and on VestingRegistry contract to call IVesting(vesting).stakeTokens function at a vesting instance.",methods:{"duration()":{constant:!1,inputs:[],name:"duration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},"endDate()":{constant:!1,inputs:[],name:"endDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},"stakeTokens(uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"stakeTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"}}},"contracts/Interfaces/IVestingFactory.sol:IVestingFactory":{source:"contracts/Interfaces/IVestingFactory.sol",name:"IVestingFactory",title:"Interface for Vesting Factory contract.",details:"Interfaces are used to cast a contract address into a callable instance. This interface is used by VestingFactory contract to override empty implemention of deployVesting and deployTeamVesting functions and on VestingRegistry contract to use an instance of VestingFactory.",methods:{"deployTeamVesting(address,address,address,uint256,uint256,address,address)":{constant:!1,inputs:[{internalType:"address",name:"_SOV",type:"address"},{internalType:"address",name:"_staking",type:"address"},{internalType:"address",name:"_tokenOwner",type:"address"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"address",name:"_feeSharing",type:"address"},{internalType:"address",name:"_owner",type:"address"}],name:"deployTeamVesting",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"function"},"deployVesting(address,address,address,uint256,uint256,address,address)":{constant:!1,inputs:[{internalType:"address",name:"_SOV",type:"address"},{internalType:"address",name:"_staking",type:"address"},{internalType:"address",name:"_tokenOwner",type:"address"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"address",name:"_feeSharing",type:"address"},{internalType:"address",name:"_owner",type:"address"}],name:"deployVesting",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"function"}}},"contracts/Interfaces/IVestingLogic.sol:IVestingLogic":{source:"contracts/Interfaces/IVestingLogic.sol",name:"IVestingLogic",title:"Vesting Logic Interface",events:{"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"SOV()":{constant:!0,inputs:[],name:"SOV",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"cliff()":{constant:!0,inputs:[],name:"cliff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"duration()":{constant:!0,inputs:[],name:"duration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"endDate()":{constant:!0,inputs:[],name:"endDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"feeSharingProxy()":{constant:!0,inputs:[],name:"feeSharingProxy",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"stakeTokens(uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],name:"stakeTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"The amount of tokens to stake."},notice:"Stakes tokens according to the vesting schedule."},"staking()":{constant:!0,inputs:[],name:"staking",outputs:[{internalType:"contract Staking",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"startDate()":{constant:!0,inputs:[],name:"startDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"tokenOwner()":{constant:!0,inputs:[],name:"tokenOwner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"withdrawTokens(address)":{constant:!1,inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"withdrawTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{receiver:"The receiving address."},notice:"Withdraws unlocked tokens from the staking contract and forwards them to an address specified by the token owner."}}},"contracts/Interfaces/IVestingRegistry.sol:IVestingRegistry":{source:"contracts/Interfaces/IVestingRegistry.sol",name:"IVestingRegistry",title:"Vesting Registry Interface",methods:{"createVesting(address,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_tokenOwner",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"}],name:"createVesting",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"the amount to be staked",_cliff:"the cliff in seconds",_duration:"the total duration in seconds",_tokenOwner:"the owner of the tokens"},notice:"creates Vesting contract"},"getVesting(address)":{constant:!0,inputs:[{internalType:"address",name:"_tokenOwner",type:"address"}],name:"getVesting",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",params:{_tokenOwner:"the owner of the tokens"},notice:"returns vesting contract address for the given token owner"},"stakeTokens(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_vesting",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"stakeTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"the amount of tokens to stake",_vesting:"the address of Vesting contract"},notice:"stakes tokens according to the vesting schedule"}}},"contracts/LockedFund.sol:LockedFund":{source:"contracts/LockedFund.sol",name:"LockedFund",title:"A holding contract for Locked Fund.",author:"Franklin Richards - powerhousefrank@protonmail.com",details:"This is not the final form of this contract.",notice:"You can use this contract for timed token release from Locked Fund.",constructor:{inputs:[{internalType:"uint256",name:"_waitedTS",type:"uint256"},{internalType:"address",name:"_token",type:"address"},{internalType:"address",name:"_vestingRegistry",type:"address"},{internalType:"address[]",name:"_admins",type:"address[]"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"AdminAdded(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_newAdmin",type:"address"}],name:"AdminAdded",type:"event"},"AdminRemoved(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_removedAdmin",type:"address"}],name:"AdminRemoved",type:"event"},"TokenStaked(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_vesting",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"TokenStaked",type:"event"},"VestedDeposited(address,address,uint256,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_userAddress",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_cliff",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_duration",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_basisPoint",type:"uint256"}],name:"VestedDeposited",type:"event"},"VestingCreated(address,address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_userAddress",type:"address"},{indexed:!0,internalType:"address",name:"_vesting",type:"address"}],name:"VestingCreated",type:"event"},"VestingRegistryUpdated(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_vestingRegistry",type:"address"}],name:"VestingRegistryUpdated",type:"event"},"WaitedTSUpdated(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_waitedTS",type:"uint256"}],name:"WaitedTSUpdated",type:"event"},"WaitedUnlockedDeposited(address,address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_userAddress",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_basisPoint",type:"uint256"}],name:"WaitedUnlockedDeposited",type:"event"},"Withdrawn(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_userAddress",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Withdrawn",type:"event"}},methods:{"INTERVAL()":{constant:!0,inputs:[],name:"INTERVAL",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"addAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_newAdmin",type:"address"}],name:"addAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Admin.",params:{_newAdmin:"The address of the new admin."},notice:"The function to add a new admin."},"adminStatus(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"adminStatus",outputs:[{internalType:"bool",name:"_status",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address of the user to check the admin status."},return:"_status True if admin, False otherwise.",notice:"The function to check is an address is admin or not."},"c_0x8dbef84a(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x8dbef84a",type:"bytes32"}],name:"c_0x8dbef84a",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"changeVestingRegistry(address)":{constant:!1,inputs:[{internalType:"address",name:"_vestingRegistry",type:"address"}],name:"changeVestingRegistry",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_vestingRegistry:"The Vesting Registry Address."},notice:"The function to update the Vesting Registry, Duration and Cliff."},"changeWaitedTS(uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_waitedTS",type:"uint256"}],name:"changeWaitedTS",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_waitedTS:"The timestamp after which withdrawal is allowed."},notice:"The function used to update the waitedTS."},"cliff(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"cliff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"createVesting()":{constant:!1,inputs:[],name:"createVesting",outputs:[{internalType:"address",name:"_vestingAddress",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"function",return:"_vestingAddress The New Vesting Contract Created.",notice:"Creates vesting contract (if it hasn't been created yet) for the calling user."},"createVestingAndStake()":{constant:!1,inputs:[],name:"createVestingAndStake",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only use this function if the `duration` is small.",notice:"Creates vesting if not already created and Stakes tokens for a user."},"depositLocked(address,uint256,uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_userAddress",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"uint256",name:"_basisPoint",type:"uint256"},{internalType:"uint256",name:"_unlockedOrWaited",type:"uint256"}],name:"depositLocked",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Future iteration will have choice between waited unlock and immediate unlock.",params:{_amount:"The amount of Token to be added to the locked and/or unlocked balance.",_basisPoint:"The % (in Basis Point) which determines how much will be (waited) unlocked immediately.",_cliff:"The cliff for vesting.",_duration:"The duration for vesting.",_unlockedOrWaited:"Determines if the Basis Point determines the Unlocked or Waited Unlock Balance.",_userAddress:"The user whose locked balance has to be updated with `_amount`."},notice:"Adds Token to the user balance (Locked and Waited Unlocked Balance based on `_basisPoint`)."},"depositVested(address,uint256,uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_userAddress",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"uint256",name:"_basisPoint",type:"uint256"},{internalType:"uint256",name:"_unlockedOrWaited",type:"uint256"}],name:"depositVested",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Future iteration will have choice between waited unlock and immediate unlock.",params:{_amount:"The amount of Token to be added to the locked and/or unlocked balance.",_basisPoint:"The % (in Basis Point) which determines how much will be (waited) unlocked immediately.",_cliff:"The cliff for vesting.",_duration:"The duration for vesting.",_unlockedOrWaited:"Determines if the Basis Point determines the Unlocked or Waited Unlock Balance.",_userAddress:"The user whose locked balance has to be updated with `_amount`."},notice:"Adds Token to the user balance (Vested and Waited Unlocked Balance based on `_basisPoint`)."},"depositWaitedUnlocked(address,uint256,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_userAddress",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_basisPoint",type:"uint256"}],name:"depositWaitedUnlocked",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Future iteration will have choice between waited unlock and immediate unlock.",params:{_amount:"The amount of Token to be added to the locked and/or unlocked balance.",_basisPoint:"The % (in Basis Point) which determines how much will be unlocked immediately.",_userAddress:"The user whose locked balance has to be updated with `_amount`."},notice:"Adds Token to the user balance (Vested and Waited Unlocked Balance based on `_basisPoint`)."},"duration(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"duration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"getCliffAndDuration(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"getCliffAndDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address whose cliff and duration has to be found."},return:"The cliff of the user vesting/lock.The duration of the user vesting/lock.",notice:"Function to read the cliff and duration of a user."},"getLockedBalance(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"getLockedBalance",outputs:[{internalType:"uint256",name:"_balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address of the user to check the locked balance."},return:"_balance The locked balance of the address `_addr`.",notice:"The function to get the locked balance of a user."},"getToken()":{constant:!0,inputs:[],name:"getToken",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"The Token contract address which is being sold in the contract.",notice:"Function to read the token on sale."},"getUnlockedBalance(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"getUnlockedBalance",outputs:[{internalType:"uint256",name:"_balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address of the user to check the unlocked balance."},return:"_balance The unlocked balance of the address `_addr`.",notice:"The function to get the unlocked balance of a user."},"getVestedBalance(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"getVestedBalance",outputs:[{internalType:"uint256",name:"_balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address of the user to check the vested balance."},return:"_balance The vested balance of the address `_addr`.",notice:"The function to get the vested balance of a user."},"getVestingDetails()":{constant:!0,inputs:[],name:"getVestingDetails",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of Vesting Registry.",notice:"Function to read the vesting registry."},"getWaitedTS()":{constant:!0,inputs:[],name:"getWaitedTS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",return:"The waited timestamp.",notice:"Function to read the waited timestamp."},"getWaitedUnlockedBalance(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"getWaitedUnlockedBalance",outputs:[{internalType:"uint256",name:"_balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address of the user to check the waited unlocked balance."},return:"_balance The waited unlocked balance of the address `_addr`.",notice:"The function to get the waited unlocked balance of a user."},"isAdmin(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"isAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"lockedBalances(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"lockedBalances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"removeAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_adminToRemove",type:"address"}],name:"removeAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Admin.",params:{_adminToRemove:"The address of the admin which should be removed."},notice:"The function to remove an admin."},"stakeTokens()":{constant:!1,inputs:[],name:"stakeTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"The user should already have a vesting created, else this function will throw error.",notice:"Stakes tokens for a user who already have a vesting created."},"token()":{constant:!0,inputs:[],name:"token",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"unlockedBalances(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"unlockedBalances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"vestedBalances(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"vestedBalances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"vestingRegistry()":{constant:!0,inputs:[],name:"vestingRegistry",outputs:[{internalType:"contract IVestingRegistry",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"waitedTS()":{constant:!0,inputs:[],name:"waitedTS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"waitedUnlockedBalances(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"waitedUnlockedBalances",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"withdrawAndStakeTokens(address)":{constant:!1,inputs:[{internalType:"address",name:"_receiverAddress",type:"address"}],name:"withdrawAndStakeTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_receiverAddress:"If specified, the unlocked balance will go to this address, else to msg.sender."},notice:"Withdraws unlocked tokens and Stakes Vested token balance for a user who already have a vesting created."},"withdrawWaitedUnlockedBalance(address)":{constant:!1,inputs:[{internalType:"address",name:"_receiverAddress",type:"address"}],name:"withdrawWaitedUnlockedBalance",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_receiverAddress:"If specified, the unlocked balance will go to this address, else to msg.sender."},notice:"A function to withdraw the waited unlocked balance."}}},"contracts/Openzeppelin/Address.sol:Address":{source:"contracts/Openzeppelin/Address.sol",name:"Address",details:"Collection of functions related to the address type"},"contracts/Openzeppelin/Context.sol:Context":{source:"contracts/Openzeppelin/Context.sol",name:"Context",constructor:{inputs:[],payable:!1,stateMutability:"nonpayable",type:"constructor"}},"contracts/Openzeppelin/ERC20.sol:ERC20":{source:"contracts/Openzeppelin/ERC20.sol",name:"ERC20",details:"Implementation of the {IERC20} interface. * This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20Mintable}. * TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. * We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. * Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.",events:{"Approval(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},"Transfer(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"}},methods:{"allowance(address,address)":{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"See {IERC20-allowance}."},"approve(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"See {IERC20-approve}.\t * Requirements:\t * - `spender` cannot be the zero address."},"balanceOf(address)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"See {IERC20-balanceOf}."},"decreaseAllowance(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"Atomically decreases the allowance granted to `spender` by the caller.\t * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}.\t * Emits an {Approval} event indicating the updated allowance.\t * Requirements:\t * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"Atomically increases the allowance granted to `spender` by the caller.\t * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}.\t * Emits an {Approval} event indicating the updated allowance.\t * Requirements:\t * - `spender` cannot be the zero address."},"totalSupply()":{constant:!0,inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"See {IERC20-totalSupply}."},"transfer(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"See {IERC20-transfer}.\t * Requirements:\t * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"See {IERC20-transferFrom}.\t * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20};\t * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."}}},"contracts/Openzeppelin/ERC20Detailed.sol:ERC20Detailed":{source:"contracts/Openzeppelin/ERC20Detailed.sol",name:"ERC20Detailed",details:"Optional functions from the ERC20 standard.",constructor:{inputs:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"uint8",name:"decimals",type:"uint8"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"Approval(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},"Transfer(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"}},methods:{"allowance(address,address)":{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"See {IERC20-allowance}."},"approve(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"See {IERC20-approve}.\t * Requirements:\t * - `spender` cannot be the zero address."},"balanceOf(address)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"See {IERC20-balanceOf}."},"decimals()":{constant:!0,inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`).\t * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei.\t * NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"Atomically decreases the allowance granted to `spender` by the caller.\t * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}.\t * Emits an {Approval} event indicating the updated allowance.\t * Requirements:\t * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"Atomically increases the allowance granted to `spender` by the caller.\t * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}.\t * Emits an {Approval} event indicating the updated allowance.\t * Requirements:\t * - `spender` cannot be the zero address."},"name()":{constant:!0,inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the name of the token."},"symbol()":{constant:!0,inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{constant:!0,inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"See {IERC20-totalSupply}."},"transfer(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"See {IERC20-transfer}.\t * Requirements:\t * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"See {IERC20-transferFrom}.\t * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20};\t * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."}}},"contracts/Openzeppelin/IERC20_.sol:IERC20_":{source:"contracts/Openzeppelin/IERC20_.sol",name:"IERC20_",details:"Interface of the ERC20 standard as defined in the EIP. Does not include the optional functions; to access them see {ERC20Detailed}.",events:{"Approval(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},"Transfer(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"}},methods:{"allowance(address,address)":{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default.\t * This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"Sets `amount` as the allowance of `spender` over the caller's tokens.\t * Returns a boolean value indicating whether the operation succeeded.\t * IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\t * Emits an {Approval} event."},"balanceOf(address)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the amount of tokens owned by `account`."},"totalSupply()":{constant:!0,inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the amount of tokens in existence."},"transfer(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"Moves `amount` tokens from the caller's account to `recipient`.\t * Returns a boolean value indicating whether the operation succeeded.\t * Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\t * Returns a boolean value indicating whether the operation succeeded.\t * Emits a {Transfer} event."}}},"contracts/Openzeppelin/Ownable.sol:Ownable":{source:"contracts/Openzeppelin/Ownable.sol",name:"Ownable",details:"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. * This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.",constructor:{inputs:[],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"contracts/Openzeppelin/ReentrancyGuard.sol:ReentrancyGuard":{source:"contracts/Openzeppelin/ReentrancyGuard.sol",name:"ReentrancyGuard",title:"Helps contracts guard against reentrancy attacks.",author:"Remco Bloemen , Eenae ",details:"If you mark a function `nonReentrant`, you should also mark it `external`."},"contracts/Openzeppelin/SafeERC20.sol:SafeERC20":{source:"contracts/Openzeppelin/SafeERC20.sol",name:"SafeERC20",title:"SafeERC20",details:"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"contracts/Openzeppelin/SafeMath.sol:SafeMath":{source:"contracts/Openzeppelin/SafeMath.sol",name:"SafeMath",details:"Wrappers over Solidity's arithmetic operations with added overflow checks. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. * Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always."},"contracts/OriginsAdmin.sol:OriginsAdmin":{source:"contracts/OriginsAdmin.sol",name:"OriginsAdmin",title:"An owner contract with granular access for multiple parties.",author:"Franklin Richards - powerhousefrank@protonmail.com",details:"To add a new role, add the corresponding array and mapping, along with add, remove and get functions.",notice:"You can use this contract for creating multiple owners with different access.",constructor:{inputs:[{internalType:"address[]",name:"_owners",type:"address[]"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"OwnerAdded(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_newOwner",type:"address"}],name:"OwnerAdded",type:"event"},"OwnerRemoved(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_removedOwner",type:"address"}],name:"OwnerRemoved",type:"event"},"VerifierAdded(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_newVerifier",type:"address"}],name:"VerifierAdded",type:"event"},"VerifierRemoved(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_removedVerifier",type:"address"}],name:"VerifierRemoved",type:"event"}},methods:{"addOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"_newOwner",type:"address"}],name:"addOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_newOwner:"The address of the new owner."},notice:"The function to add a new owner."},"addVerifier(address)":{constant:!1,inputs:[{internalType:"address",name:"_newVerifier",type:"address"}],name:"addVerifier",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_newVerifier:"The address of the new verifier."},notice:"The function to add a new verifier."},"c_0x55aecb26(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x55aecb26",type:"bytes32"}],name:"c_0x55aecb26",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"c_0x8209a966(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x8209a966",type:"bytes32"}],name:"c_0x8209a966",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"checkOwner(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"checkOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address to check."},return:"True if Owner, False otherwise.",notice:"Checks if the passed address is an owner or not."},"checkVerifier(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"checkVerifier",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address to check."},return:"True if Verifier, False otherwise.",notice:"Checks if the passed address is a verifier or not."},"getOwners()":{constant:!0,inputs:[],name:"getOwners",outputs:[{internalType:"address[]",name:"",type:"address[]"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address array of the owners.",return:"The list of owners."},"getVerifiers()":{constant:!0,inputs:[],name:"getVerifiers",outputs:[{internalType:"address[]",name:"",type:"address[]"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address array of the verifier.",return:"The list of verifiers."},"removeOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"_ownerToRemove",type:"address"}],name:"removeOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_ownerToRemove:"The address of the owner which should be removed."},notice:"The function to remove an owner."},"removeVerifier(address)":{constant:!1,inputs:[{internalType:"address",name:"_verifierToRemove",type:"address"}],name:"removeVerifier",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_verifierToRemove:"The address of the verifier which should be removed."},notice:"The function to remove an verifier."}}},"contracts/OriginsBase.sol:OriginsBase":{source:"contracts/OriginsBase.sol",name:"OriginsBase",title:"A contract for Origins platform.",author:"Franklin Richards - powerhousefrank@protonmail.com",details:"Don't forget to update the Interface: IOrigins, according to the changes in this.",notice:"You can use this contract for creating a sale in the Origins Platform.",constructor:{inputs:[{internalType:"address[]",name:"_owners",type:"address[]"},{internalType:"address",name:"_token",type:"address"},{internalType:"address payable",name:"_depositAddress",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"AddressVerified(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_verifiedAddress",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"}],name:"AddressVerified",type:"event"},"DepositAddressUpdated(address,address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_oldDepositAddr",type:"address"},{indexed:!0,internalType:"address",name:"_newDepositAddr",type:"address"}],name:"DepositAddressUpdated",type:"event"},"LockedFundUpdated(address,address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_oldLockedFund",type:"address"},{indexed:!0,internalType:"address",name:"_newLockedFund",type:"address"}],name:"LockedFundUpdated",type:"event"},"NewTierCreated(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"}],name:"NewTierCreated",type:"event"},"OwnerAdded(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_newOwner",type:"address"}],name:"OwnerAdded",type:"event"},"OwnerRemoved(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_removedOwner",type:"address"}],name:"OwnerRemoved",type:"event"},"ProceedingWithdrawn(address,address,uint256,uint8,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"enum OriginsStorage.DepositType",name:"_depositType",type:"uint8"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ProceedingWithdrawn",type:"event"},"RemainingTokenWithdrawn(address,address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_remainingToken",type:"uint256"}],name:"RemainingTokenWithdrawn",type:"event"},"TierDepositUpdated(address,uint256,uint256,address,uint8)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_depositRate",type:"uint256"},{indexed:!0,internalType:"address",name:"_depositToken",type:"address"},{indexed:!1,internalType:"enum OriginsStorage.DepositType",name:"_depositType",type:"uint8"}],name:"TierDepositUpdated",type:"event"},"TierSaleEnded(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"}],name:"TierSaleEnded",type:"event"},"TierSaleUpdatedMaximum(address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_updatedMaxAmount",type:"uint256"}],name:"TierSaleUpdatedMaximum",type:"event"},"TierSaleUpdatedMinimum(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"}],name:"TierSaleUpdatedMinimum",type:"event"},"TierTimeUpdated(address,uint256,uint256,uint256,uint8)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_saleStartTS",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_saleEnd",type:"uint256"},{indexed:!1,internalType:"enum OriginsStorage.SaleEndDurationOrTS",name:"_saleEndDurationOrTS",type:"uint8"}],name:"TierTimeUpdated",type:"event"},"TierTokenAmountUpdated(address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_remainingTokens",type:"uint256"}],name:"TierTokenAmountUpdated",type:"event"},"TierTokenLimitUpdated(address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_minAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_maxAmount",type:"uint256"}],name:"TierTokenLimitUpdated",type:"event"},"TierVerificationUpdated(address,uint256,uint8)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"enum OriginsStorage.VerificationType",name:"_verificationType",type:"uint8"}],name:"TierVerificationUpdated",type:"event"},"TierVestOrLockUpdated(address,uint256,uint256,uint256,uint256,uint8)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_vestOrLockCliff",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_vestOrLockDuration",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_unlockedBP",type:"uint256"},{indexed:!1,internalType:"enum OriginsStorage.TransferType",name:"_transferType",type:"uint8"}],name:"TierVestOrLockUpdated",type:"event"},"TokenBuy(address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_tokensBought",type:"uint256"}],name:"TokenBuy",type:"event"},"VerifierAdded(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_newVerifier",type:"address"}],name:"VerifierAdded",type:"event"},"VerifierRemoved(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_removedVerifier",type:"address"}],name:"VerifierRemoved",type:"event"}},methods:{"addOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"_newOwner",type:"address"}],name:"addOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_newOwner:"The address of the new owner."},notice:"The function to add a new owner."},"addVerifier(address)":{constant:!1,inputs:[{internalType:"address",name:"_newVerifier",type:"address"}],name:"addVerifier",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_newVerifier:"The address of the new verifier."},notice:"The function to add a new verifier."},"addressVerification(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_addressToBeVerified",type:"address"},{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"addressVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_addressToBeVerified:"The address which has to be veriried for the sale.",_tierID:"The tier for which the address has to be verified."},notice:"Function to verify a single address with a single tier."},"buy(uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"buy",outputs:[],payable:!0,stateMutability:"payable",type:"function",details:"If deposit type if RBTC, then _amount can be passed as zero.",params:{_amount:"The amount of token (deposit asset) which will be sent for purchasing.",_tierID:"The Tier ID from which the token has to be bought."},notice:"Function to buy tokens from sale based on tier."},"c_0x4ad0f1fc(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x4ad0f1fc",type:"bytes32"}],name:"c_0x4ad0f1fc",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"c_0x55aecb26(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x55aecb26",type:"bytes32"}],name:"c_0x55aecb26",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"c_0x7d365384(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x7d365384",type:"bytes32"}],name:"c_0x7d365384",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"c_0x8209a966(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x8209a966",type:"bytes32"}],name:"c_0x8209a966",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"checkOwner(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"checkOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address to check."},return:"True if Owner, False otherwise.",notice:"Checks if the passed address is an owner or not."},"checkSaleEnded(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"checkSaleEnded",outputs:[{internalType:"bool",name:"_status",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"A return of false does not necessary mean the sale is active. It can also be in inactive state.",params:{_tierID:"The Tier whose info is to be read."},return:"True is sale ended, False otherwise.",notice:"Function to check if a tier sale ended or not."},"checkVerifier(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"checkVerifier",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address to check."},return:"True if Verifier, False otherwise.",notice:"Checks if the passed address is a verifier or not."},"createTier(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_maxAmount",type:"uint256"},{internalType:"uint256",name:"_remainingTokens",type:"uint256"},{internalType:"uint256",name:"_saleStartTS",type:"uint256"},{internalType:"uint256",name:"_saleEnd",type:"uint256"},{internalType:"uint256",name:"_unlockedBP",type:"uint256"},{internalType:"uint256",name:"_vestOrLockCliff",type:"uint256"},{internalType:"uint256",name:"_vestOrLockDuration",type:"uint256"},{internalType:"uint256",name:"_depositRate",type:"uint256"},{internalType:"uint256",name:"_depositType",type:"uint256"},{internalType:"uint256",name:"_verificationType",type:"uint256"},{internalType:"uint256",name:"_saleEndDurationOrTS",type:"uint256"},{internalType:"uint256",name:"_transferType",type:"uint256"}],name:"createTier",outputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"In the future this should be decoupled. Some are currently sent with default value due to Stack Too Deep problem.",params:{_depositRate:"Contains the rate of the token w.r.t. the depositing asset.",_maxAmount:"The maximum amount of asset which can be deposited.",_remainingTokens:"Contains the remaining tokens for sale.",_saleEnd:"Contains the duration or timestamp for the sale to end. After which no user will be able to buy tokens.",_saleEndDurationOrTS:"Contains whether end of sale is by Duration or Timestamp.",_saleStartTS:"Contains the timestamp for the sale to start. Before which no user will be able to buy tokens.",_transferType:"Contains the type of token transfer after a user buys to get the tokens.",_unlockedBP:"Contains the unlock amount in Basis Point for Vesting/Lock.",_verificationType:"Contains the method by which verification happens.",_vestOrLockCliff:"Contains the cliff of the vesting/lock for distribution.",_vestOrLockDuration:"Contains the duration of the vesting/lock for distribution."},return:"_tierID The newly created tier ID.",notice:"Function to create a new tier."},"getDepositAddress()":{constant:!0,inputs:[],name:"getDepositAddress",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"If zero is returned, any of the owners can withdraw the raised funds.",return:"The address of the deposit address.",notice:"Function to read the deposit address."},"getLockDetails()":{constant:!0,inputs:[],name:"getLockDetails",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of Locked Fund Contract.",notice:"Function to read the locked fund contract address."},"getOwners()":{constant:!0,inputs:[],name:"getOwners",outputs:[{internalType:"address[]",name:"",type:"address[]"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address array of the owners.",return:"The list of owners."},"getParticipatingWalletCountPerTier(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"getParticipatingWalletCountPerTier",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"Total participation of wallets cannot be determined by this. A user can participate on one round and not on other. In the future maybe a count on that can be created.",params:{_tierID:"The tier ID for which the count has to be checked."},return:"The number of wallets who participated in that Tier.",notice:"Function to read participating wallet count per tier."},"getTierCount()":{constant:!0,inputs:[],name:"getTierCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",return:"The number of tiers present in the contract.",notice:"Function to read the tier count."},"getToken()":{constant:!0,inputs:[],name:"getToken",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"The Token contract address which is being sold in the contract.",notice:"Function to read the token on sale."},"getTokensBoughtByAddressOnTier(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"},{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"getTokensBoughtByAddressOnTier",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address which has to be checked.",_tierID:"The tier ID for which the address has to be checked."},return:"The amount of tokens bought by the address.",notice:"Function to read tokens bought by an address on a particular tier."},"getTokensSoldPerTier(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"getTokensSoldPerTier",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_tierID:"The tier ID for which the sold metrics has to be checked."},return:"The amount of tokens sold on that tier.",notice:"Function to read tokens sold per tier."},"getTotalTokenAllocationPerTier(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"getTotalTokenAllocationPerTier",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_tierID:"The tier ID for which the metrics has to be checked."},return:"The amount of tokens allocation on that tier.",notice:"Function to read total token allocation per tier."},"getVerifiers()":{constant:!0,inputs:[],name:"getVerifiers",outputs:[{internalType:"address[]",name:"",type:"address[]"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address array of the verifier.",return:"The list of verifiers."},"isAddressApproved(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"},{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"isAddressApproved",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address which has to be checked.",_tierID:"The tier ID for which the address has to be checked."},return:"True is allowed, False otherwise.",notice:"Function to read address which are approved for sale in a tier."},"multipleAddressAndTierVerification(address[],uint256[])":{constant:!1,inputs:[{internalType:"address[]",name:"_addressToBeVerified",type:"address[]"},{internalType:"uint256[]",name:"_tierID",type:"uint256[]"}],name:"multipleAddressAndTierVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_addressToBeVerified:"The addresses which has to be veriried for the sale.",_tierID:"The tiers for which the addresses has to be verified."},notice:"Function to verify multiple address with multiple tiers."},"multipleAddressSingleTierVerification(address[],uint256)":{constant:!1,inputs:[{internalType:"address[]",name:"_addressToBeVerified",type:"address[]"},{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"multipleAddressSingleTierVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_addressToBeVerified:"The addresses which has to be veriried for the sale.",_tierID:"The tier for which the addresses has to be verified."},notice:"Function to verify multiple address with a single tier."},"readTierPartA(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"readTierPartA",outputs:[{internalType:"uint256",name:"_minAmount",type:"uint256"},{internalType:"uint256",name:"_maxAmount",type:"uint256"},{internalType:"uint256",name:"_remainingTokens",type:"uint256"},{internalType:"uint256",name:"_saleStartTS",type:"uint256"},{internalType:"uint256",name:"_saleEnd",type:"uint256"},{internalType:"uint256",name:"_unlockedBP",type:"uint256"},{internalType:"uint256",name:"_vestOrLockCliff",type:"uint256"},{internalType:"uint256",name:"_vestOrLockDuration",type:"uint256"},{internalType:"uint256",name:"_depositRate",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_tierID:"The Tier whose info is to be read."},return:"_minAmount The minimum amount which can be deposited._maxAmount The maximum amount which can be deposited._remainingTokens Contains the remaining tokens for sale._saleStartTS Contains the timestamp for the sale to start. Before which no user will be able to buy tokens._saleEnd Contains the duration or timestamp for the sale to end. After which no user will be able to buy tokens._unlockedBP Contains the unlock amount in Basis Point for Vesting/Lock._vestOrLockCliff Contains the cliff of the vesting/lock for distribution._vestOrLockDuration Contains the duration of the vesting/lock for distribution._depositRate Contains the rate of the token w.r.t. the depositing asset.",notice:"Function to read a Tier parameter."},"readTierPartB(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"}],name:"readTierPartB",outputs:[{internalType:"address",name:"_depositToken",type:"address"},{internalType:"uint256",name:"_depositType",type:"uint256"},{internalType:"uint256",name:"_verificationType",type:"uint256"},{internalType:"uint256",name:"_saleEndDurationOrTS",type:"uint256"},{internalType:"uint256",name:"_transferType",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_tierID:"The Tier whose info is to be read."},return:"_depositToken Contains the deposit token address if the deposit type is Token._depositType The type of deposit for the particular sale._verificationType Contains the method by which verification happens._saleEndDurationOrTS Contains whether end of sale is by Duration or Timestamp._transferType Contains the type of token transfer after a user buys to get the tokens.",notice:"Function to read a Tier parameter."},"removeOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"_ownerToRemove",type:"address"}],name:"removeOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_ownerToRemove:"The address of the owner which should be removed."},notice:"The function to remove an owner."},"removeVerifier(address)":{constant:!1,inputs:[{internalType:"address",name:"_verifierToRemove",type:"address"}],name:"removeVerifier",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_verifierToRemove:"The address of the verifier which should be removed."},notice:"The function to remove an verifier."},"setDepositAddress(address)":{constant:!1,inputs:[{internalType:"address payable",name:"_depositAddress",type:"address"}],name:"setDepositAddress",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"If this is not set, an owner can withdraw the funds. Here owner is supposed to be a multisig. Or a trusted party.",params:{_depositAddress:"The address of deposit address where all the raised fund will go."},notice:"Function to set the deposit address."},"setLockedFund(address)":{constant:!1,inputs:[{internalType:"address",name:"_lockedFund",type:"address"}],name:"setLockedFund",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_lockedFund:"The address of new the Vesting registry."},notice:"Function to set the Locked Fund Contract Address."},"setTierDeposit(uint256,uint256,address,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_depositRate",type:"uint256"},{internalType:"address",name:"_depositToken",type:"address"},{internalType:"uint256",name:"_depositType",type:"uint256"}],name:"setTierDeposit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_depositRate:"The rate is the, asset * rate = token.",_depositToken:"The token for that particular Tier Sale.",_depositType:"The type of deposit for the particular sale.",_tierID:"The Tier ID which is being updated."},notice:"Function to set the Tier Deposit Parameters."},"setTierTime(uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_saleStartTS",type:"uint256"},{internalType:"uint256",name:"_saleEnd",type:"uint256"},{internalType:"uint256",name:"_saleEndDurationOrTS",type:"uint256"}],name:"setTierTime",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_saleEnd:"The Tier Sale End Duration or Timestamp.",_saleEndDurationOrTS:"The Tier Sale End Type for the Tier.",_saleStartTS:"The Tier Sale Start Timestamp.",_tierID:"The Tier ID which is being updated."},notice:"Function to set the Tier Time Parameters."},"setTierTokenAmount(uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_remainingTokens",type:"uint256"}],name:"setTierTokenAmount",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_remainingTokens:"The maximum number of tokens allowed to be sold in the tier.",_tierID:"The Tier ID which is being updated."},notice:"Function to set the Tier Token Amount Parameters."},"setTierTokenLimit(uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_minAmount",type:"uint256"},{internalType:"uint256",name:"_maxAmount",type:"uint256"}],name:"setTierTokenLimit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_maxAmount:"The maximum asset amount allowed to participate in that tier.",_minAmount:"The minimum asset amount required to participate in that tier.",_tierID:"The Tier ID which is being updated."},notice:"Function to set the Tier Token Limit Parameters."},"setTierVerification(uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_verificationType",type:"uint256"}],name:"setTierVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_tierID:"The Tier ID which is being updated.",_verificationType:"The type of verification for the particular sale."},notice:"Function to set the Tier Verification Method."},"setTierVestOrLock(uint256,uint256,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_tierID",type:"uint256"},{internalType:"uint256",name:"_vestOrLockCliff",type:"uint256"},{internalType:"uint256",name:"_vestOrLockDuration",type:"uint256"},{internalType:"uint256",name:"_unlockedBP",type:"uint256"},{internalType:"uint256",name:"_transferType",type:"uint256"}],name:"setTierVestOrLock",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_tierID:"The Tier ID which is being updated.",_transferType:"The Tier Transfer Type for the Tier.",_unlockedBP:"The unlocked token amount in BP.",_vestOrLockCliff:"The Vest/Lock Cliff = A * LockedFund.Interval, where A is the cliff.",_vestOrLockDuration:"The Vest/Lock Duration = A * LockedFund.Interval, where A is the duration."},notice:"Function to set the Tier Vest/Lock Parameters."},"singleAddressMultipleTierVerification(address,uint256[])":{constant:!1,inputs:[{internalType:"address",name:"_addressToBeVerified",type:"address"},{internalType:"uint256[]",name:"_tierID",type:"uint256[]"}],name:"singleAddressMultipleTierVerification",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_addressToBeVerified:"The address which has to be veriried for the sale.",_tierID:"The tiers for which the address has to be verified."},notice:"Function to verify a single address with multiple tiers."},"withdrawSaleDeposit()":{constant:!1,inputs:[],name:"withdrawSaleDeposit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"In the future this could be made to be accessible only to seller, rather than owner.",notice:"The function used by the admin or deposit address to withdraw the sale proceedings."}}},"contracts/OriginsEvents.sol:OriginsEvents":{source:"contracts/OriginsEvents.sol",name:"OriginsEvents",title:"A contract containing all the events of Origins Base.",author:"Franklin Richards - powerhousefrank@protonmail.com",notice:"You can use this contract for adding events into Origins Base.",events:{"AddressVerified(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_verifiedAddress",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"}],name:"AddressVerified",type:"event"},"DepositAddressUpdated(address,address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_oldDepositAddr",type:"address"},{indexed:!0,internalType:"address",name:"_newDepositAddr",type:"address"}],name:"DepositAddressUpdated",type:"event"},"LockedFundUpdated(address,address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_oldLockedFund",type:"address"},{indexed:!0,internalType:"address",name:"_newLockedFund",type:"address"}],name:"LockedFundUpdated",type:"event"},"NewTierCreated(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"}],name:"NewTierCreated",type:"event"},"OwnerAdded(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_newOwner",type:"address"}],name:"OwnerAdded",type:"event"},"OwnerRemoved(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_removedOwner",type:"address"}],name:"OwnerRemoved",type:"event"},"ProceedingWithdrawn(address,address,uint256,uint8,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"enum OriginsStorage.DepositType",name:"_depositType",type:"uint8"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ProceedingWithdrawn",type:"event"},"RemainingTokenWithdrawn(address,address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!0,internalType:"address",name:"_receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_remainingToken",type:"uint256"}],name:"RemainingTokenWithdrawn",type:"event"},"TierDepositUpdated(address,uint256,uint256,address,uint8)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_depositRate",type:"uint256"},{indexed:!0,internalType:"address",name:"_depositToken",type:"address"},{indexed:!1,internalType:"enum OriginsStorage.DepositType",name:"_depositType",type:"uint8"}],name:"TierDepositUpdated",type:"event"},"TierSaleEnded(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"}],name:"TierSaleEnded",type:"event"},"TierSaleUpdatedMaximum(address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_updatedMaxAmount",type:"uint256"}],name:"TierSaleUpdatedMaximum",type:"event"},"TierSaleUpdatedMinimum(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"}],name:"TierSaleUpdatedMinimum",type:"event"},"TierTimeUpdated(address,uint256,uint256,uint256,uint8)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_saleStartTS",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_saleEnd",type:"uint256"},{indexed:!1,internalType:"enum OriginsStorage.SaleEndDurationOrTS",name:"_saleEndDurationOrTS",type:"uint8"}],name:"TierTimeUpdated",type:"event"},"TierTokenAmountUpdated(address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_remainingTokens",type:"uint256"}],name:"TierTokenAmountUpdated",type:"event"},"TierTokenLimitUpdated(address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_minAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_maxAmount",type:"uint256"}],name:"TierTokenLimitUpdated",type:"event"},"TierVerificationUpdated(address,uint256,uint8)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"enum OriginsStorage.VerificationType",name:"_verificationType",type:"uint8"}],name:"TierVerificationUpdated",type:"event"},"TierVestOrLockUpdated(address,uint256,uint256,uint256,uint256,uint8)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_vestOrLockCliff",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_vestOrLockDuration",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_unlockedBP",type:"uint256"},{indexed:!1,internalType:"enum OriginsStorage.TransferType",name:"_transferType",type:"uint8"}],name:"TierVestOrLockUpdated",type:"event"},"TokenBuy(address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"uint256",name:"_tierID",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_tokensBought",type:"uint256"}],name:"TokenBuy",type:"event"},"VerifierAdded(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_newVerifier",type:"address"}],name:"VerifierAdded",type:"event"},"VerifierRemoved(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_initiator",type:"address"},{indexed:!1,internalType:"address",name:"_removedVerifier",type:"address"}],name:"VerifierRemoved",type:"event"}},methods:{"addOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"_newOwner",type:"address"}],name:"addOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_newOwner:"The address of the new owner."},notice:"The function to add a new owner."},"addVerifier(address)":{constant:!1,inputs:[{internalType:"address",name:"_newVerifier",type:"address"}],name:"addVerifier",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_newVerifier:"The address of the new verifier."},notice:"The function to add a new verifier."},"c_0x55aecb26(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x55aecb26",type:"bytes32"}],name:"c_0x55aecb26",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"c_0x7d365384(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x7d365384",type:"bytes32"}],name:"c_0x7d365384",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"c_0x8209a966(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x8209a966",type:"bytes32"}],name:"c_0x8209a966",outputs:[],payable:!1,stateMutability:"pure",type:"function"},"checkOwner(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"checkOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address to check."},return:"True if Owner, False otherwise.",notice:"Checks if the passed address is an owner or not."},"checkVerifier(address)":{constant:!0,inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"checkVerifier",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{_addr:"The address to check."},return:"True if Verifier, False otherwise.",notice:"Checks if the passed address is a verifier or not."},"getOwners()":{constant:!0,inputs:[],name:"getOwners",outputs:[{internalType:"address[]",name:"",type:"address[]"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address array of the owners.",return:"The list of owners."},"getVerifiers()":{constant:!0,inputs:[],name:"getVerifiers",outputs:[{internalType:"address[]",name:"",type:"address[]"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address array of the verifier.",return:"The list of verifiers."},"removeOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"_ownerToRemove",type:"address"}],name:"removeOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_ownerToRemove:"The address of the owner which should be removed."},notice:"The function to remove an owner."},"removeVerifier(address)":{constant:!1,inputs:[{internalType:"address",name:"_verifierToRemove",type:"address"}],name:"removeVerifier",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Only callable by an Owner.",params:{_verifierToRemove:"The address of the verifier which should be removed."},notice:"The function to remove an verifier."}}},"contracts/OriginsStorage.sol:OriginsStorage":{source:"contracts/OriginsStorage.sol",name:"OriginsStorage",title:"A storage contract for Origins Platform.",author:"Franklin Richards - powerhousefrank@protonmail.com",notice:"This plays as the harddisk for the Origins Platform.",methods:{"c_0x8209a966(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"c__0x8209a966",type:"bytes32"}],name:"c_0x8209a966",outputs:[],payable:!1,stateMutability:"pure",type:"function"}}},"contracts/Sovryn/Governance/FeeSharingProxy.sol:FeeSharingProxy":{source:"contracts/Sovryn/Governance/FeeSharingProxy.sol",name:"FeeSharingProxy",title:"The FeeSharingProxy contract.",notice:"Staking is not only granting voting rights, but also access to fee sharing according to the own voting power in relation to the total. Whenever somebody decides to collect the fees from the protocol, they get transferred to a proxy contract which invests the funds in the lending pool and keeps the pool tokens. * The fee sharing proxy will be set as feesController of the protocol contract. This allows the fee sharing proxy to withdraw the fees. The fee sharing proxy holds the pool tokens and keeps track of which user owns how many tokens. In order to know how many tokens a user owns, the fee sharing proxy needs to know the user’s weighted stake in relation to the total weighted stake (aka total voting power). * Because both values are subject to change, they may be different on each fee withdrawal. To be able to calculate a user’s share of tokens when he wants to withdraw, we need checkpoints. * This contract is intended to be set as the protocol fee collector. Anybody can invoke the withdrawFees function which uses protocol.withdrawFees to obtain available fees from operations on a certain token. These fees are deposited in the corresponding loanPool. Also, the staking contract sends slashed tokens to this contract. When a user calls the withdraw function, the contract transfers the fee sharing rewards in proportion to the user’s weighted stake since the last withdrawal. * The protocol is collecting fees in all sorts of currencies and then automatically supplies them to the respective lending pools. Therefore, all fees are generating interest for the SOV holders. If one of them withdraws fees, it will get pool tokens. It is planned to add the option to convert anything to rBTC before withdrawing, but not yet implemented.",constructor:{inputs:[{internalType:"contract IProtocol",name:"_protocol",type:"address"},{internalType:"contract IStaking",name:"_staking",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"CheckpointAdded(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CheckpointAdded",type:"event"},"FeeWithdrawn(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"FeeWithdrawn",type:"event"},"TokensTransferred(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensTransferred",type:"event"},"UserFeeWithdrawn(address,address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"UserFeeWithdrawn",type:"event"}},methods:{"getAccumulatedFees(address,address)":{constant:!0,inputs:[{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_loanPoolToken",type:"address"}],name:"getAccumulatedFees",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_loanPoolToken:"Address of the pool token.",_user:"The address of the user or contract."},return:"The accumulated fee for the message sender.",notice:"Get the accumulated loan pool fee of the message sender."},"lastFeeWithdrawalTime(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"lastFeeWithdrawalTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"numTokenCheckpoints(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"numTokenCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"processedCheckpoints(address,address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"processedCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"protocol()":{constant:!0,inputs:[],name:"protocol",outputs:[{internalType:"contract IProtocol",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"staking()":{constant:!0,inputs:[],name:"staking",outputs:[{internalType:"contract IStaking",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"tokenCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"tokenCheckpoints",outputs:[{internalType:"uint32",name:"blockNumber",type:"uint32"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint96",name:"totalWeightedStake",type:"uint96"},{internalType:"uint96",name:"numTokens",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"transferTokens(address,uint96)":{constant:!1,inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"uint96",name:"_amount",type:"uint96"}],name:"transferTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"We just update amount of tokens here and write checkpoint in a separate methods in order to prevent adding checkpoints too often.",params:{_amount:"Amount to be transferred.",_token:"Address of the token."},notice:"Transfer tokens to this contract."},"unprocessedAmount(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"unprocessedAmount",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"withdraw(address,uint32,address)":{constant:!1,inputs:[{internalType:"address",name:"_loanPoolToken",type:"address"},{internalType:"uint32",name:"_maxCheckpoints",type:"uint32"},{internalType:"address",name:"_receiver",type:"address"}],name:"withdraw",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_loanPoolToken:"Address of the pool token.",_maxCheckpoints:"Maximum number of checkpoints to be processed.",_receiver:"The receiver of tokens or msg.sender"},notice:"Withdraw accumulated fee to the message sender.\t * The Sovryn protocol collects fees on every trade/swap and loan. These fees will be distributed to SOV stakers based on their voting power as a percentage of total voting power. Therefore, staking more SOV and/or staking for longer will increase your share of the fees generated, meaning you will earn more from staking."},"withdrawFees(address)":{constant:!1,inputs:[{internalType:"address",name:"_token",type:"address"}],name:"withdrawFees",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_token:"Address of the token"},notice:"Withdraw fees for the given token: lendingFee + tradingFee + borrowingFee"}}},"contracts/Sovryn/Governance/FeeSharingProxy.sol:ILoanToken":{source:"contracts/Sovryn/Governance/FeeSharingProxy.sol",name:"ILoanToken",methods:{"mint(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"depositAmount",type:"uint256"}],name:"mint",outputs:[{internalType:"uint256",name:"mintAmount",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"}}},"contracts/Sovryn/Governance/FeeSharingProxy.sol:IProtocol":{source:"contracts/Sovryn/Governance/FeeSharingProxy.sol",name:"IProtocol",methods:{"underlyingToLoanPool(address)":{constant:!1,inputs:[{internalType:"address",name:"token",type:"address"}],name:"underlyingToLoanPool",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"function"},"withdrawFees(address,address)":{constant:!1,inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"receiver",type:"address"}],name:"withdrawFees",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"}}},"contracts/Sovryn/Governance/Staking/Checkpoints.sol:Checkpoints":{source:"contracts/Sovryn/Governance/Staking/Checkpoints.sol",name:"Checkpoints",title:"Checkpoints contract.",notice:"Increases and decreases storage values for users, delegatees and total daily stake.",events:{"AdminAdded(address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminAdded",type:"event"},"AdminRemoved(address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminRemoved",type:"event"},"ContractCodeHashAdded(bytes32)":{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"hash",type:"bytes32"}],name:"ContractCodeHashAdded",type:"event"},"ContractCodeHashRemoved(bytes32)":{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"hash",type:"bytes32"}],name:"ContractCodeHashRemoved",type:"event"},"DelegateChanged(address,uint256,address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegator",type:"address"},{indexed:!1,internalType:"uint256",name:"lockedUntil",type:"uint256"},{indexed:!0,internalType:"address",name:"fromDelegate",type:"address"},{indexed:!0,internalType:"address",name:"toDelegate",type:"address"}],name:"DelegateChanged",type:"event"},"DelegateStakeChanged(address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegate",type:"address"},{indexed:!1,internalType:"uint256",name:"lockedUntil",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousBalance",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newBalance",type:"uint256"}],name:"DelegateStakeChanged",type:"event"},"ExtendedStakingDuration(address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"staker",type:"address"},{indexed:!1,internalType:"uint256",name:"previousDate",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newDate",type:"uint256"}],name:"ExtendedStakingDuration",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},"TokensStaked(address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"staker",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"lockedUntil",type:"uint256"},{indexed:!1,internalType:"uint256",name:"totalStaked",type:"uint256"}],name:"TokensStaked",type:"event"},"TokensUnlocked(uint256)":{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensUnlocked",type:"event"},"TokensWithdrawn(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"staker",type:"address"},{indexed:!1,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensWithdrawn",type:"event"},"VestingTokensWithdrawn(address,address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"vesting",type:"address"},{indexed:!1,internalType:"address",name:"receiver",type:"address"}],name:"VestingTokensWithdrawn",type:"event"}},methods:{"DELEGATION_TYPEHASH()":{constant:!0,inputs:[],name:"DELEGATION_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"DOMAIN_TYPEHASH()":{constant:!0,inputs:[],name:"DOMAIN_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"MAX_DURATION()":{constant:!0,inputs:[],name:"MAX_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"MAX_VOTING_WEIGHT()":{constant:!0,inputs:[],name:"MAX_VOTING_WEIGHT",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"SOVToken()":{constant:!0,inputs:[],name:"SOVToken",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"WEIGHT_FACTOR()":{constant:!0,inputs:[],name:"WEIGHT_FACTOR",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"admins(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"admins",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"allUnlocked()":{constant:!0,inputs:[],name:"allUnlocked",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"delegateStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"delegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"delegates(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"feeSharing()":{constant:!0,inputs:[],name:"feeSharing",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"kickoffTS()":{constant:!0,inputs:[],name:"kickoffTS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"newStakingContract()":{constant:!0,inputs:[],name:"newStakingContract",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"nonces(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"numDelegateStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numDelegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numTotalStakingCheckpoints(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"numTotalStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numUserStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numUserStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"totalStakingCheckpoints(uint256,uint32)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"totalStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"userStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"userStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"vestingCodeHashes(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"vestingCodeHashes",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"vestingWhitelist(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"vestingWhitelist",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"weightScaling()":{constant:!0,inputs:[],name:"weightScaling",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"}}},"contracts/Sovryn/Governance/Staking/Staking.sol:Staking":{source:"contracts/Sovryn/Governance/Staking/Staking.sol",name:"Staking",title:"Staking contract.",notice:"Pay-in and pay-out function for staking and withdrawing tokens. Staking is delegated and vested: To gain voting power, SOV holders must stake their SOV for a given period of time. Aside from Bitocracy participation, there's a financially-rewarding reason for staking SOV. Tokenholders who stake their SOV receive staking rewards, a pro-rata share of the revenue that the platform generates from various transaction fees plus revenues from stakers who have a portion of their SOV slashed for early unstaking.",events:{"AdminAdded(address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminAdded",type:"event"},"AdminRemoved(address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminRemoved",type:"event"},"ContractCodeHashAdded(bytes32)":{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"hash",type:"bytes32"}],name:"ContractCodeHashAdded",type:"event"},"ContractCodeHashRemoved(bytes32)":{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"hash",type:"bytes32"}],name:"ContractCodeHashRemoved",type:"event"},"DelegateChanged(address,uint256,address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegator",type:"address"},{indexed:!1,internalType:"uint256",name:"lockedUntil",type:"uint256"},{indexed:!0,internalType:"address",name:"fromDelegate",type:"address"},{indexed:!0,internalType:"address",name:"toDelegate",type:"address"}],name:"DelegateChanged",type:"event"},"DelegateStakeChanged(address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegate",type:"address"},{indexed:!1,internalType:"uint256",name:"lockedUntil",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousBalance",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newBalance",type:"uint256"}],name:"DelegateStakeChanged",type:"event"},"ExtendedStakingDuration(address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"staker",type:"address"},{indexed:!1,internalType:"uint256",name:"previousDate",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newDate",type:"uint256"}],name:"ExtendedStakingDuration",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},"TokensStaked(address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"staker",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"lockedUntil",type:"uint256"},{indexed:!1,internalType:"uint256",name:"totalStaked",type:"uint256"}],name:"TokensStaked",type:"event"},"TokensUnlocked(uint256)":{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensUnlocked",type:"event"},"TokensWithdrawn(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"staker",type:"address"},{indexed:!1,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensWithdrawn",type:"event"},"VestingTokensWithdrawn(address,address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"vesting",type:"address"},{indexed:!1,internalType:"address",name:"receiver",type:"address"}],name:"VestingTokensWithdrawn",type:"event"}},methods:{"DELEGATION_TYPEHASH()":{constant:!0,inputs:[],name:"DELEGATION_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"DOMAIN_TYPEHASH()":{constant:!0,inputs:[],name:"DOMAIN_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"MAX_DURATION()":{constant:!0,inputs:[],name:"MAX_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"MAX_VOTING_WEIGHT()":{constant:!0,inputs:[],name:"MAX_VOTING_WEIGHT",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"SOVToken()":{constant:!0,inputs:[],name:"SOVToken",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"WEIGHT_FACTOR()":{constant:!0,inputs:[],name:"WEIGHT_FACTOR",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"addAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_admin",type:"address"}],name:"addAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_admin:"The addresses of the account to grant permissions."},notice:"Add account to ACL."},"addContractCodeHash(address)":{constant:!1,inputs:[{internalType:"address",name:"vesting",type:"address"}],name:"addContractCodeHash",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"We need it to use _isVestingContract() function instead of isContract()",params:{vesting:"The address of Vesting contract."},notice:"Add vesting contract's code hash to a map of code hashes."},"admins(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"admins",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"allUnlocked()":{constant:!0,inputs:[],name:"allUnlocked",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"balanceOf(address)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint96",name:"balance",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"Iterate checkpoints adding up stakes.",params:{account:"The address of the account to get the balance of."},return:"The number of tokens held.",notice:"Get the number of staked tokens held by the user account."},"computeWeightByDate(uint256,uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"startDate",type:"uint256"}],name:"computeWeightByDate",outputs:[{internalType:"uint96",name:"weight",type:"uint96"}],payable:!1,stateMutability:"pure",type:"function",params:{date:"The unlocking date.",startDate:"We compute the weight for the tokens staked until 'date' on 'startDate'."},notice:"Compute the weight for a specific date."},"delegate(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"delegatee",type:"address"},{internalType:"uint256",name:"lockDate",type:"uint256"}],name:"delegate",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{delegatee:"The address to delegate votes to.",lockDate:"the date if the position to delegate."},notice:"Delegate votes from `msg.sender` which are locked until lockDate to `delegatee`."},"delegateBySig(address,uint256,uint256,uint256,uint8,bytes32,bytes32)":{constant:!1,inputs:[{internalType:"address",name:"delegatee",type:"address"},{internalType:"uint256",name:"lockDate",type:"uint256"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"delegateBySig",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"The signature needs to be broken up into 3 parameters, known as v, r and s: const r = '0x' + sig.substring(2).substring(0, 64); const s = '0x' + sig.substring(2).substring(64, 128); const v = '0x' + sig.substring(2).substring(128, 130);",params:{delegatee:"The address to delegate votes to.",expiry:"The time at which to expire the signature.",lockDate:"The date until which the position is locked.",nonce:"The contract state required to match the signature.",r:"Half of the ECDSA signature pair.",s:"Half of the ECDSA signature pair.",v:"The recovery byte of the signature."},notice:"Delegates votes from signatory to a delegatee account. Voting with EIP-712 Signatures.\t * Voting power can be delegated to any address, and then can be used to vote on proposals. A key benefit to users of by-signature functionality is that they can create a signed vote transaction for free, and have a trusted third-party spend rBTC(or ETH) on gas fees and write it to the blockchain for them.\t * The third party in this scenario, submitting the SOV-holder’s signed transaction holds a voting power that is for only a single proposal. The signatory still holds the power to vote on their own behalf in the proposal if the third party has not yet published the signed transaction that was given to them."},"delegateStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"delegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"delegates(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"extendStakingDuration(uint256,uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"previousLock",type:"uint256"},{internalType:"uint256",name:"until",type:"uint256"}],name:"extendStakingDuration",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{previousLock:"The old unlocking timestamp.",until:"The new unlocking timestamp in seconds."},notice:"Extend the staking duration until the specified date."},"feeSharing()":{constant:!0,inputs:[],name:"feeSharing",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"getCurrentStakedUntil(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"lockedTS",type:"uint256"}],name:"getCurrentStakedUntil",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",params:{lockedTS:"The timestamp to get the staked tokens for."},notice:"Get the current number of tokens staked for a day."},"getCurrentVotes(address)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"}],name:"getCurrentVotes",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"This is a wrapper to simplify arguments. The actual computation is performed on WeightedStaking parent contract.",params:{account:"The address to get votes balance."},return:"The number of current votes for a user account.",notice:"Get the current votes balance for a user account."},"getPriorStakeByDateForDelegatee(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getPriorStakeByDateForDelegatee",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"Block number must be a finalized block or else this function will revert to prevent misinformation. TODO: WeightedStaking::getPriorStakeByDateForDelegatee should probably better be internal instead of a public function.",params:{account:"The address of the account to check.",blockNumber:"The block number to get the vote balance at."},return:"The number of votes the account had as of the given block.",notice:"Determine the prior number of stake for an account as of a block number."},"getPriorTotalStakesForDate(uint256,uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getPriorTotalStakesForDate",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"Block number must be a finalized block or else this function will revert to prevent misinformation. TODO: WeightedStaking::getPriorTotalStakesForDate should probably better be internal instead of a public function.",params:{blockNumber:"The block number to get the vote balance at.",date:"The date to check the stakes for."},return:"The number of votes the account had as of the given block.",notice:"Determine the prior number of stake for an unlocking date as of a block number."},"getPriorTotalVotingPower(uint32,uint256)":{constant:!0,inputs:[{internalType:"uint32",name:"blockNumber",type:"uint32"},{internalType:"uint256",name:"time",type:"uint256"}],name:"getPriorTotalVotingPower",outputs:[{internalType:"uint96",name:"totalVotingPower",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",params:{time:"The timestamp for which to calculate the total voting power."},return:"The total voting power at the given time.",notice:"Compute the total voting power at a given time."},"getPriorUserStakeByDate(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getPriorUserStakeByDate",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"Block number must be a finalized block or else this function will revert to prevent misinformation.",params:{account:"The address of the account to check.",blockNumber:"The block number to get the vote balance at.",date:"The lock date."},return:"The number of votes the account had as of the given block.",notice:"Determine the prior number of stake for an account until a certain lock date as of a block number."},"getPriorVotes(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"date",type:"uint256"}],name:"getPriorVotes",outputs:[{internalType:"uint96",name:"votes",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"Block number must be a finalized block or else this function will revert to prevent misinformation. Used for Voting, not for fee sharing.",params:{account:"The address of the account to check.",blockNumber:"The block number to get the vote balance at."},return:"The number of votes the delegatee had as of the given block.",notice:"Determine the prior number of votes for a delegatee as of a block number. Iterate through checkpoints adding up voting power."},"getPriorWeightedStake(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"date",type:"uint256"}],name:"getPriorWeightedStake",outputs:[{internalType:"uint96",name:"votes",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:'Block number must be a finalized block or else this function will revert to prevent misinformation. Used for fee sharing, not voting. TODO: WeightedStaking::getPriorWeightedStake is using the variable name "votes" to add up token stake, and that could be misleading.',params:{account:"The address of the account to check.",blockNumber:"The block number to get the vote balance at."},return:"The weighted stake the account had as of the given block.",notice:"Determine the prior weighted stake for an account as of a block number. Iterate through checkpoints adding up voting power."},"getStakes(address)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"}],name:"getStakes",outputs:[{internalType:"uint256[]",name:"dates",type:"uint256[]"},{internalType:"uint96[]",name:"stakes",type:"uint96[]"}],payable:!1,stateMutability:"view",type:"function",params:{account:"The address to get stakes."},return:"The arrays of dates and stakes.",notice:"Get list of stakes for a user account."},"getWithdrawAmounts(uint96,uint256)":{constant:!0,inputs:[{internalType:"uint96",name:"amount",type:"uint96"},{internalType:"uint256",name:"until",type:"uint256"}],name:"getWithdrawAmounts",outputs:[{internalType:"uint96",name:"",type:"uint96"},{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",params:{amount:"The number of tokens to withdraw.",until:"The date until which the tokens were staked."},notice:"Get available and punished amount for withdrawing."},"governanceWithdraw(uint96,uint256,address)":{constant:!1,inputs:[{internalType:"uint96",name:"amount",type:"uint96"},{internalType:"uint256",name:"until",type:"uint256"},{internalType:"address",name:"receiver",type:"address"}],name:"governanceWithdraw",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Can be invoked only by whitelisted contract passed to governanceWithdrawVesting",params:{amount:"The number of tokens to withdraw.",receiver:"The receiver of the tokens. If not specified, send to the msg.sender",until:"The date until which the tokens were staked."},notice:"Withdraw the given amount of tokens."},"governanceWithdrawVesting(address,address)":{constant:!1,inputs:[{internalType:"address",name:"vesting",type:"address"},{internalType:"address",name:"receiver",type:"address"}],name:"governanceWithdrawVesting",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Can be invoked only by whitelisted contract passed to governanceWithdrawVesting.",params:{receiver:"The receiver of the tokens. If not specified, send to the msg.sender",vesting:"The address of Vesting contract."},notice:"Withdraw tokens for vesting contract."},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"kickoffTS()":{constant:!0,inputs:[],name:"kickoffTS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"migrateToNewStakingContract()":{constant:!1,inputs:[],name:"migrateToNewStakingContract",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Staking contract needs to be set before by the owner. Currently not implemented, just needed for the interface. In case it's needed at some point in the future, the implementation needs to be changed first.",notice:"Allow a staker to migrate his positions to the new staking contract."},"newStakingContract()":{constant:!0,inputs:[],name:"newStakingContract",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"nonces(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"numDelegateStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numDelegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numTotalStakingCheckpoints(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"numTotalStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numUserStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numUserStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"receiveApproval(address,uint256,address,bytes)":{constant:!1,inputs:[{internalType:"address",name:"_sender",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_token",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"receiveApproval",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_data:"The data will be used for low level call."},notice:"Receives approval from SOV token."},"removeAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_admin",type:"address"}],name:"removeAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_admin:"The addresses of the account to revoke permissions."},notice:"Remove account from ACL."},"removeContractCodeHash(address)":{constant:!1,inputs:[{internalType:"address",name:"vesting",type:"address"}],name:"removeContractCodeHash",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"We need it to use _isVestingContract() function instead of isContract()",params:{vesting:"The address of Vesting contract."},notice:"Add vesting contract's code hash to a map of code hashes."},"setFeeSharing(address)":{constant:!1,inputs:[{internalType:"address",name:"_feeSharing",type:"address"}],name:"setFeeSharing",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_feeSharing:"The address of FeeSharingProxy contract."},notice:"Allow the owner to set a fee sharing proxy contract. We need it for unstaking with slashing."},"setNewStakingContract(address)":{constant:!1,inputs:[{internalType:"address",name:"_newStakingContract",type:"address"}],name:"setNewStakingContract",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Doesn't have any influence as long as migrateToNewStakingContract is not implemented.",params:{_newStakingContract:"The address of the new staking contract."},notice:"Allow the owner to set a new staking contract. As a consequence it allows the stakers to migrate their positions to the new contract."},"setWeightScaling(uint96)":{constant:!1,inputs:[{internalType:"uint96",name:"_weightScaling",type:"uint96"}],name:"setWeightScaling",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_weightScaling:"The weight scaling."},notice:"Allow the owner to set weight scaling. We need it for unstaking with slashing."},"stake(uint96,uint256,address,address)":{constant:!1,inputs:[{internalType:"uint96",name:"amount",type:"uint96"},{internalType:"uint256",name:"until",type:"uint256"},{internalType:"address",name:"stakeFor",type:"address"},{internalType:"address",name:"delegatee",type:"address"}],name:"stake",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{amount:"The number of tokens to stake.",delegatee:"The address of the delegatee or 0x0 if there is none.",stakeFor:"The address to stake the tokens for or 0x0 if staking for oneself.",until:"Timestamp indicating the date until which to stake."},notice:"Stake the given amount for the given duration of time."},"stakeWithApproval(address,uint96,uint256,address,address)":{constant:!1,inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint96",name:"amount",type:"uint96"},{internalType:"uint256",name:"until",type:"uint256"},{internalType:"address",name:"stakeFor",type:"address"},{internalType:"address",name:"delegatee",type:"address"}],name:"stakeWithApproval",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"This function will be invoked from receiveApprovalSOV.approveAndCall -> this.receiveApproval -> this.stakeWithApproval",params:{amount:"The number of tokens to stake.",delegatee:"The address of the delegatee or 0x0 if there is none.",sender:"The sender of SOV.approveAndCall",stakeFor:"The address to stake the tokens for or 0x0 if staking for oneself.",until:"Timestamp indicating the date until which to stake."},notice:"Stake the given amount for the given duration of time."},"stakesBySchedule(uint256,uint256,uint256,uint256,address,address)":{constant:!1,inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"cliff",type:"uint256"},{internalType:"uint256",name:"duration",type:"uint256"},{internalType:"uint256",name:"intervalLength",type:"uint256"},{internalType:"address",name:"stakeFor",type:"address"},{internalType:"address",name:"delegatee",type:"address"}],name:"stakesBySchedule",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{amount:"The amount of tokens to stake.",cliff:"The time interval to the first withdraw.",delegatee:"The address of the delegatee or 0x0 if there is none.",duration:"The staking duration.",intervalLength:"The length of each staking interval when cliff passed.",stakeFor:"The address to stake the tokens for or 0x0 if staking for oneself."},notice:"Stake tokens according to the vesting schedule."},"timestampToLockDate(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],name:"timestampToLockDate",outputs:[{internalType:"uint256",name:"lockDate",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{timestamp:"The unlocking timestamp."},return:"The actual unlocking date (might be up to 2 weeks shorter than intended).",notice:"Unstaking is possible every 2 weeks only. This means, to calculate the key value for the staking checkpoints, we need to map the intended timestamp to the closest available date."},"totalStakingCheckpoints(uint256,uint32)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"totalStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unlockAllTokens()":{constant:!1,inputs:[],name:"unlockAllTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Last resort.",notice:"Allow the owner to unlock all tokens in case the staking contract is going to be replaced Note: Not reversible on purpose. once unlocked, everything is unlocked. The owner should not be able to just quickly unlock to withdraw his own tokens and lock again."},"userStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"userStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"vestingCodeHashes(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"vestingCodeHashes",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"vestingWhitelist(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"vestingWhitelist",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"weightScaling()":{constant:!0,inputs:[],name:"weightScaling",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"weightedStakeByDate(address,uint256,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"startDate",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"weightedStakeByDate",outputs:[{internalType:"uint96",name:"power",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",params:{blockNumber:"The block number, needed for checkpointing.",date:"The staking date to compute the power for.",startDate:"The date for which we need to know the power of the stake."},notice:"Compute the voting power for a specific date. Power = stake * weight TODO: WeightedStaking::weightedStakeByDate should probably better be internal instead of a public function."},"withdraw(uint96,uint256,address)":{constant:!1,inputs:[{internalType:"uint96",name:"amount",type:"uint96"},{internalType:"uint256",name:"until",type:"uint256"},{internalType:"address",name:"receiver",type:"address"}],name:"withdraw",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{amount:"The number of tokens to withdraw.",receiver:"The receiver of the tokens. If not specified, send to the msg.sender",until:"The date until which the tokens were staked."},notice:"Withdraw the given amount of tokens if they are unlocked."}}},"contracts/Sovryn/Governance/Staking/StakingProxy.sol:StakingProxy":{source:"contracts/Sovryn/Governance/Staking/StakingProxy.sol",name:"StakingProxy",title:"Staking Proxy contract.",details:"Staking contract should be upgradable, use UpgradableProxy. StakingStorage is deployed with the upgradable functionality by using this contract instead, that inherits from UpgradableProxy the possibility of being enhanced and re-deployed.",constructor:{inputs:[{internalType:"address",name:"SOV",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},fallback:{payable:!0,stateMutability:"payable",type:"fallback"},events:{"ImplementationChanged(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldImplementation",type:"address"},{indexed:!0,internalType:"address",name:"_newImplementation",type:"address"}],name:"ImplementationChanged",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"_newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"DELEGATION_TYPEHASH()":{constant:!0,inputs:[],name:"DELEGATION_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"DOMAIN_TYPEHASH()":{constant:!0,inputs:[],name:"DOMAIN_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"MAX_DURATION()":{constant:!0,inputs:[],name:"MAX_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"MAX_VOTING_WEIGHT()":{constant:!0,inputs:[],name:"MAX_VOTING_WEIGHT",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"SOVToken()":{constant:!0,inputs:[],name:"SOVToken",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"WEIGHT_FACTOR()":{constant:!0,inputs:[],name:"WEIGHT_FACTOR",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"admins(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"admins",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"allUnlocked()":{constant:!0,inputs:[],name:"allUnlocked",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"delegateStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"delegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"delegates(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"feeSharing()":{constant:!0,inputs:[],name:"feeSharing",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"getImplementation()":{constant:!0,inputs:[],name:"getImplementation",outputs:[{internalType:"address",name:"_implementation",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the implementation.",notice:"Return address of the implementation."},"getProxyOwner()":{constant:!0,inputs:[],name:"getProxyOwner",outputs:[{internalType:"address",name:"_owner",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the owner.",notice:"Return address of the owner."},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"kickoffTS()":{constant:!0,inputs:[],name:"kickoffTS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"newStakingContract()":{constant:!0,inputs:[],name:"newStakingContract",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"nonces(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"numDelegateStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numDelegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numTotalStakingCheckpoints(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"numTotalStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numUserStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numUserStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"setImplementation(address)":{constant:!1,inputs:[{internalType:"address",name:"_implementation",type:"address"}],name:"setImplementation",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Wrapper for _setImplementation that exposes the function as public for owner to be able to set a new version of the contract as current pointing implementation.",params:{_implementation:"Address of the implementation."},notice:"Set address of the implementation."},"setProxyOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"setProxyOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_owner:"Address of the owner."},notice:"Set address of the owner."},"totalStakingCheckpoints(uint256,uint32)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"totalStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"userStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"userStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"vestingCodeHashes(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"vestingCodeHashes",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"vestingWhitelist(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"vestingWhitelist",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"weightScaling()":{constant:!0,inputs:[],name:"weightScaling",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"}}},"contracts/Sovryn/Governance/Staking/StakingStorage.sol:StakingStorage":{source:"contracts/Sovryn/Governance/Staking/StakingStorage.sol",name:"StakingStorage",title:"Staking Storage contact.",notice:"Just the storage part of stacking contract, no functions, only constant, variables and required structures (mappings). Used by StackingProxy and Checkpoints contracts. * What is SOV staking? The purpose of the SOV token is to provide a pseudonymous, censorship-resistant mechanism for governing the parameters of the Sovryn protocol, while aligning the incentives of protocol governors with the long-term success of the protocol. Any SOV token holder can choose to stake (lock up) their tokens for a fixed period of time in return for voting rights in the Bitocracy. Stakers are further incentivised through fee and slashing rewards.",events:{"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"DELEGATION_TYPEHASH()":{constant:!0,inputs:[],name:"DELEGATION_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"DOMAIN_TYPEHASH()":{constant:!0,inputs:[],name:"DOMAIN_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"MAX_DURATION()":{constant:!0,inputs:[],name:"MAX_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"MAX_VOTING_WEIGHT()":{constant:!0,inputs:[],name:"MAX_VOTING_WEIGHT",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"SOVToken()":{constant:!0,inputs:[],name:"SOVToken",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"WEIGHT_FACTOR()":{constant:!0,inputs:[],name:"WEIGHT_FACTOR",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"admins(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"admins",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"allUnlocked()":{constant:!0,inputs:[],name:"allUnlocked",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"delegateStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"delegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"delegates(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"feeSharing()":{constant:!0,inputs:[],name:"feeSharing",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"kickoffTS()":{constant:!0,inputs:[],name:"kickoffTS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"newStakingContract()":{constant:!0,inputs:[],name:"newStakingContract",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"nonces(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"numDelegateStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numDelegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numTotalStakingCheckpoints(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"numTotalStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numUserStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numUserStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"totalStakingCheckpoints(uint256,uint32)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"totalStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"userStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"userStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"vestingCodeHashes(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"vestingCodeHashes",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"vestingWhitelist(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"vestingWhitelist",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"weightScaling()":{constant:!0,inputs:[],name:"weightScaling",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"}}},"contracts/Sovryn/Governance/Staking/WeightedStaking.sol:WeightedStaking":{source:"contracts/Sovryn/Governance/Staking/WeightedStaking.sol",name:"WeightedStaking",title:"Weighted Staking contract.",notice:"Computation of power and votes used by FeeSharingProxy and GovernorAlpha and Staking contracts w/ mainly 3 public functions: + getPriorTotalVotingPower => Total voting power. + getPriorVotes => Delegatee voting power. + getPriorWeightedStake => User Weighted Stake. Staking contract inherits WeightedStaking. FeeSharingProxy and GovernorAlpha invoke Staking instance functions.",events:{"AdminAdded(address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminAdded",type:"event"},"AdminRemoved(address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminRemoved",type:"event"},"ContractCodeHashAdded(bytes32)":{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"hash",type:"bytes32"}],name:"ContractCodeHashAdded",type:"event"},"ContractCodeHashRemoved(bytes32)":{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"hash",type:"bytes32"}],name:"ContractCodeHashRemoved",type:"event"},"DelegateChanged(address,uint256,address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegator",type:"address"},{indexed:!1,internalType:"uint256",name:"lockedUntil",type:"uint256"},{indexed:!0,internalType:"address",name:"fromDelegate",type:"address"},{indexed:!0,internalType:"address",name:"toDelegate",type:"address"}],name:"DelegateChanged",type:"event"},"DelegateStakeChanged(address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegate",type:"address"},{indexed:!1,internalType:"uint256",name:"lockedUntil",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousBalance",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newBalance",type:"uint256"}],name:"DelegateStakeChanged",type:"event"},"ExtendedStakingDuration(address,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"staker",type:"address"},{indexed:!1,internalType:"uint256",name:"previousDate",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newDate",type:"uint256"}],name:"ExtendedStakingDuration",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},"TokensStaked(address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"staker",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"lockedUntil",type:"uint256"},{indexed:!1,internalType:"uint256",name:"totalStaked",type:"uint256"}],name:"TokensStaked",type:"event"},"TokensUnlocked(uint256)":{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensUnlocked",type:"event"},"TokensWithdrawn(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"staker",type:"address"},{indexed:!1,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensWithdrawn",type:"event"},"VestingTokensWithdrawn(address,address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"vesting",type:"address"},{indexed:!1,internalType:"address",name:"receiver",type:"address"}],name:"VestingTokensWithdrawn",type:"event"}},methods:{"DELEGATION_TYPEHASH()":{constant:!0,inputs:[],name:"DELEGATION_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"DOMAIN_TYPEHASH()":{constant:!0,inputs:[],name:"DOMAIN_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},"MAX_DURATION()":{constant:!0,inputs:[],name:"MAX_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"MAX_VOTING_WEIGHT()":{constant:!0,inputs:[],name:"MAX_VOTING_WEIGHT",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"SOVToken()":{constant:!0,inputs:[],name:"SOVToken",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"WEIGHT_FACTOR()":{constant:!0,inputs:[],name:"WEIGHT_FACTOR",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"addAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_admin",type:"address"}],name:"addAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_admin:"The addresses of the account to grant permissions."},notice:"Add account to ACL."},"addContractCodeHash(address)":{constant:!1,inputs:[{internalType:"address",name:"vesting",type:"address"}],name:"addContractCodeHash",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"We need it to use _isVestingContract() function instead of isContract()",params:{vesting:"The address of Vesting contract."},notice:"Add vesting contract's code hash to a map of code hashes."},"admins(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"admins",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"allUnlocked()":{constant:!0,inputs:[],name:"allUnlocked",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"computeWeightByDate(uint256,uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"startDate",type:"uint256"}],name:"computeWeightByDate",outputs:[{internalType:"uint96",name:"weight",type:"uint96"}],payable:!1,stateMutability:"pure",type:"function",params:{date:"The unlocking date.",startDate:"We compute the weight for the tokens staked until 'date' on 'startDate'."},notice:"Compute the weight for a specific date."},"delegateStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"delegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"delegates(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"feeSharing()":{constant:!0,inputs:[],name:"feeSharing",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"getPriorStakeByDateForDelegatee(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getPriorStakeByDateForDelegatee",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"Block number must be a finalized block or else this function will revert to prevent misinformation. TODO: WeightedStaking::getPriorStakeByDateForDelegatee should probably better be internal instead of a public function.",params:{account:"The address of the account to check.",blockNumber:"The block number to get the vote balance at."},return:"The number of votes the account had as of the given block.",notice:"Determine the prior number of stake for an account as of a block number."},"getPriorTotalStakesForDate(uint256,uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getPriorTotalStakesForDate",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"Block number must be a finalized block or else this function will revert to prevent misinformation. TODO: WeightedStaking::getPriorTotalStakesForDate should probably better be internal instead of a public function.",params:{blockNumber:"The block number to get the vote balance at.",date:"The date to check the stakes for."},return:"The number of votes the account had as of the given block.",notice:"Determine the prior number of stake for an unlocking date as of a block number."},"getPriorTotalVotingPower(uint32,uint256)":{constant:!0,inputs:[{internalType:"uint32",name:"blockNumber",type:"uint32"},{internalType:"uint256",name:"time",type:"uint256"}],name:"getPriorTotalVotingPower",outputs:[{internalType:"uint96",name:"totalVotingPower",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",params:{time:"The timestamp for which to calculate the total voting power."},return:"The total voting power at the given time.",notice:"Compute the total voting power at a given time."},"getPriorUserStakeByDate(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getPriorUserStakeByDate",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"Block number must be a finalized block or else this function will revert to prevent misinformation.",params:{account:"The address of the account to check.",blockNumber:"The block number to get the vote balance at.",date:"The lock date."},return:"The number of votes the account had as of the given block.",notice:"Determine the prior number of stake for an account until a certain lock date as of a block number."},"getPriorVotes(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"date",type:"uint256"}],name:"getPriorVotes",outputs:[{internalType:"uint96",name:"votes",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:"Block number must be a finalized block or else this function will revert to prevent misinformation. Used for Voting, not for fee sharing.",params:{account:"The address of the account to check.",blockNumber:"The block number to get the vote balance at."},return:"The number of votes the delegatee had as of the given block.",notice:"Determine the prior number of votes for a delegatee as of a block number. Iterate through checkpoints adding up voting power."},"getPriorWeightedStake(address,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"uint256",name:"date",type:"uint256"}],name:"getPriorWeightedStake",outputs:[{internalType:"uint96",name:"votes",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",details:'Block number must be a finalized block or else this function will revert to prevent misinformation. Used for fee sharing, not voting. TODO: WeightedStaking::getPriorWeightedStake is using the variable name "votes" to add up token stake, and that could be misleading.',params:{account:"The address of the account to check.",blockNumber:"The block number to get the vote balance at."},return:"The weighted stake the account had as of the given block.",notice:"Determine the prior weighted stake for an account as of a block number. Iterate through checkpoints adding up voting power."},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"kickoffTS()":{constant:!0,inputs:[],name:"kickoffTS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"newStakingContract()":{constant:!0,inputs:[],name:"newStakingContract",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"nonces(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"numDelegateStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numDelegateStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numTotalStakingCheckpoints(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"numTotalStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"numUserStakingCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"numUserStakingCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"removeAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_admin",type:"address"}],name:"removeAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_admin:"The addresses of the account to revoke permissions."},notice:"Remove account from ACL."},"removeContractCodeHash(address)":{constant:!1,inputs:[{internalType:"address",name:"vesting",type:"address"}],name:"removeContractCodeHash",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"We need it to use _isVestingContract() function instead of isContract()",params:{vesting:"The address of Vesting contract."},notice:"Add vesting contract's code hash to a map of code hashes."},"timestampToLockDate(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],name:"timestampToLockDate",outputs:[{internalType:"uint256",name:"lockDate",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{timestamp:"The unlocking timestamp."},return:"The actual unlocking date (might be up to 2 weeks shorter than intended).",notice:"Unstaking is possible every 2 weeks only. This means, to calculate the key value for the staking checkpoints, we need to map the intended timestamp to the closest available date."},"totalStakingCheckpoints(uint256,uint32)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"totalStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"userStakingCheckpoints(address,uint256,uint32)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint32",name:"",type:"uint32"}],name:"userStakingCheckpoints",outputs:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint96",name:"stake",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"vestingCodeHashes(bytes32)":{constant:!0,inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"vestingCodeHashes",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"vestingWhitelist(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"vestingWhitelist",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"weightScaling()":{constant:!0,inputs:[],name:"weightScaling",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"weightedStakeByDate(address,uint256,uint256,uint256)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"date",type:"uint256"},{internalType:"uint256",name:"startDate",type:"uint256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"weightedStakeByDate",outputs:[{internalType:"uint96",name:"power",type:"uint96"}],payable:!1,stateMutability:"view",type:"function",params:{blockNumber:"The block number, needed for checkpointing.",date:"The staking date to compute the power for.",startDate:"The date for which we need to know the power of the stake."},notice:"Compute the voting power for a specific date. Power = stake * weight TODO: WeightedStaking::weightedStakeByDate should probably better be internal instead of a public function."}}},"contracts/Sovryn/Governance/Vesting/TeamVesting.sol:TeamVesting":{source:"contracts/Sovryn/Governance/Vesting/TeamVesting.sol",name:"TeamVesting",title:"Team Vesting Contract.",details:"Vesting contracts shouldn't be upgradable, use Proxy instead of UpgradableProxy.",notice:"A regular vesting contract, but the owner (governance) is able to withdraw earlier without a slashing.",constructor:{inputs:[{internalType:"address",name:"_logic",type:"address"},{internalType:"address",name:"_SOV",type:"address"},{internalType:"address",name:"_stakingAddress",type:"address"},{internalType:"address",name:"_tokenOwner",type:"address"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"address",name:"_feeSharingProxy",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},fallback:{payable:!0,stateMutability:"payable",type:"fallback"},events:{"ImplementationChanged(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldImplementation",type:"address"},{indexed:!0,internalType:"address",name:"_newImplementation",type:"address"}],name:"ImplementationChanged",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"_newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"SOV()":{constant:!0,inputs:[],name:"SOV",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"cliff()":{constant:!0,inputs:[],name:"cliff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"duration()":{constant:!0,inputs:[],name:"duration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"endDate()":{constant:!0,inputs:[],name:"endDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"feeSharingProxy()":{constant:!0,inputs:[],name:"feeSharingProxy",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"getImplementation()":{constant:!0,inputs:[],name:"getImplementation",outputs:[{internalType:"address",name:"_implementation",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the implementation.",notice:"Return address of the implementation."},"getProxyOwner()":{constant:!0,inputs:[],name:"getProxyOwner",outputs:[{internalType:"address",name:"_owner",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the owner.",notice:"Return address of the owner."},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"staking()":{constant:!0,inputs:[],name:"staking",outputs:[{internalType:"contract Staking",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"startDate()":{constant:!0,inputs:[],name:"startDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"tokenOwner()":{constant:!0,inputs:[],name:"tokenOwner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"contracts/Sovryn/Governance/Vesting/Vesting.sol:Vesting":{source:"contracts/Sovryn/Governance/Vesting/Vesting.sol",name:"Vesting",title:"Vesting Contract.",details:"TODO add tests for governanceWithdrawTokens.",notice:"Team tokens and investor tokens are vested. Therefore, a smart contract needs to be developed to enforce the vesting schedule.",constructor:{inputs:[{internalType:"address",name:"_logic",type:"address"},{internalType:"address",name:"_SOV",type:"address"},{internalType:"address",name:"_stakingAddress",type:"address"},{internalType:"address",name:"_tokenOwner",type:"address"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"address",name:"_feeSharingProxy",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},fallback:{payable:!0,stateMutability:"payable",type:"fallback"},events:{"ImplementationChanged(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldImplementation",type:"address"},{indexed:!0,internalType:"address",name:"_newImplementation",type:"address"}],name:"ImplementationChanged",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"_newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"SOV()":{constant:!0,inputs:[],name:"SOV",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"cliff()":{constant:!0,inputs:[],name:"cliff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"duration()":{constant:!0,inputs:[],name:"duration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"endDate()":{constant:!0,inputs:[],name:"endDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"feeSharingProxy()":{constant:!0,inputs:[],name:"feeSharingProxy",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"getImplementation()":{constant:!0,inputs:[],name:"getImplementation",outputs:[{internalType:"address",name:"_implementation",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the implementation.",notice:"Return address of the implementation."},"getProxyOwner()":{constant:!0,inputs:[],name:"getProxyOwner",outputs:[{internalType:"address",name:"_owner",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the owner.",notice:"Return address of the owner."},"governanceWithdrawTokens(address)":{constant:!1,inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"governanceWithdrawTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"We need to add this implementation to prevent proxy call VestingLogic.governanceWithdrawTokens",params:{receiver:"The receiver of the token withdrawal."}},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"staking()":{constant:!0,inputs:[],name:"staking",outputs:[{internalType:"contract Staking",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"startDate()":{constant:!0,inputs:[],name:"startDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"tokenOwner()":{constant:!0,inputs:[],name:"tokenOwner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"contracts/Sovryn/Governance/Vesting/VestingFactory.sol:VestingFactory":{source:"contracts/Sovryn/Governance/Vesting/VestingFactory.sol",name:"VestingFactory",title:"Vesting Factory: Contract to deploy vesting contracts of two types: vesting (TokenHolder) and team vesting (Multisig).",notice:"Factory pattern allows to create multiple instances of the same contract and keep track of them easier.",constructor:{inputs:[{internalType:"address",name:"_vestingLogic",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"deployTeamVesting(address,address,address,uint256,uint256,address,address)":{constant:!1,inputs:[{internalType:"address",name:"_SOV",type:"address"},{internalType:"address",name:"_staking",type:"address"},{internalType:"address",name:"_tokenOwner",type:"address"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"address",name:"_feeSharing",type:"address"},{internalType:"address",name:"_vestingOwner",type:"address"}],name:"deployTeamVesting",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"function",params:{_SOV:"The address of SOV token.",_cliff:"The time interval to the first withdraw in seconds.",_duration:"The total duration in seconds.",_feeSharing:"The address of fee sharing contract.",_staking:"The address of staking contract.",_tokenOwner:"The owner of the tokens.",_vestingOwner:"The address of an owner of vesting contract."},return:"The vesting contract address.",notice:"Deploys Team Vesting contract."},"deployVesting(address,address,address,uint256,uint256,address,address)":{constant:!1,inputs:[{internalType:"address",name:"_SOV",type:"address"},{internalType:"address",name:"_staking",type:"address"},{internalType:"address",name:"_tokenOwner",type:"address"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"},{internalType:"address",name:"_feeSharing",type:"address"},{internalType:"address",name:"_vestingOwner",type:"address"}],name:"deployVesting",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"function",params:{_SOV:"the address of SOV token.",_cliff:"The time interval to the first withdraw in seconds.",_duration:"The total duration in seconds.",_feeSharing:"The address of fee sharing contract.",_staking:"The address of staking contract.",_tokenOwner:"The owner of the tokens.",_vestingOwner:"The address of an owner of vesting contract."},return:"The vesting contract address.",notice:"Deploys Vesting contract."},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"vestingLogic()":{constant:!0,inputs:[],name:"vestingLogic",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"}}},"contracts/Sovryn/Governance/Vesting/VestingLogic.sol:VestingLogic":{source:"contracts/Sovryn/Governance/Vesting/VestingLogic.sol",name:"VestingLogic",title:"Vesting Logic contract.",details:"Deployed by a VestingFactory contract.",notice:"Staking, delegating and withdrawal functionality.",events:{"DividendsCollected(address,address,address,uint32)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"caller",type:"address"},{indexed:!1,internalType:"address",name:"loanPoolToken",type:"address"},{indexed:!1,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint32",name:"maxCheckpoints",type:"uint32"}],name:"DividendsCollected",type:"event"},"MigratedToNewStakingContract(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"caller",type:"address"},{indexed:!1,internalType:"address",name:"newStakingContract",type:"address"}],name:"MigratedToNewStakingContract",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},"TokensStaked(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"caller",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensStaked",type:"event"},"TokensWithdrawn(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"caller",type:"address"},{indexed:!1,internalType:"address",name:"receiver",type:"address"}],name:"TokensWithdrawn",type:"event"},"VotesDelegated(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"caller",type:"address"},{indexed:!1,internalType:"address",name:"delegatee",type:"address"}],name:"VotesDelegated",type:"event"}},methods:{"SOV()":{constant:!0,inputs:[],name:"SOV",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"cliff()":{constant:!0,inputs:[],name:"cliff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"collectDividends(address,uint32,address)":{constant:!1,inputs:[{internalType:"address",name:"_loanPoolToken",type:"address"},{internalType:"uint32",name:"_maxCheckpoints",type:"uint32"},{internalType:"address",name:"_receiver",type:"address"}],name:"collectDividends",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_loanPoolToken:"The loan pool token address.",_maxCheckpoints:"Maximum number of checkpoints to be processed.",_receiver:"The receiver of tokens or msg.sender"},notice:"Collect dividends from fee sharing proxy."},"delegate(address)":{constant:!1,inputs:[{internalType:"address",name:"_delegatee",type:"address"}],name:"delegate",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_delegatee:"The address to delegate votes to."},notice:"Delegate votes from `msg.sender` which are locked until lockDate to `delegatee`."},"duration()":{constant:!0,inputs:[],name:"duration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"endDate()":{constant:!0,inputs:[],name:"endDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"feeSharingProxy()":{constant:!0,inputs:[],name:"feeSharingProxy",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"governanceWithdrawTokens(address)":{constant:!1,inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"governanceWithdrawTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Can be called only by owner.",params:{receiver:"The receiving address."},notice:"Withdraws all tokens from the staking contract and forwards them to an address specified by the token owner."},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"migrateToNewStakingContract()":{constant:!1,inputs:[],name:"migrateToNewStakingContract",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",notice:"Allows the owners to migrate the positions to a new staking contract."},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"receiveApproval(address,uint256,address,bytes)":{constant:!1,inputs:[{internalType:"address",name:"_sender",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_token",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"receiveApproval",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_data:"The data will be used for low level call."},notice:"Receives approval from SOV token."},"stakeTokens(uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],name:"stakeTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"The amount of tokens to stake."},notice:"Stakes tokens according to the vesting schedule."},"stakeTokensWithApproval(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_sender",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"stakeTokensWithApproval",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"This function will be invoked from receiveApproval.SOV.approveAndCall -> this.receiveApproval -> this.stakeTokensWithApproval",params:{_amount:"The amount of tokens to stake.",_sender:"The sender of SOV.approveAndCall"},notice:"Stakes tokens according to the vesting schedule."},"staking()":{constant:!0,inputs:[],name:"staking",outputs:[{internalType:"contract Staking",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"startDate()":{constant:!0,inputs:[],name:"startDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"tokenOwner()":{constant:!0,inputs:[],name:"tokenOwner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"withdrawTokens(address)":{constant:!1,inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"withdrawTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{receiver:"The receiving address."},notice:"Withdraws unlocked tokens from the staking contract and forwards them to an address specified by the token owner."}}},"contracts/Sovryn/Governance/Vesting/VestingRegistry3.sol:VestingRegistry3":{source:"contracts/Sovryn/Governance/Vesting/VestingRegistry3.sol",name:"VestingRegistry3",constructor:{inputs:[{internalType:"address",name:"_vestingFactory",type:"address"},{internalType:"address",name:"_SOV",type:"address"},{internalType:"address",name:"_staking",type:"address"},{internalType:"address",name:"_feeSharingProxy",type:"address"},{internalType:"address",name:"_vestingOwner",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"AdminAdded(address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminAdded",type:"event"},"AdminRemoved(address)":{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminRemoved",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},"SOVTransferred(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"SOVTransferred",type:"event"},"TeamVestingCreated(address,address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"tokenOwner",type:"address"},{indexed:!1,internalType:"address",name:"vesting",type:"address"},{indexed:!1,internalType:"uint256",name:"cliff",type:"uint256"},{indexed:!1,internalType:"uint256",name:"duration",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TeamVestingCreated",type:"event"},"TokensStaked(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"vesting",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensStaked",type:"event"},"VestingCreated(address,address,uint256,uint256,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"tokenOwner",type:"address"},{indexed:!1,internalType:"address",name:"vesting",type:"address"},{indexed:!1,internalType:"uint256",name:"cliff",type:"uint256"},{indexed:!1,internalType:"uint256",name:"duration",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"VestingCreated",type:"event"}},methods:{"SOV()":{constant:!0,inputs:[],name:"SOV",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"addAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_admin",type:"address"}],name:"addAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},"admins(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"admins",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"createTeamVesting(address,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_tokenOwner",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"}],name:"createTeamVesting",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"the amount to be staked",_cliff:"the cliff in seconds",_duration:"the total duration in seconds",_tokenOwner:"the owner of the tokens"},notice:"creates Team Vesting contract"},"createVesting(address,uint256,uint256,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_tokenOwner",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_cliff",type:"uint256"},{internalType:"uint256",name:"_duration",type:"uint256"}],name:"createVesting",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"the amount to be staked",_cliff:"the cliff in seconds",_duration:"the total duration in seconds",_tokenOwner:"the owner of the tokens"},notice:"creates Vesting contract"},"feeSharingProxy()":{constant:!0,inputs:[],name:"feeSharingProxy",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"getTeamVesting(address)":{constant:!0,inputs:[{internalType:"address",name:"_tokenOwner",type:"address"}],name:"getTeamVesting",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",params:{_tokenOwner:"the owner of the tokens"},notice:"returns team vesting contract address for the given token owner"},"getVesting(address)":{constant:!0,inputs:[{internalType:"address",name:"_tokenOwner",type:"address"}],name:"getVesting",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",params:{_tokenOwner:"the owner of the tokens"},notice:"returns vesting contract address for the given token owner"},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"removeAdmin(address)":{constant:!1,inputs:[{internalType:"address",name:"_admin",type:"address"}],name:"removeAdmin",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},"setVestingFactory(address)":{constant:!1,inputs:[{internalType:"address",name:"_vestingFactory",type:"address"}],name:"setVestingFactory",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_vestingFactory:"the address of vesting factory contract"},notice:"sets vesting factory address"},"stakeTokens(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_vesting",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"stakeTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"the amount of tokens to stake",_vesting:"the address of Vesting contract"},notice:"stakes tokens according to the vesting schedule"},"staking()":{constant:!0,inputs:[],name:"staking",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"transferSOV(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_receiver",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"transferSOV",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"the amount to be transferred",_receiver:"the address of the SOV receiver"},notice:"transfers SOV tokens to given address"},"vestingContracts(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"vestingContracts",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"vestingFactory()":{constant:!0,inputs:[],name:"vestingFactory",outputs:[{internalType:"contract IVestingFactory",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"vestingOwner()":{constant:!0,inputs:[],name:"vestingOwner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"}}},"contracts/Sovryn/Governance/Vesting/VestingStorage.sol:VestingStorage":{source:"contracts/Sovryn/Governance/Vesting/VestingStorage.sol",name:"VestingStorage",title:"Vesting Storage Contract.",details:"Use Ownable as a parent to align storage structure for Logic and Proxy contracts.",notice:"This contract is just the storage required for vesting. It is parent of VestingLogic and TeamVesting.",events:{"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"SOV()":{constant:!0,inputs:[],name:"SOV",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"cliff()":{constant:!0,inputs:[],name:"cliff",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"duration()":{constant:!0,inputs:[],name:"duration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"endDate()":{constant:!0,inputs:[],name:"endDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"feeSharingProxy()":{constant:!0,inputs:[],name:"feeSharingProxy",outputs:[{internalType:"contract IFeeSharingProxy",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"staking()":{constant:!0,inputs:[],name:"staking",outputs:[{internalType:"contract Staking",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"startDate()":{constant:!0,inputs:[],name:"startDate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"tokenOwner()":{constant:!0,inputs:[],name:"tokenOwner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"contracts/Sovryn/Helper/ErrorDecoder.sol:ErrorDecoder":{source:"contracts/Sovryn/Helper/ErrorDecoder.sol",name:"ErrorDecoder",title:"Base contract to properly handle returned data on failed calls",details:'On EVM if the return data length of a call is less than 68, then the transaction fails silently without a revert message! * As described in the Solidity documentation https://solidity.readthedocs.io/en/v0.5.17/control-structures.html#revert the revert reason is an ABI-encoded string consisting of: 0x08c379a0 // Function selector (method id) for "Error(string)" signature 0x0000000000000000000000000000000000000000000000000000000000000020 // Data offset 0x000000000000000000000000000000000000000000000000000000000000001a // String length 0x4e6f7420656e6f7567682045746865722070726f76696465642e000000000000 // String data * Another example, debug data from test: 0x08c379a0 0000000000000000000000000000000000000000000000000000000000000020 0000000000000000000000000000000000000000000000000000000000000034 54696d656c6f636b3a3a73657444656c61793a2044656c6179206d7573742065 7863656564206d696e696d756d2064656c61792e000000000000000000000000 * Parsed into: Data offset: 20 Length: 34 Error message: 54696d656c6f636b3a3a73657444656c61793a2044656c6179206d7573742065 7863656564206d696e696d756d2064656c61792e000000000000000000000000'},"contracts/Sovryn/Helper/SafeMath96.sol:SafeMath96":{source:"contracts/Sovryn/Helper/SafeMath96.sol",name:"SafeMath96",title:"SafeMath96 contract.",details:"SafeMath96 uses uint96, unsigned integers of 96 bits length, so every integer from 0 to 2^96-1 can be operated. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. SafeMath restores this intuition by reverting the transaction when an operation overflows. * Using this contract instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.",notice:"Improved Solidity's arithmetic operations with added overflow checks."},"contracts/Sovryn/Mockup/FeeSharingProxyMockup.sol:FeeSharingProxyMockup":{source:"contracts/Sovryn/Mockup/FeeSharingProxyMockup.sol",name:"FeeSharingProxyMockup",constructor:{inputs:[{internalType:"contract IProtocol",name:"_protocol",type:"address"},{internalType:"contract IStaking",name:"_staking",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"CheckpointAdded(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CheckpointAdded",type:"event"},"FeeWithdrawn(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"FeeWithdrawn",type:"event"},"TokensTransferred(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TokensTransferred",type:"event"},"UserFeeWithdrawn(address,address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"UserFeeWithdrawn",type:"event"}},methods:{"getAccumulatedFees(address,address)":{constant:!0,inputs:[{internalType:"address",name:"_user",type:"address"},{internalType:"address",name:"_loanPoolToken",type:"address"}],name:"getAccumulatedFees",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{_loanPoolToken:"Address of the pool token.",_user:"The address of the user or contract."},return:"The accumulated fee for the message sender.",notice:"Get the accumulated loan pool fee of the message sender."},"lastFeeWithdrawalTime(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"lastFeeWithdrawalTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"numTokenCheckpoints(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"numTokenCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"processedCheckpoints(address,address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"processedCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],payable:!1,stateMutability:"view",type:"function"},"protocol()":{constant:!0,inputs:[],name:"protocol",outputs:[{internalType:"contract IProtocol",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"staking()":{constant:!0,inputs:[],name:"staking",outputs:[{internalType:"contract IStaking",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"testData()":{constant:!0,inputs:[],name:"testData",outputs:[{internalType:"address",name:"loanPoolToken",type:"address"},{internalType:"uint32",name:"maxCheckpoints",type:"uint32"},{internalType:"address",name:"receiver",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"tokenCheckpoints(address,uint256)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"tokenCheckpoints",outputs:[{internalType:"uint32",name:"blockNumber",type:"uint32"},{internalType:"uint32",name:"timestamp",type:"uint32"},{internalType:"uint96",name:"totalWeightedStake",type:"uint96"},{internalType:"uint96",name:"numTokens",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"transferTokens(address,uint96)":{constant:!1,inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"uint96",name:"_amount",type:"uint96"}],name:"transferTokens",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"We just update amount of tokens here and write checkpoint in a separate methods in order to prevent adding checkpoints too often.",params:{_amount:"Amount to be transferred.",_token:"Address of the token."},notice:"Transfer tokens to this contract."},"unprocessedAmount(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"unprocessedAmount",outputs:[{internalType:"uint96",name:"",type:"uint96"}],payable:!1,stateMutability:"view",type:"function"},"withdraw(address,uint32,address)":{constant:!1,inputs:[{internalType:"address",name:"_loanPoolToken",type:"address"},{internalType:"uint32",name:"_maxCheckpoints",type:"uint32"},{internalType:"address",name:"_receiver",type:"address"}],name:"withdraw",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},"withdrawFees(address)":{constant:!1,inputs:[{internalType:"address",name:"_token",type:"address"}],name:"withdrawFees",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_token:"Address of the token"},notice:"Withdraw fees for the given token: lendingFee + tradingFee + borrowingFee"}}},"contracts/Sovryn/Multisig/MultiSigWallet.sol:MultiSigWallet":{source:"contracts/Sovryn/Multisig/MultiSigWallet.sol",name:"MultiSigWallet",title:"Multisignature wallet - Allows multiple parties to agree on transactions before execution.",author:"Stefan George - ",constructor:{inputs:[{internalType:"address[]",name:"_owners",type:"address[]"},{internalType:"uint256",name:"_required",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},fallback:{payable:!0,stateMutability:"payable",type:"fallback"},events:{"Confirmation(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"uint256",name:"transactionId",type:"uint256"}],name:"Confirmation",type:"event"},"Deposit(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Deposit",type:"event"},"Execution(uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"transactionId",type:"uint256"}],name:"Execution",type:"event"},"ExecutionFailure(uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"transactionId",type:"uint256"}],name:"ExecutionFailure",type:"event"},"OwnerAddition(address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"}],name:"OwnerAddition",type:"event"},"OwnerRemoval(address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"}],name:"OwnerRemoval",type:"event"},"RequirementChange(uint256)":{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"required",type:"uint256"}],name:"RequirementChange",type:"event"},"Revocation(address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"uint256",name:"transactionId",type:"uint256"}],name:"Revocation",type:"event"},"Submission(uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"transactionId",type:"uint256"}],name:"Submission",type:"event"}},methods:{"MAX_OWNER_COUNT()":{constant:!0,inputs:[],name:"MAX_OWNER_COUNT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"addOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"owner",type:"address"}],name:"addOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{owner:"Address of new owner."},notice:"Allows to add a new owner. Transaction has to be sent by wallet."},"changeRequirement(uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"_required",type:"uint256"}],name:"changeRequirement",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_required:"Number of required confirmations."},notice:"Allows to change the number of required confirmations. Transaction has to be sent by wallet."},"confirmTransaction(uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"transactionId",type:"uint256"}],name:"confirmTransaction",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{transactionId:"Transaction ID."},notice:"Allows an owner to confirm a transaction."},"confirmations(uint256,address)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],name:"confirmations",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"executeTransaction(uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"transactionId",type:"uint256"}],name:"executeTransaction",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{transactionId:"Transaction ID."},notice:"Allows anyone to execute a confirmed transaction."},"getConfirmationCount(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"transactionId",type:"uint256"}],name:"getConfirmationCount",outputs:[{internalType:"uint256",name:"count",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{transactionId:"Transaction ID."},return:"Number of confirmations.",notice:"Get the number of confirmations of a transaction."},"getConfirmations(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"transactionId",type:"uint256"}],name:"getConfirmations",outputs:[{internalType:"address[]",name:"_confirmations",type:"address[]"}],payable:!1,stateMutability:"view",type:"function",params:{transactionId:"Transaction ID."},return:"Returns array of owner addresses.",notice:"Get the array with owner addresses, which confirmed transaction."},"getOwners()":{constant:!0,inputs:[],name:"getOwners",outputs:[{internalType:"address[]",name:"",type:"address[]"}],payable:!1,stateMutability:"view",type:"function",return:"List of owner addresses.",notice:"Get the list of owners."},"getTransactionCount(bool,bool)":{constant:!0,inputs:[{internalType:"bool",name:"pending",type:"bool"},{internalType:"bool",name:"executed",type:"bool"}],name:"getTransactionCount",outputs:[{internalType:"uint256",name:"count",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",params:{executed:"Include executed transactions.",pending:"Include pending transactions."},return:"Total number of transactions after filters are applied.",notice:"Get the total number of transactions after filers are applied."},"getTransactionIds(uint256,uint256,bool,bool)":{constant:!0,inputs:[{internalType:"uint256",name:"from",type:"uint256"},{internalType:"uint256",name:"to",type:"uint256"},{internalType:"bool",name:"pending",type:"bool"},{internalType:"bool",name:"executed",type:"bool"}],name:"getTransactionIds",outputs:[{internalType:"uint256[]",name:"_transactionIds",type:"uint256[]"}],payable:!1,stateMutability:"view",type:"function",params:{executed:"Include executed transactions.",from:"Index start position of transaction array.",pending:"Include pending transactions.",to:"Index end position of transaction array."},return:"Returns array of transaction IDs.",notice:"Get the list of transaction IDs in defined range."},"isConfirmed(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"transactionId",type:"uint256"}],name:"isConfirmed",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",params:{transactionId:"Transaction ID."},return:"Confirmation status.",notice:"Returns the confirmation status of a transaction."},"isOwner(address)":{constant:!0,inputs:[{internalType:"address",name:"",type:"address"}],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},"owners(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"owners",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},"removeOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"owner",type:"address"}],name:"removeOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{owner:"Address of owner."},notice:"Allows to remove an owner. Transaction has to be sent by wallet."},"replaceOwner(address,address)":{constant:!1,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"newOwner",type:"address"}],name:"replaceOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{newOwner:"Address of new owner.",owner:"Address of owner to be replaced."},notice:"Allows to replace an owner with a new owner. Transaction has to be sent by wallet."},"required()":{constant:!0,inputs:[],name:"required",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"revokeConfirmation(uint256)":{constant:!1,inputs:[{internalType:"uint256",name:"transactionId",type:"uint256"}],name:"revokeConfirmation",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{transactionId:"Transaction ID."},notice:"Allows an owner to revoke a confirmation for a transaction."},"submitTransaction(address,uint256,bytes)":{constant:!1,inputs:[{internalType:"address",name:"destination",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"submitTransaction",outputs:[{internalType:"uint256",name:"transactionId",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function",params:{data:"Transaction data payload.",destination:"Transaction target address.",value:"Transaction ether value."},return:"Returns transaction ID.",notice:"Allows an owner to submit and confirm a transaction."},"transactionCount()":{constant:!0,inputs:[],name:"transactionCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},"transactions(uint256)":{constant:!0,inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"transactions",outputs:[{internalType:"address",name:"destination",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"executed",type:"bool"}],payable:!1,stateMutability:"view",type:"function"}}},"contracts/Sovryn/Proxy/Proxy.sol:Proxy":{source:"contracts/Sovryn/Proxy/Proxy.sol",name:"Proxy",title:"Base Proxy contract.",details:"UpgradableProxy is the contract that inherits Proxy and wraps these functions.",notice:"The proxy performs delegated calls to the contract implementation it is pointing to. This way upgradable contracts are possible on blockchain. * Delegating proxy contracts are widely used for both upgradeability and gas savings. These proxies rely on a logic contract (also known as implementation contract or master copy) that is called using delegatecall. This allows proxies to keep a persistent state (storage and balance) while the code is delegated to the logic contract. * Proxy contract is meant to be inherited and its internal functions _setImplementation and _setProxyOwner to be called when upgrades become neccessary. * The loan token (iToken) contract as well as the protocol contract act as proxies, delegating all calls to underlying contracts. Therefore, if you want to interact with them using web3, you need to use the ABIs from the contracts containing the actual logic or the interface contract. ABI for LoanToken contracts: LoanTokenLogicStandard ABI for Protocol contract: ISovryn",constructor:{inputs:[],payable:!1,stateMutability:"nonpayable",type:"constructor"},fallback:{payable:!0,stateMutability:"payable",type:"fallback"},events:{"ImplementationChanged(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldImplementation",type:"address"},{indexed:!0,internalType:"address",name:"_newImplementation",type:"address"}],name:"ImplementationChanged",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"_newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"getImplementation()":{constant:!0,inputs:[],name:"getImplementation",outputs:[{internalType:"address",name:"_implementation",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the implementation.",notice:"Return address of the implementation."},"getProxyOwner()":{constant:!0,inputs:[],name:"getProxyOwner",outputs:[{internalType:"address",name:"_owner",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the owner.",notice:"Return address of the owner."}}},"contracts/Sovryn/Proxy/UpgradableProxy.sol:UpgradableProxy":{source:"contracts/Sovryn/Proxy/UpgradableProxy.sol",name:"UpgradableProxy",title:"Upgradable Proxy contract.",notice:"A disadvantage of the immutable ledger is that nobody can change the source code of a smart contract after it’s been deployed. In order to fix bugs or introduce new features, smart contracts need to be upgradable somehow. * Although it is not possible to upgrade the code of an already deployed smart contract, it is possible to set-up a proxy contract architecture that will allow to use new deployed contracts as if the main logic had been upgraded. * A proxy architecture pattern is such that all message calls go through a Proxy contract that will redirect them to the latest deployed contract logic. To upgrade, a new version of the contract is deployed, and the Proxy is updated to reference the new contract address.",fallback:{payable:!0,stateMutability:"payable",type:"fallback"},events:{"ImplementationChanged(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldImplementation",type:"address"},{indexed:!0,internalType:"address",name:"_newImplementation",type:"address"}],name:"ImplementationChanged",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"_newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"}},methods:{"getImplementation()":{constant:!0,inputs:[],name:"getImplementation",outputs:[{internalType:"address",name:"_implementation",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the implementation.",notice:"Return address of the implementation."},"getProxyOwner()":{constant:!0,inputs:[],name:"getProxyOwner",outputs:[{internalType:"address",name:"_owner",type:"address"}],payable:!1,stateMutability:"view",type:"function",return:"Address of the owner.",notice:"Return address of the owner."},"setImplementation(address)":{constant:!1,inputs:[{internalType:"address",name:"_implementation",type:"address"}],name:"setImplementation",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Wrapper for _setImplementation that exposes the function as public for owner to be able to set a new version of the contract as current pointing implementation.",params:{_implementation:"Address of the implementation."},notice:"Set address of the implementation."},"setProxyOwner(address)":{constant:!1,inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"setProxyOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_owner:"Address of the owner."},notice:"Set address of the owner."}}},"contracts/Sovryn/RSK/RSKAddrValidator.sol:RSKAddrValidator":{source:"contracts/Sovryn/RSK/RSKAddrValidator.sol",name:"RSKAddrValidator"},"contracts/Sovryn/Token/ApprovalReceiver.sol:ApprovalReceiver":{source:"contracts/Sovryn/Token/ApprovalReceiver.sol",name:"ApprovalReceiver",title:"Base contract for receiving approval from SOV token.",methods:{"receiveApproval(address,uint256,address,bytes)":{constant:!1,inputs:[{internalType:"address",name:"_sender",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_token",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"receiveApproval",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_data:"The data will be used for low level call."},notice:"Receives approval from SOV token."}}},"contracts/Sovryn/Token/Token.sol:Token":{source:"contracts/Sovryn/Token/Token.sol",name:"Token",title:"Token is an ERC-20 token contract.",details:"This contract represents a token with dynamic supply. The owner of the token contract can mint/burn tokens to/from any account based upon previous governance voting and approval.",notice:"This contract accounts for all holders' balances.",constructor:{inputs:[{internalType:"uint256",name:"_initialAmount",type:"uint256"},{internalType:"string",name:"_name",type:"string"},{internalType:"string",name:"_symbol",type:"string"},{internalType:"uint8",name:"_decimals",type:"uint8"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},events:{"Approval(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},"OwnershipTransferred(address,address)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},"Transfer(address,address,uint256)":{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"}},methods:{"DECIMALS()":{constant:!0,inputs:[],name:"DECIMALS",outputs:[{internalType:"uint8",name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},"NAME()":{constant:!0,inputs:[],name:"NAME",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},"SYMBOL()":{constant:!0,inputs:[],name:"SYMBOL",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},"allowance(address,address)":{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"See {IERC20-allowance}."},"approve(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"See {IERC20-approve}.\t * Requirements:\t * - `spender` cannot be the zero address."},"approveAndCall(address,uint256,bytes)":{constant:!1,inputs:[{internalType:"address",name:"_spender",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"approveAndCall",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",params:{_amount:"The amount of tokens to be sent.",_data:"Parameters for the contract call, such as endpoint signature.",_spender:"The contract address to spend the tokens."},notice:"Approves and then calls the receiving contract. Useful to encapsulate sending tokens to a contract in one call. Solidity has no native way to send tokens to contracts. ERC-20 tokens require approval to be spent by third parties, such as a contract in this case."},"balanceOf(address)":{constant:!0,inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"See {IERC20-balanceOf}."},"decimals()":{constant:!0,inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`).\t * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei.\t * NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"Atomically decreases the allowance granted to `spender` by the caller.\t * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}.\t * Emits an {Approval} event indicating the updated allowance.\t * Requirements:\t * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"Atomically increases the allowance granted to `spender` by the caller.\t * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}.\t * Emits an {Approval} event indicating the updated allowance.\t * Requirements:\t * - `spender` cannot be the zero address."},"isOwner()":{constant:!0,inputs:[],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function",details:"Returns true if the caller is the current owner."},"mint(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"_account",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"mint",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Don't create more than 2^96/10 tokens before updating the governance first.",params:{_account:"The recipient address to get the minted tokens.",_amount:"The amount of tokens to be minted."},notice:"Creates new tokens and sends them to the recipient."},"name()":{constant:!0,inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the name of the token."},"owner()":{constant:!0,inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the address of the current owner."},"symbol()":{constant:!0,inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function",details:"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{constant:!0,inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function",details:"See {IERC20-totalSupply}."},"transfer(address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"See {IERC20-transfer}.\t * Requirements:\t * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{constant:!1,inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function",details:"See {IERC20-transferFrom}.\t * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20};\t * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."},"transferOwnership(address)":{constant:!1,inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function",details:"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}}},wt=new qe({routes:[{path:"/",component:Tt,props:()=>({json:gt})},{path:"*",component:mt,props:e=>({json:gt[e.path.slice(1)]})}]});new a.a({el:"#app",router:wt,mounted(){document.dispatchEvent(new Event("render-event"))},render:e=>e(Je)})},function(e,t,n){"use strict";function a(e,t){for(var n=[],a={},i=0;in.parts.length&&(a.parts.length=n.parts.length)}else{var s=[];for(i=0;i= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@ardatan/aggregate-error": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz",
+ "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz",
+ "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@babel/core": {
+ "version": "7.14.3",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz",
+ "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@babel/generator": "^7.14.3",
+ "@babel/helper-compilation-targets": "^7.13.16",
+ "@babel/helper-module-transforms": "^7.14.2",
+ "@babel/helpers": "^7.14.0",
+ "@babel/parser": "^7.14.3",
+ "@babel/template": "^7.12.13",
+ "@babel/traverse": "^7.14.2",
+ "@babel/types": "^7.14.2",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.1.2",
+ "semver": "^6.3.0",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/highlight": "^7.12.13"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz",
+ "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==",
+ "dev": true,
+ "optional": true
+ },
+ "@babel/traverse": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz",
+ "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@babel/generator": "^7.14.2",
+ "@babel/helper-function-name": "^7.14.2",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/parser": "^7.14.2",
+ "@babel/types": "^7.14.2",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "optional": true
+ },
+ "json5": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
+ "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.14.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz",
+ "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/types": "^7.14.2",
+ "jsesc": "^2.5.1",
+ "source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz",
+ "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/types": "^7.12.13"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz",
+ "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/compat-data": "^7.14.4",
+ "@babel/helper-validator-option": "^7.12.17",
+ "browserslist": "^4.16.6",
+ "semver": "^6.3.0"
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz",
+ "integrity": "sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.12.13",
+ "@babel/helper-function-name": "^7.14.2",
+ "@babel/helper-member-expression-to-functions": "^7.13.12",
+ "@babel/helper-optimise-call-expression": "^7.12.13",
+ "@babel/helper-replace-supers": "^7.14.4",
+ "@babel/helper-split-export-declaration": "^7.12.13"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz",
+ "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "^7.12.13",
+ "@babel/template": "^7.12.13",
+ "@babel/types": "^7.14.2"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz",
+ "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/types": "^7.12.13"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz",
+ "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/types": "^7.13.12"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz",
+ "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/types": "^7.13.12"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz",
+ "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.13.12",
+ "@babel/helper-replace-supers": "^7.13.12",
+ "@babel/helper-simple-access": "^7.13.12",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "@babel/template": "^7.12.13",
+ "@babel/traverse": "^7.14.2",
+ "@babel/types": "^7.14.2"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/highlight": "^7.12.13"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz",
+ "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==",
+ "dev": true,
+ "optional": true
+ },
+ "@babel/traverse": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz",
+ "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@babel/generator": "^7.14.2",
+ "@babel/helper-function-name": "^7.14.2",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/parser": "^7.14.2",
+ "@babel/types": "^7.14.2",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "optional": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz",
+ "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/types": "^7.12.13"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz",
+ "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz",
+ "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "^7.13.12",
+ "@babel/helper-optimise-call-expression": "^7.12.13",
+ "@babel/traverse": "^7.14.2",
+ "@babel/types": "^7.14.4"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/highlight": "^7.12.13"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz",
+ "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==",
+ "dev": true,
+ "optional": true
+ },
+ "@babel/traverse": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz",
+ "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@babel/generator": "^7.14.2",
+ "@babel/helper-function-name": "^7.14.2",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/parser": "^7.14.2",
+ "@babel/types": "^7.14.2",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "optional": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz",
+ "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/types": "^7.13.12"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz",
+ "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/types": "^7.12.1"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz",
+ "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/types": "^7.12.13"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
+ "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==",
+ "dev": true
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.12.17",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz",
+ "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==",
+ "dev": true,
+ "optional": true
+ },
+ "@babel/helpers": {
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz",
+ "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/template": "^7.12.13",
+ "@babel/traverse": "^7.14.0",
+ "@babel/types": "^7.14.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/highlight": "^7.12.13"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz",
+ "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==",
+ "dev": true,
+ "optional": true
+ },
+ "@babel/traverse": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz",
+ "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@babel/generator": "^7.14.2",
+ "@babel/helper-function-name": "^7.14.2",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/parser": "^7.14.2",
+ "@babel/types": "^7.14.2",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "optional": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
+ "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.12.16",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz",
+ "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==",
+ "dev": true,
+ "optional": true
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz",
+ "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.13.0",
+ "@babel/helper-plugin-utils": "^7.13.0"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz",
+ "integrity": "sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/compat-data": "^7.14.4",
+ "@babel/helper-compilation-targets": "^7.14.4",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.14.2"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-syntax-flow": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz",
+ "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz",
+ "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz",
+ "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz",
+ "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz",
+ "integrity": "sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz",
+ "integrity": "sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.12.13",
+ "@babel/helper-function-name": "^7.14.2",
+ "@babel/helper-optimise-call-expression": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/helper-replace-supers": "^7.14.4",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "globals": "^11.1.0"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz",
+ "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz",
+ "integrity": "sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0"
+ }
+ },
+ "@babel/plugin-transform-flow-strip-types": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz",
+ "integrity": "sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/plugin-syntax-flow": "^7.12.13"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz",
+ "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz",
+ "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-function-name": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz",
+ "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz",
+ "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz",
+ "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-module-transforms": "^7.14.0",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/helper-simple-access": "^7.13.12",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz",
+ "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13",
+ "@babel/helper-replace-supers": "^7.12.13"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz",
+ "integrity": "sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz",
+ "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-transform-react-display-name": {
+ "version": "7.14.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.2.tgz",
+ "integrity": "sha512-zCubvP+jjahpnFJvPaHPiGVfuVUjXHhFvJKQdNnsmSsiU9kR/rCZ41jHc++tERD2zV+p7Hr6is+t5b6iWTCqSw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0"
+ }
+ },
+ "@babel/plugin-transform-react-jsx": {
+ "version": "7.14.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.3.tgz",
+ "integrity": "sha512-uuxuoUNVhdgYzERiHHFkE4dWoJx+UFVyuAl0aqN8P2/AKFHwqgUC5w2+4/PjpKXJsFgBlYAFXlUmDQ3k3DUkXw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.12.13",
+ "@babel/helper-module-imports": "^7.13.12",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/plugin-syntax-jsx": "^7.12.13",
+ "@babel/types": "^7.14.2"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.14.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz",
+ "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz",
+ "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz",
+ "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz",
+ "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.13.0"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz",
+ "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==",
+ "dev": true,
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/template": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz",
+ "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@babel/parser": "^7.12.13",
+ "@babel/types": "^7.12.13"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/highlight": "^7.12.13"
+ }
+ }
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz",
+ "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@babel/generator": "^7.12.13",
+ "@babel/helper-function-name": "^7.12.13",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/parser": "^7.12.13",
+ "@babel/types": "^7.12.13",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.19"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/highlight": "^7.12.13"
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "optional": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz",
+ "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.12.11",
+ "lodash": "^4.17.19",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@consento/sync-randombytes": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@consento/sync-randombytes/-/sync-randombytes-1.0.5.tgz",
+ "integrity": "sha512-mPJ2XvrTLQGEdhleDuSIkWtVWnvmhREOC1FjorV1nlK49t/52Z9X1d618gTj6nlQghRLiYvcd8oL4vZ2YZuDIQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer": "^5.4.3",
+ "seedrandom": "^3.0.5"
+ }
+ },
+ "@eslint/eslintrc": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz",
+ "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.1.1",
+ "espree": "^7.3.0",
+ "globals": "^13.9.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "@ethereumjs/block": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.3.0.tgz",
+ "integrity": "sha512-WoefY9Rs4W8vZTxG9qwntAlV61xsSv0NPoXmHO7x3SH16dwJQtU15YvahPCz4HEEXbu7GgGgNgu0pv8JY7VauA==",
+ "dev": true,
+ "requires": {
+ "@ethereumjs/common": "^2.3.0",
+ "@ethereumjs/tx": "^3.2.0",
+ "ethereumjs-util": "^7.0.10",
+ "merkle-patricia-tree": "^4.2.0"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz",
+ "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ }
+ }
+ }
+ },
+ "@ethereumjs/blockchain": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.3.0.tgz",
+ "integrity": "sha512-B0Y5QDZcRDQISPilv3m8nzk97QmC98DnSE9WxzGpCxfef22Mw7xhwGipci5Iy0dVC2Np2Cr5d3F6bHAR7+yVmQ==",
+ "dev": true,
+ "requires": {
+ "@ethereumjs/block": "^3.3.0",
+ "@ethereumjs/common": "^2.3.0",
+ "@ethereumjs/ethash": "^1.0.0",
+ "debug": "^2.2.0",
+ "ethereumjs-util": "^7.0.10",
+ "level-mem": "^5.0.1",
+ "lru-cache": "^5.1.1",
+ "rlp": "^2.2.4",
+ "semaphore-async-await": "^1.5.1"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz",
+ "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ }
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ }
+ }
+ },
+ "@ethereumjs/common": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.3.0.tgz",
+ "integrity": "sha512-Fmi15MdVptsC85n6NcUXIFiiXCXWEfZNgPWP+OGAQOC6ZtdzoNawtxH/cYpIgEgSuIzfOeX3VKQP/qVI1wISHg==",
+ "dev": true,
+ "requires": {
+ "crc-32": "^1.2.0",
+ "ethereumjs-util": "^7.0.10"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz",
+ "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ }
+ }
+ }
+ },
+ "@ethereumjs/ethash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.0.0.tgz",
+ "integrity": "sha512-iIqnGG6NMKesyOxv2YctB2guOVX18qMAWlj3QlZyrc+GqfzLqoihti+cVNQnyNxr7eYuPdqwLQOFuPe6g/uKjw==",
+ "dev": true,
+ "requires": {
+ "@types/levelup": "^4.3.0",
+ "buffer-xor": "^2.0.1",
+ "ethereumjs-util": "^7.0.7",
+ "miller-rabin": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "buffer-xor": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz",
+ "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz",
+ "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ }
+ }
+ }
+ },
+ "@ethereumjs/tx": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.2.0.tgz",
+ "integrity": "sha512-D3X/XtZ3ldUg34hr99Jvj7NxW3NxVKdUKrwQnEWlAp4CmCQpvYoyn7NF4lk34rHEt7ScS+Agu01pcDHoOcd19A==",
+ "dev": true,
+ "requires": {
+ "@ethereumjs/common": "^2.3.0",
+ "ethereumjs-util": "^7.0.10"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz",
+ "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ }
+ }
+ }
+ },
+ "@ethereumjs/vm": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.4.0.tgz",
+ "integrity": "sha512-0Mv51inp5S/mh+fKP0H90byT/5DdFirChUFUMhEjDlIBnHK55o/liKZ+0iNSLm6ZxX8iPs7urp11/UCoxPJfLA==",
+ "dev": true,
+ "requires": {
+ "@ethereumjs/block": "^3.3.0",
+ "@ethereumjs/blockchain": "^5.3.0",
+ "@ethereumjs/common": "^2.3.0",
+ "@ethereumjs/tx": "^3.2.0",
+ "async-eventemitter": "^0.2.4",
+ "core-js-pure": "^3.0.1",
+ "debug": "^2.2.0",
+ "ethereumjs-util": "^7.0.10",
+ "functional-red-black-tree": "^1.0.1",
+ "mcl-wasm": "^0.7.1",
+ "merkle-patricia-tree": "^4.2.0",
+ "rustbn.js": "~0.2.0",
+ "util.promisify": "^1.0.1"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz",
+ "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ }
+ }
+ }
+ },
+ "@ethersproject/abi": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
+ "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/address": "^5.0.4",
+ "@ethersproject/bignumber": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.4",
+ "@ethersproject/constants": "^5.0.4",
+ "@ethersproject/hash": "^5.0.4",
+ "@ethersproject/keccak256": "^5.0.3",
+ "@ethersproject/logger": "^5.0.5",
+ "@ethersproject/properties": "^5.0.3",
+ "@ethersproject/strings": "^5.0.4"
+ }
+ },
+ "@ethersproject/abstract-provider": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.3.0.tgz",
+ "integrity": "sha512-1+MLhGP1GwxBDBNwMWVmhCsvKwh4gK7oIfOrmlmePNeskg1NhIrYssraJBieaFNHUYfKEd/1DjiVZMw8Qu5Cxw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/networks": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/transactions": "^5.3.0",
+ "@ethersproject/web": "^5.3.0"
+ }
+ },
+ "@ethersproject/abstract-signer": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.3.0.tgz",
+ "integrity": "sha512-w8IFwOYqiPrtvosPuArZ3+QPR2nmdVTRrVY8uJYL3NNfMmQfTy3V3l2wbzX47UUlNbPJY+gKvzJAyvK1onZxJg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abstract-provider": "^5.3.0",
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0"
+ }
+ },
+ "@ethersproject/address": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.3.0.tgz",
+ "integrity": "sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/keccak256": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/rlp": "^5.3.0"
+ }
+ },
+ "@ethersproject/base64": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.3.0.tgz",
+ "integrity": "sha512-JIqgtOmgKcbc2sjGWTXyXktqUhvFUDte8fPVsAaOrcPiJf6YotNF+nsrOYGC9pbHBEGSuSBp3QR0varkO8JHEw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0"
+ }
+ },
+ "@ethersproject/basex": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.3.0.tgz",
+ "integrity": "sha512-8J4nS6t/SOnoCgr3DF5WCSRLC5YwTKYpZWJqeyYQLX+86TwPhtzvHXacODzcDII9tWKhVg6g0Bka8JCBWXsCiQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0"
+ }
+ },
+ "@ethersproject/bignumber": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.3.0.tgz",
+ "integrity": "sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "bn.js": "^4.11.9"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "@ethersproject/bytes": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.3.0.tgz",
+ "integrity": "sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/logger": "^5.3.0"
+ }
+ },
+ "@ethersproject/constants": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.3.0.tgz",
+ "integrity": "sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bignumber": "^5.3.0"
+ }
+ },
+ "@ethersproject/contracts": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.3.0.tgz",
+ "integrity": "sha512-eDyQ8ltykvyQqnGZxb/c1e0OnEtzqXhNNC4BX8nhYBCaoBrYYuK/1fLmyEvc5+XUMoxNhwpYkoSSwvPLci7/Zg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abi": "^5.3.0",
+ "@ethersproject/abstract-provider": "^5.3.0",
+ "@ethersproject/abstract-signer": "^5.3.0",
+ "@ethersproject/address": "^5.3.0",
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/constants": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/transactions": "^5.3.0"
+ },
+ "dependencies": {
+ "@ethersproject/abi": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.3.0.tgz",
+ "integrity": "sha512-NaT4UacjOwca8qCG/gv8k+DgTcWu49xlrvdhr/p8PTFnoS8e3aMWqjI3znFME5Txa/QWXDrg2/heufIUue9rtw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/address": "^5.3.0",
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/constants": "^5.3.0",
+ "@ethersproject/hash": "^5.3.0",
+ "@ethersproject/keccak256": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/strings": "^5.3.0"
+ }
+ }
+ }
+ },
+ "@ethersproject/hash": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.3.0.tgz",
+ "integrity": "sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abstract-signer": "^5.3.0",
+ "@ethersproject/address": "^5.3.0",
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/keccak256": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/strings": "^5.3.0"
+ }
+ },
+ "@ethersproject/hdnode": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.3.0.tgz",
+ "integrity": "sha512-zLmmtLNoDMGoYRdjOab01Zqkvp+TmZyCGDAMQF1Bs3yZyBs/kzTNi1qJjR1jVUcPP5CWGtjFwY8iNG8oNV9J8g==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abstract-signer": "^5.3.0",
+ "@ethersproject/basex": "^5.3.0",
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/pbkdf2": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/sha2": "^5.3.0",
+ "@ethersproject/signing-key": "^5.3.0",
+ "@ethersproject/strings": "^5.3.0",
+ "@ethersproject/transactions": "^5.3.0",
+ "@ethersproject/wordlists": "^5.3.0"
+ }
+ },
+ "@ethersproject/json-wallets": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.3.0.tgz",
+ "integrity": "sha512-/xwbqaIb5grUIGNmeEaz8GdcpmDr++X8WT4Jqcclnxow8PXCUHFeDxjf3O+nSuoqOYG/Ds0+BI5xuQKbva6Xkw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abstract-signer": "^5.3.0",
+ "@ethersproject/address": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/hdnode": "^5.3.0",
+ "@ethersproject/keccak256": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/pbkdf2": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/random": "^5.3.0",
+ "@ethersproject/strings": "^5.3.0",
+ "@ethersproject/transactions": "^5.3.0",
+ "aes-js": "3.0.0",
+ "scrypt-js": "3.0.1"
+ },
+ "dependencies": {
+ "scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
+ "dev": true
+ }
+ }
+ },
+ "@ethersproject/keccak256": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.3.0.tgz",
+ "integrity": "sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "js-sha3": "0.5.7"
+ },
+ "dependencies": {
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ }
+ }
+ },
+ "@ethersproject/logger": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.3.0.tgz",
+ "integrity": "sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA==",
+ "dev": true
+ },
+ "@ethersproject/networks": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.3.0.tgz",
+ "integrity": "sha512-XGbD9MMgqrR7SYz8o6xVgdG+25v7YT5vQG8ZdlcLj2I7elOBM7VNeQrnxfSN7rWQNcqu2z80OM29gGbQz+4Low==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/logger": "^5.3.0"
+ }
+ },
+ "@ethersproject/pbkdf2": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.3.0.tgz",
+ "integrity": "sha512-Q9ChVU6gBFiex0FSdtzo4b0SAKz3ZYcYVFLrEWHL0FnHvNk3J3WgAtRNtBQGQYn/T5wkoTdZttMbfBkFlaiWcA==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/sha2": "^5.3.0"
+ }
+ },
+ "@ethersproject/properties": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.3.0.tgz",
+ "integrity": "sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/logger": "^5.3.0"
+ }
+ },
+ "@ethersproject/providers": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.3.0.tgz",
+ "integrity": "sha512-HtL+DEbzPcRyfrkrMay7Rk/4he+NbUpzI/wHXP4Cqtra82nQOnqqCgTQc4HbdDrl75WVxG/JRMFhyneIPIMZaA==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abstract-provider": "^5.3.0",
+ "@ethersproject/abstract-signer": "^5.3.0",
+ "@ethersproject/address": "^5.3.0",
+ "@ethersproject/basex": "^5.3.0",
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/constants": "^5.3.0",
+ "@ethersproject/hash": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/networks": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/random": "^5.3.0",
+ "@ethersproject/rlp": "^5.3.0",
+ "@ethersproject/sha2": "^5.3.0",
+ "@ethersproject/strings": "^5.3.0",
+ "@ethersproject/transactions": "^5.3.0",
+ "@ethersproject/web": "^5.3.0",
+ "bech32": "1.1.4",
+ "ws": "7.4.6"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+ "dev": true
+ }
+ }
+ },
+ "@ethersproject/random": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.3.0.tgz",
+ "integrity": "sha512-A5SL/4inutSwt3Fh2OD0x2gz+x6GHmuUnIPkR7zAiTidMD2N8F6tZdMF1hlQKWVCcVMWhEQg8mWijhEzm6BBYw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0"
+ }
+ },
+ "@ethersproject/rlp": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.3.0.tgz",
+ "integrity": "sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0"
+ }
+ },
+ "@ethersproject/sha2": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.3.0.tgz",
+ "integrity": "sha512-r5ftlwKcocYEuFz2JbeKOT5SAsCV4m1RJDsTOEfQ5L67ZC7NFDK5i7maPdn1bx4nPhylF9VAwxSrQ1esmwzylg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "hash.js": "1.1.7"
+ }
+ },
+ "@ethersproject/signing-key": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.3.0.tgz",
+ "integrity": "sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "bn.js": "^4.11.9",
+ "elliptic": "6.5.4",
+ "hash.js": "1.1.7"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "@ethersproject/solidity": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.3.0.tgz",
+ "integrity": "sha512-uLRBaNUiISHbut94XKewJgQh6UmydWTBp71I7I21pkjVXfZO2dJ5EOo3jCnumJc01M4LOm79dlNNmF3oGIvweQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/keccak256": "^5.3.0",
+ "@ethersproject/sha2": "^5.3.0",
+ "@ethersproject/strings": "^5.3.0"
+ }
+ },
+ "@ethersproject/strings": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.3.0.tgz",
+ "integrity": "sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/constants": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0"
+ }
+ },
+ "@ethersproject/transactions": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.3.0.tgz",
+ "integrity": "sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/address": "^5.3.0",
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/constants": "^5.3.0",
+ "@ethersproject/keccak256": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/rlp": "^5.3.0",
+ "@ethersproject/signing-key": "^5.3.0"
+ }
+ },
+ "@ethersproject/units": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.3.0.tgz",
+ "integrity": "sha512-BkfccZGwfJ6Ob+AelpIrgAzuNhrN2VLp3AILnkqTOv+yBdsc83V4AYf25XC/u0rHnWl6f4POaietPwlMqP2vUg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/constants": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0"
+ }
+ },
+ "@ethersproject/wallet": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.3.0.tgz",
+ "integrity": "sha512-boYBLydG6671p9QoG6EinNnNzbm7DNOjVT20eV8J6HQEq4aUaGiA2CytF2vK+2rOEWbzhZqoNDt6AlkE1LlsTg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abstract-provider": "^5.3.0",
+ "@ethersproject/abstract-signer": "^5.3.0",
+ "@ethersproject/address": "^5.3.0",
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/hash": "^5.3.0",
+ "@ethersproject/hdnode": "^5.3.0",
+ "@ethersproject/json-wallets": "^5.3.0",
+ "@ethersproject/keccak256": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/random": "^5.3.0",
+ "@ethersproject/signing-key": "^5.3.0",
+ "@ethersproject/transactions": "^5.3.0",
+ "@ethersproject/wordlists": "^5.3.0"
+ }
+ },
+ "@ethersproject/web": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.3.0.tgz",
+ "integrity": "sha512-Ni6/DHnY6k/TD41LEkv0RQDx4jqWz5e/RZvrSecsxGYycF+MFy2z++T/yGc2peRunLOTIFwEksgEGGlbwfYmhQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/base64": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/strings": "^5.3.0"
+ }
+ },
+ "@ethersproject/wordlists": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.3.0.tgz",
+ "integrity": "sha512-JcwumCZcsUxgWpiFU/BRy6b4KlTRdOmYvOKZcAw/3sdF93/pZyPW5Od2hFkHS8oWp4xS06YQ+qHqQhdcxdHafQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/hash": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/strings": "^5.3.0"
+ }
+ },
+ "@graphql-tools/batch-delegate": {
+ "version": "6.2.6",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/batch-delegate/-/batch-delegate-6.2.6.tgz",
+ "integrity": "sha512-QUoE9pQtkdNPFdJHSnBhZtUfr3M7pIRoXoMR+TG7DK2Y62ISKbT/bKtZEUU1/2v5uqd5WVIvw9dF8gHDSJAsSA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/delegate": "^6.2.4",
+ "dataloader": "2.0.0",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/batch-execute": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.2.tgz",
+ "integrity": "sha512-IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/utils": "^7.7.0",
+ "dataloader": "2.0.0",
+ "tslib": "~2.2.0",
+ "value-or-promise": "1.0.6"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ }
+ }
+ },
+ "@graphql-tools/code-file-loader": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-6.3.1.tgz",
+ "integrity": "sha512-ZJimcm2ig+avgsEOWWVvAaxZrXXhiiSZyYYOJi0hk9wh5BxZcLUNKkTp6EFnZE/jmGUwuos3pIjUD3Hwi3Bwhg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/graphql-tag-pluck": "^6.5.1",
+ "@graphql-tools/utils": "^7.0.0",
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/delegate": {
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.2.4.tgz",
+ "integrity": "sha512-mXe6DfoWmq49kPcDrpKHgC2DSWcD5q0YCaHHoXYPAOlnLH8VMTY8BxcE8y/Do2eyg+GLcwAcrpffVszWMwqw0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "@graphql-tools/schema": "^6.2.4",
+ "@graphql-tools/utils": "^6.2.4",
+ "dataloader": "2.0.0",
+ "is-promise": "4.0.0",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/git-loader": {
+ "version": "6.2.6",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-6.2.6.tgz",
+ "integrity": "sha512-ooQTt2CaG47vEYPP3CPD+nbA0F+FYQXfzrB1Y1ABN9K3d3O2RK3g8qwslzZaI8VJQthvKwt0A95ZeE4XxteYfw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/graphql-tag-pluck": "^6.2.6",
+ "@graphql-tools/utils": "^7.0.0",
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/github-loader": {
+ "version": "6.2.5",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-6.2.5.tgz",
+ "integrity": "sha512-DLuQmYeNNdPo8oWus8EePxWCfCAyUXPZ/p1PWqjrX/NGPyH2ZObdqtDAfRHztljt0F/qkBHbGHCEk2TKbRZTRw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/graphql-tag-pluck": "^6.2.6",
+ "@graphql-tools/utils": "^7.0.0",
+ "cross-fetch": "3.0.6",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/graphql-file-loader": {
+ "version": "6.2.7",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz",
+ "integrity": "sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/import": "^6.2.6",
+ "@graphql-tools/utils": "^7.0.0",
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/graphql-tag-pluck": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.5.1.tgz",
+ "integrity": "sha512-7qkm82iFmcpb8M6/yRgzjShtW6Qu2OlCSZp8uatA3J0eMl87TxyJoUmL3M3UMMOSundAK8GmoyNVFUrueueV5Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/parser": "7.12.16",
+ "@babel/traverse": "7.12.13",
+ "@babel/types": "7.12.13",
+ "@graphql-tools/utils": "^7.0.0",
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/import": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.1.tgz",
+ "integrity": "sha512-1szR19JI6WPibjYurMLdadHKZoG9C//8I/FZ0Dt4vJSbrMdVNp8WFxg4QnZrDeMG4MzZc90etsyF5ofKjcC+jw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "resolve-from": "5.0.0",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/json-file-loader": {
+ "version": "6.2.6",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz",
+ "integrity": "sha512-CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/utils": "^7.0.0",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/links": {
+ "version": "6.2.5",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/links/-/links-6.2.5.tgz",
+ "integrity": "sha512-XeGDioW7F+HK6HHD/zCeF0HRC9s12NfOXAKv1HC0J7D50F4qqMvhdS/OkjzLoBqsgh/Gm8icRc36B5s0rOA9ig==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/utils": "^7.0.0",
+ "apollo-link": "1.2.14",
+ "apollo-upload-client": "14.1.2",
+ "cross-fetch": "3.0.6",
+ "form-data": "3.0.0",
+ "is-promise": "4.0.0",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "form-data": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz",
+ "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/load": {
+ "version": "6.2.8",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.8.tgz",
+ "integrity": "sha512-JpbyXOXd8fJXdBh2ta0Q4w8ia6uK5FHzrTNmcvYBvflFuWly2LDTk2abbSl81zKkzswQMEd2UIYghXELRg8eTA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/merge": "^6.2.12",
+ "@graphql-tools/utils": "^7.5.0",
+ "globby": "11.0.3",
+ "import-from": "3.0.0",
+ "is-glob": "4.0.1",
+ "p-limit": "3.1.0",
+ "tslib": "~2.2.0",
+ "unixify": "1.0.0",
+ "valid-url": "1.0.9"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "optional": true
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "optional": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "fast-glob": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
+ "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.0",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.2",
+ "picomatch": "^2.2.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globby": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
+ "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "ignore": {
+ "version": "5.1.8",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
+ "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+ "dev": true,
+ "optional": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "optional": true
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "optional": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "optional": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "@graphql-tools/load-files": {
+ "version": "6.3.2",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/load-files/-/load-files-6.3.2.tgz",
+ "integrity": "sha512-3mgwEKZ8yy7CD/uVs9yeXR3r+GwjlTKRG5bC75xdJFN8WbzbcHjIJiTXfWSAYqbfSTam0hWnRdWghagzFSo5kQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "globby": "11.0.3",
+ "tslib": "~2.1.0",
+ "unixify": "1.0.0"
+ },
+ "dependencies": {
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "optional": true
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "optional": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "fast-glob": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
+ "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.0",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.2",
+ "picomatch": "^2.2.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globby": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
+ "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "ignore": {
+ "version": "5.1.8",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
+ "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+ "dev": true,
+ "optional": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "optional": true
+ },
+ "micromatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "optional": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "optional": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/merge": {
+ "version": "6.2.14",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.14.tgz",
+ "integrity": "sha512-RWT4Td0ROJai2eR66NHejgf8UwnXJqZxXgDWDI+7hua5vNA2OW8Mf9K1Wav1ZkjWnuRp4ztNtkZGie5ISw55ow==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/schema": "^7.0.0",
+ "@graphql-tools/utils": "^7.7.0",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "@graphql-tools/schema": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz",
+ "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/utils": "^7.1.2",
+ "tslib": "~2.2.0",
+ "value-or-promise": "1.0.6"
+ }
+ },
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ }
+ }
+ },
+ "@graphql-tools/mock": {
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-6.2.4.tgz",
+ "integrity": "sha512-O5Zvq/mcDZ7Ptky0IZ4EK9USmxV6FEVYq0Jxv2TI80kvxbCjt0tbEpZ+r1vIt1gZOXlAvadSHYyzWnUPh+1vkQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/schema": "^6.2.4",
+ "@graphql-tools/utils": "^6.2.4",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/module-loader": {
+ "version": "6.2.7",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/module-loader/-/module-loader-6.2.7.tgz",
+ "integrity": "sha512-ItAAbHvwfznY9h1H9FwHYDstTcm22Dr5R9GZtrWlpwqj0jaJGcBxsMB9jnK9kFqkbtFYEe4E/NsSnxsS4/vViQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/utils": "^7.5.0",
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/relay-operation-optimizer": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.3.0.tgz",
+ "integrity": "sha512-Or3UgRvkY9Fq1AAx7q38oPqFmTepLz7kp6wDHKyR0ceG7AvHv5En22R12mAeISInbhff4Rpwgf6cE8zHRu6bCw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/utils": "^7.1.0",
+ "relay-compiler": "10.1.0",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/resolvers-composition": {
+ "version": "6.2.8",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/resolvers-composition/-/resolvers-composition-6.2.8.tgz",
+ "integrity": "sha512-/2xedRZYhvts88x9Rv/VWrk69wpl84M7cuYZ4aAacqxnXNm7zxT+MqeL54lsRhq2Kb2yjEhtfguEiqOn+kV8Xg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/utils": "^7.9.1",
+ "lodash": "4.17.21",
+ "tslib": "~2.2.0"
+ },
+ "dependencies": {
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ }
+ }
+ },
+ "@graphql-tools/schema": {
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.2.4.tgz",
+ "integrity": "sha512-rh+14lSY1q8IPbEv2J9x8UBFJ5NrDX9W5asXEUlPp+7vraLp/Tiox4GXdgyA92JhwpYco3nTf5Bo2JDMt1KnAQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/utils": "^6.2.4",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/stitch": {
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/stitch/-/stitch-6.2.4.tgz",
+ "integrity": "sha512-0C7PNkS7v7iAc001m7c1LPm5FUB0/DYw+s3OyCii6YYYHY8NwdI0roeOyeDGFJkFubWBQfjc3hoSyueKtU73mw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/batch-delegate": "^6.2.4",
+ "@graphql-tools/delegate": "^6.2.4",
+ "@graphql-tools/merge": "^6.2.4",
+ "@graphql-tools/schema": "^6.2.4",
+ "@graphql-tools/utils": "^6.2.4",
+ "@graphql-tools/wrap": "^6.2.4",
+ "is-promise": "4.0.0",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/url-loader": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.10.1.tgz",
+ "integrity": "sha512-DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/delegate": "^7.0.1",
+ "@graphql-tools/utils": "^7.9.0",
+ "@graphql-tools/wrap": "^7.0.4",
+ "@microsoft/fetch-event-source": "2.0.1",
+ "@types/websocket": "1.0.2",
+ "abort-controller": "3.0.0",
+ "cross-fetch": "3.1.4",
+ "extract-files": "9.0.0",
+ "form-data": "4.0.0",
+ "graphql-ws": "^4.4.1",
+ "is-promise": "4.0.0",
+ "isomorphic-ws": "4.0.1",
+ "lodash": "4.17.21",
+ "meros": "1.1.4",
+ "subscriptions-transport-ws": "^0.9.18",
+ "sync-fetch": "0.3.0",
+ "tslib": "~2.2.0",
+ "valid-url": "1.0.9",
+ "ws": "7.4.5"
+ },
+ "dependencies": {
+ "@graphql-tools/delegate": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.5.tgz",
+ "integrity": "sha512-bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "@graphql-tools/batch-execute": "^7.1.2",
+ "@graphql-tools/schema": "^7.1.5",
+ "@graphql-tools/utils": "^7.7.1",
+ "dataloader": "2.0.0",
+ "tslib": "~2.2.0",
+ "value-or-promise": "1.0.6"
+ }
+ },
+ "@graphql-tools/schema": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.5.tgz",
+ "integrity": "sha512-uyn3HSNSckf4mvQSq0Q07CPaVZMNFCYEVxroApOaw802m9DcZPgf9XVPy/gda5GWj9AhbijfRYVTZQgHnJ4CXA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/utils": "^7.1.2",
+ "tslib": "~2.2.0",
+ "value-or-promise": "1.0.6"
+ }
+ },
+ "@graphql-tools/utils": {
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.10.0.tgz",
+ "integrity": "sha512-d334r6bo9mxdSqZW6zWboEnnOOFRrAPVQJ7LkU8/6grglrbcu6WhwCLzHb90E94JI3TD3ricC3YGbUqIi9Xg0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.2",
+ "tslib": "~2.2.0"
+ }
+ },
+ "@graphql-tools/wrap": {
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.8.tgz",
+ "integrity": "sha512-1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/delegate": "^7.1.5",
+ "@graphql-tools/schema": "^7.1.5",
+ "@graphql-tools/utils": "^7.8.1",
+ "tslib": "~2.2.0",
+ "value-or-promise": "1.0.6"
+ }
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "cross-fetch": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
+ "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "node-fetch": "2.6.1"
+ }
+ },
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "ws": {
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
+ "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/utils": {
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.4.tgz",
+ "integrity": "sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ardatan/aggregate-error": "0.0.6",
+ "camel-case": "4.1.1",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "camel-case": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz",
+ "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pascal-case": "^3.1.1",
+ "tslib": "^1.10.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-tools/wrap": {
+ "version": "6.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-6.2.4.tgz",
+ "integrity": "sha512-cyQgpybolF9DjL2QNOvTS1WDCT/epgYoiA8/8b3nwv5xmMBQ6/6nYnZwityCZ7njb7MMyk7HBEDNNlP9qNJDcA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/delegate": "^6.2.4",
+ "@graphql-tools/schema": "^6.2.4",
+ "@graphql-tools/utils": "^6.2.4",
+ "is-promise": "4.0.0",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@graphql-typed-document-node/core": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz",
+ "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==",
+ "dev": true,
+ "optional": true
+ },
+ "@gulp-sourcemaps/map-sources": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz",
+ "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "normalize-path": "^2.0.1",
+ "through2": "^2.0.3"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
+ "@improbable-eng/grpc-web": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.13.0.tgz",
+ "integrity": "sha512-vaxxT+Qwb7GPqDQrBV4vAAfH0HywgOLw6xGIKXd9Q8hcV63CQhmS3p4+pZ9/wVvt4Ph3ZDK9fdC983b9aGMUFg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "browser-headers": "^0.4.0"
+ }
+ },
+ "@josephg/resolvable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz",
+ "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==",
+ "dev": true,
+ "optional": true
+ },
+ "@ledgerhq/devices": {
+ "version": "5.51.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz",
+ "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ledgerhq/errors": "^5.50.0",
+ "@ledgerhq/logs": "^5.50.0",
+ "rxjs": "6",
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@ledgerhq/errors": {
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz",
+ "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==",
+ "dev": true,
+ "optional": true
+ },
+ "@ledgerhq/hw-transport": {
+ "version": "5.51.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz",
+ "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ledgerhq/devices": "^5.51.1",
+ "@ledgerhq/errors": "^5.50.0",
+ "events": "^3.3.0"
+ }
+ },
+ "@ledgerhq/hw-transport-webusb": {
+ "version": "5.53.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-5.53.1.tgz",
+ "integrity": "sha512-A/f+xcrkIAZiJrvPpDvsrjxQX4cI2kbdiunQkwsYmOG3Bp4z89ZnsBiC7YBst4n2/g+QgTg0/KPVtODU5djooQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ledgerhq/devices": "^5.51.1",
+ "@ledgerhq/errors": "^5.50.0",
+ "@ledgerhq/hw-transport": "^5.51.1",
+ "@ledgerhq/logs": "^5.50.0"
+ }
+ },
+ "@ledgerhq/logs": {
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz",
+ "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==",
+ "dev": true,
+ "optional": true
+ },
+ "@microsoft/fetch-event-source": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz",
+ "integrity": "sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==",
+ "dev": true,
+ "optional": true
+ },
+ "@mrmlnc/readdir-enhanced": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
+ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
+ "dev": true,
+ "requires": {
+ "call-me-maybe": "^1.0.1",
+ "glob-to-regexp": "^0.3.0"
+ }
+ },
+ "@multiformats/base-x": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz",
+ "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==",
+ "dev": true,
+ "optional": true
+ },
+ "@nodefactory/filsnap-adapter": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@nodefactory/filsnap-adapter/-/filsnap-adapter-0.2.2.tgz",
+ "integrity": "sha512-nbaYMwVopOXN2bWOdDY3il6gGL9qMuCmMN4WPuoxzJjSnAMJNqEeSe6MNNJ/fYBLipZcJfAtirNXRrFLFN+Tvw==",
+ "dev": true,
+ "optional": true
+ },
+ "@nodefactory/filsnap-types": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@nodefactory/filsnap-types/-/filsnap-types-0.2.2.tgz",
+ "integrity": "sha512-XT1tE2vrYF2D0tSNNekgjqKRpqPQn4W72eKul9dDCul/8ykouhqnVTyjFHYvBhlBWE0PK3nmG7i83QvhgGSiMw==",
+ "dev": true,
+ "optional": true
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "dependencies": {
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ }
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
+ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz",
+ "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@nomiclabs/hardhat-ethers": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.2.tgz",
+ "integrity": "sha512-6quxWe8wwS4X5v3Au8q1jOvXYEPkS1Fh+cME5u6AwNdnI4uERvPlVjlgRWzpnb+Rrt1l/cEqiNRH9GlsBMSDQg==",
+ "dev": true
+ },
+ "@nomiclabs/hardhat-ganache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ganache/-/hardhat-ganache-2.0.0.tgz",
+ "integrity": "sha512-JJI4+5bHZUoeuIZL42usxp+0i/krYnoApzzA2Xii1P7DwrZHwFBa2OCtR1sUq5z3VTSTvQKrJ1d2/Y6CoQGTKQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "ganache-core": "^2.7.0",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "@nomiclabs/hardhat-truffle5": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-truffle5/-/hardhat-truffle5-2.0.0.tgz",
+ "integrity": "sha512-JLjyfeXTiSqa0oLHcN3i8kD4coJa4Gx6uAXybGv3aBiliEbHddLSzmBWx0EU69a1/Ad5YDdGSqVnjB8mkUCr/g==",
+ "dev": true,
+ "requires": {
+ "@nomiclabs/truffle-contract": "^4.2.23",
+ "@types/chai": "^4.2.0",
+ "chai": "^4.2.0",
+ "ethereumjs-util": "^6.1.0",
+ "fs-extra": "^7.0.1"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ }
+ }
+ },
+ "@nomiclabs/hardhat-web3": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz",
+ "integrity": "sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q==",
+ "dev": true,
+ "requires": {
+ "@types/bignumber.js": "^5.0.0"
+ }
+ },
+ "@nomiclabs/truffle-contract": {
+ "version": "4.2.23",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/truffle-contract/-/truffle-contract-4.2.23.tgz",
+ "integrity": "sha512-Khj/Ts9r0LqEpGYhISbc+8WTOd6qJ4aFnDR+Ew+neqcjGnhwrIvuihNwPFWU6hDepW3Xod6Y+rTo90N8sLRDjw==",
+ "dev": true,
+ "requires": {
+ "@truffle/blockchain-utils": "^0.0.25",
+ "@truffle/contract-schema": "^3.2.5",
+ "@truffle/debug-utils": "^4.2.9",
+ "@truffle/error": "^0.0.11",
+ "@truffle/interface-adapter": "^0.4.16",
+ "bignumber.js": "^7.2.1",
+ "ethereum-ens": "^0.8.0",
+ "ethers": "^4.0.0-beta.1",
+ "source-map-support": "^0.5.19"
+ },
+ "dependencies": {
+ "bignumber.js": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
+ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "ethers": {
+ "version": "4.0.48",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.48.tgz",
+ "integrity": "sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g==",
+ "dev": true,
+ "requires": {
+ "aes-js": "3.0.0",
+ "bn.js": "^4.4.0",
+ "elliptic": "6.5.3",
+ "hash.js": "1.1.3",
+ "js-sha3": "0.5.7",
+ "scrypt-js": "2.0.4",
+ "setimmediate": "1.0.4",
+ "uuid": "2.0.1",
+ "xmlhttprequest": "1.8.0"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=",
+ "dev": true
+ }
+ }
+ },
+ "@openzeppelin/contract-loader": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.2.tgz",
+ "integrity": "sha512-/P8v8ZFVwK+Z7rHQH2N3hqzEmTzLFjhMtvNK4FeIak6DEeONZ92vdFaFb10CCCQtp390Rp/Y57Rtfrm50bUdMQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "fs-extra": "^8.1.0"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ }
+ }
+ },
+ "@openzeppelin/test-helpers": {
+ "version": "0.5.11",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.11.tgz",
+ "integrity": "sha512-HkFpCjtTD8dk+wdYhsT07YbMGCE+Z4Wp5sBKXvPDF3Lynoc0H2KqZgCWV+qr2YZ0WW1oX/sXkKFrrKJ0caBTjw==",
+ "dev": true,
+ "requires": {
+ "@openzeppelin/contract-loader": "^0.6.2",
+ "@truffle/contract": "^4.0.35",
+ "ansi-colors": "^3.2.3",
+ "chai": "^4.2.0",
+ "chai-bn": "^0.2.1",
+ "ethjs-abi": "^0.2.1",
+ "lodash.flatten": "^4.4.0",
+ "semver": "^5.6.0",
+ "web3": "^1.2.5",
+ "web3-utils": "^1.2.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=",
+ "dev": true,
+ "optional": true
+ },
+ "@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+ "dev": true,
+ "optional": true
+ },
+ "@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+ "dev": true,
+ "optional": true
+ },
+ "@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=",
+ "dev": true,
+ "optional": true
+ },
+ "@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=",
+ "dev": true,
+ "optional": true
+ },
+ "@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=",
+ "dev": true,
+ "optional": true
+ },
+ "@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=",
+ "dev": true,
+ "optional": true
+ },
+ "@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=",
+ "dev": true,
+ "optional": true
+ },
+ "@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=",
+ "dev": true,
+ "optional": true
+ },
+ "@redux-saga/core": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.1.3.tgz",
+ "integrity": "sha512-8tInBftak8TPzE6X13ABmEtRJGjtK17w7VUs7qV17S8hCO5S3+aUTWZ/DBsBJPdE8Z5jOPwYALyvofgq1Ws+kg==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.6.3",
+ "@redux-saga/deferred": "^1.1.2",
+ "@redux-saga/delay-p": "^1.1.2",
+ "@redux-saga/is": "^1.1.2",
+ "@redux-saga/symbols": "^1.1.2",
+ "@redux-saga/types": "^1.1.0",
+ "redux": "^4.0.4",
+ "typescript-tuple": "^2.2.1"
+ },
+ "dependencies": {
+ "redux": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz",
+ "integrity": "sha512-uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.9.2"
+ }
+ }
+ }
+ },
+ "@redux-saga/deferred": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.1.2.tgz",
+ "integrity": "sha512-908rDLHFN2UUzt2jb4uOzj6afpjgJe3MjICaUNO3bvkV/kN/cNeI9PMr8BsFXB/MR8WTAZQq/PlTq8Kww3TBSQ==",
+ "dev": true
+ },
+ "@redux-saga/delay-p": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.1.2.tgz",
+ "integrity": "sha512-ojc+1IoC6OP65Ts5+ZHbEYdrohmIw1j9P7HS9MOJezqMYtCDgpkoqB5enAAZrNtnbSL6gVCWPHaoaTY5KeO0/g==",
+ "dev": true,
+ "requires": {
+ "@redux-saga/symbols": "^1.1.2"
+ }
+ },
+ "@redux-saga/is": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.2.tgz",
+ "integrity": "sha512-OLbunKVsCVNTKEf2cH4TYyNbbPgvmZ52iaxBD4I1fTif4+MTXMa4/Z07L83zW/hTCXwpSZvXogqMqLfex2Tg6w==",
+ "dev": true,
+ "requires": {
+ "@redux-saga/symbols": "^1.1.2",
+ "@redux-saga/types": "^1.1.0"
+ }
+ },
+ "@redux-saga/symbols": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.2.tgz",
+ "integrity": "sha512-EfdGnF423glv3uMwLsGAtE6bg+R9MdqlHEzExnfagXPrIiuxwr3bdiAwz3gi+PsrQ3yBlaBpfGLtDG8rf3LgQQ==",
+ "dev": true
+ },
+ "@redux-saga/types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.1.0.tgz",
+ "integrity": "sha512-afmTuJrylUU/0OtqzaRkbyYFFNgCF73Bvel/sw90pvGrWIZ+vyoIJqA6eMSoA6+nb443kTmulmBtC9NerXboNg==",
+ "dev": true
+ },
+ "@repeaterjs/repeater": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz",
+ "integrity": "sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==",
+ "dev": true,
+ "optional": true
+ },
+ "@sentry/core": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz",
+ "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==",
+ "dev": true,
+ "requires": {
+ "@sentry/hub": "5.30.0",
+ "@sentry/minimal": "5.30.0",
+ "@sentry/types": "5.30.0",
+ "@sentry/utils": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "@sentry/hub": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz",
+ "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==",
+ "dev": true,
+ "requires": {
+ "@sentry/types": "5.30.0",
+ "@sentry/utils": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "@sentry/minimal": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz",
+ "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==",
+ "dev": true,
+ "requires": {
+ "@sentry/hub": "5.30.0",
+ "@sentry/types": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "@sentry/node": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz",
+ "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==",
+ "dev": true,
+ "requires": {
+ "@sentry/core": "5.30.0",
+ "@sentry/hub": "5.30.0",
+ "@sentry/tracing": "5.30.0",
+ "@sentry/types": "5.30.0",
+ "@sentry/utils": "5.30.0",
+ "cookie": "^0.4.1",
+ "https-proxy-agent": "^5.0.0",
+ "lru_map": "^0.3.3",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
+ "dev": true
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "@sentry/tracing": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz",
+ "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==",
+ "dev": true,
+ "requires": {
+ "@sentry/hub": "5.30.0",
+ "@sentry/minimal": "5.30.0",
+ "@sentry/types": "5.30.0",
+ "@sentry/utils": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "@sentry/types": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz",
+ "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==",
+ "dev": true
+ },
+ "@sentry/utils": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz",
+ "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==",
+ "dev": true,
+ "requires": {
+ "@sentry/types": "5.30.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "dev": true
+ },
+ "@solidity-parser/parser": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.10.2.tgz",
+ "integrity": "sha512-SFO5xlpR5rnqIds++4JDcXMG9b6KfslcxKoX+y19rizB0sNkv9mRs/TA5PhD4MrRbyaS60FkQ4updZtjPa4LjQ==",
+ "dev": true
+ },
+ "@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "dev": true,
+ "requires": {
+ "defer-to-connect": "^1.0.1"
+ }
+ },
+ "@textile/buckets": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/@textile/buckets/-/buckets-6.0.5.tgz",
+ "integrity": "sha512-MJum/qLGPE13Ew0uhoNI4Wp2SdDCdmfp35JFEBHU4Uisna0PZ4lfOFXZVA/cVVgw5g94NOm1KS0FXQKu0x8prw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@repeaterjs/repeater": "^3.0.4",
+ "@textile/buckets-grpc": "2.6.5",
+ "@textile/context": "^0.11.1",
+ "@textile/crypto": "^4.1.1",
+ "@textile/grpc-authentication": "^3.3.4",
+ "@textile/grpc-connection": "^2.4.1",
+ "@textile/grpc-transport": "^0.4.0",
+ "@textile/hub-grpc": "2.6.5",
+ "@textile/hub-threads-client": "^5.3.4",
+ "@textile/security": "^0.8.1",
+ "@textile/threads-id": "^0.5.1",
+ "abort-controller": "^3.0.0",
+ "cids": "^1.1.4",
+ "it-drain": "^1.0.3",
+ "loglevel": "^1.6.8",
+ "paramap-it": "^0.1.1"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "@textile/buckets-grpc": {
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@textile/buckets-grpc/-/buckets-grpc-2.6.5.tgz",
+ "integrity": "sha512-jySQPKJvqeyeVJZIx4BUlgi3MHxKvVpyV1NtoZXserItLbNNPURaFuCeLi7ujAXjGWIcMMJMbcFfSsetDVvrOQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@types/google-protobuf": "^3.7.4",
+ "google-protobuf": "^3.13.0"
+ }
+ },
+ "@textile/context": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/@textile/context/-/context-0.11.1.tgz",
+ "integrity": "sha512-XP1cBT5OaJVt8LrTCzE/OffnmE4ImwDXiGG7kzU5gCRSx5ftafEwgOOjbQA3HRPl7nWW1YdBsiZf35xSM1KmoQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@textile/security": "^0.8.1"
+ }
+ },
+ "@textile/crypto": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/@textile/crypto/-/crypto-4.1.1.tgz",
+ "integrity": "sha512-n/SxZyNvAD4FEyfX1HXtyNDcK+stUYur0vgwIoi5NzT6jP6gwhFVzf8NI3TBNIP2rInCAuF3Qks8hWS+LWL/YA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/ed2curve": "^0.2.2",
+ "ed2curve": "^0.3.0",
+ "fastestsmallesttextencoderdecoder": "^1.0.22",
+ "multibase": "^3.1.0",
+ "tweetnacl": "^1.0.3"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
+ "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1",
+ "web-encoding": "^1.0.6"
+ }
+ },
+ "tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@textile/grpc-authentication": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/@textile/grpc-authentication/-/grpc-authentication-3.3.4.tgz",
+ "integrity": "sha512-E7pw+MDNu7oWFWiTqDuLZncei+GIwnlSXlRlrRUXITZrf9vBiY+QHKkDrhLyhBpaLGazqB0PERzOFx8a0BYlbw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@textile/context": "^0.11.1",
+ "@textile/crypto": "^4.1.1",
+ "@textile/grpc-connection": "^2.4.1",
+ "@textile/hub-threads-client": "^5.3.4",
+ "@textile/security": "^0.8.1"
+ }
+ },
+ "@textile/grpc-connection": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@textile/grpc-connection/-/grpc-connection-2.4.1.tgz",
+ "integrity": "sha512-8+y9PFcl9VBCludEpXvzputIis3lKYAzExdm8+zvtrr9uv0dCovIS0bu2GJoqU6DJkQSVBP9PA4V6T9THuQpjQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.12.0",
+ "@textile/context": "^0.11.1",
+ "@textile/grpc-transport": "^0.4.0"
+ },
+ "dependencies": {
+ "@improbable-eng/grpc-web": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.12.0.tgz",
+ "integrity": "sha512-uJjgMPngreRTYPBuo6gswMj1gK39Wbqre/RgE0XnSDXJRg6ST7ZhuS53dFE6Vc2CX4jxgl+cO+0B3op8LA4Q0Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "browser-headers": "^0.4.0"
+ }
+ }
+ }
+ },
+ "@textile/grpc-powergate-client": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@textile/grpc-powergate-client/-/grpc-powergate-client-2.6.0.tgz",
+ "integrity": "sha512-5QkU3aClcuqsxPd9Ej2TTYjFUJhXzZzcZ/tSDlZ5jerFnRp09SaL4U+yjnBSe+Dc1k/jv6MUnfjte2vq3YX3Nw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.14.0",
+ "@types/google-protobuf": "^3.15.2",
+ "google-protobuf": "^3.17.2"
+ },
+ "dependencies": {
+ "@improbable-eng/grpc-web": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.0.tgz",
+ "integrity": "sha512-ag1PTMWpBZKGi6GrEcZ4lkU5Qag23Xjo10BmnK9qyx4TMmSVcWmQ3rECirfQzm2uogrM9n1M6xfOpFsJP62ivA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "browser-headers": "^0.4.1"
+ }
+ }
+ }
+ },
+ "@textile/grpc-transport": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@textile/grpc-transport/-/grpc-transport-0.4.0.tgz",
+ "integrity": "sha512-OyHyv963Y0y1qlMkuIp7urWCKbCL0Tjn06ffFo+u82yy6G1YprjTQDE980dUGQMZfK1EF2/OTjqZb04PxHa5zQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@types/ws": "^7.2.6",
+ "isomorphic-ws": "^4.0.1",
+ "loglevel": "^1.6.6",
+ "ws": "^7.2.1"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@textile/hub": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/@textile/hub/-/hub-6.1.2.tgz",
+ "integrity": "sha512-BnmF1539+/939BmmHt+X7TzSrDgD3vkP5tBHZKksjppJn6q+6BJOPYdmWapt6S9YOTQAoCcYkkcr+xUdN8z3mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@textile/buckets": "^6.0.5",
+ "@textile/crypto": "^4.1.1",
+ "@textile/grpc-authentication": "^3.3.4",
+ "@textile/hub-filecoin": "^2.0.5",
+ "@textile/hub-grpc": "2.6.5",
+ "@textile/hub-threads-client": "^5.3.4",
+ "@textile/security": "^0.8.1",
+ "@textile/threads-id": "^0.5.1",
+ "@textile/users": "^6.0.4",
+ "loglevel": "^1.6.8",
+ "multihashes": "3.1.2"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
+ "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1",
+ "web-encoding": "^1.0.6"
+ }
+ },
+ "multihashes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz",
+ "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^3.1.0",
+ "uint8arrays": "^2.0.5",
+ "varint": "^6.0.0"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ }
+ }
+ },
+ "varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@textile/hub-filecoin": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@textile/hub-filecoin/-/hub-filecoin-2.0.5.tgz",
+ "integrity": "sha512-5qwm3aMeR5q6KBbY1tVagUynMDw/Irh6jijgtlv66kQ+CbV4TgQjLsIH14UQkgcAW5hj1CMfqPIabLaBXFtDlA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.12.0",
+ "@textile/context": "^0.11.1",
+ "@textile/crypto": "^4.1.1",
+ "@textile/grpc-authentication": "^3.3.4",
+ "@textile/grpc-connection": "^2.4.1",
+ "@textile/grpc-powergate-client": "^2.3.0",
+ "@textile/hub-grpc": "2.6.5",
+ "@textile/security": "^0.8.1",
+ "event-iterator": "^2.0.0",
+ "loglevel": "^1.6.8"
+ },
+ "dependencies": {
+ "@improbable-eng/grpc-web": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.12.0.tgz",
+ "integrity": "sha512-uJjgMPngreRTYPBuo6gswMj1gK39Wbqre/RgE0XnSDXJRg6ST7ZhuS53dFE6Vc2CX4jxgl+cO+0B3op8LA4Q0Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "browser-headers": "^0.4.0"
+ }
+ },
+ "event-iterator": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz",
+ "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@textile/hub-grpc": {
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@textile/hub-grpc/-/hub-grpc-2.6.5.tgz",
+ "integrity": "sha512-BFjhkBOQD1CebGjP4Hys/6Z5OlzepZTbC11kUSuLG6mt4rb2JiDNw25/UUzylsJCkpyAusob2sttJ9GUh/lv+g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@types/google-protobuf": "^3.7.4",
+ "google-protobuf": "^3.13.0"
+ }
+ },
+ "@textile/hub-threads-client": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/@textile/hub-threads-client/-/hub-threads-client-5.3.4.tgz",
+ "integrity": "sha512-bKbpavWOg2bH9Zuf/aSmg7YOfKzx9yL7xmvPYo1FBaVcos8XeZvsN2gA80oFzTfm88e6xvotNNcRy7GktGDWIQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@textile/context": "^0.11.1",
+ "@textile/hub-grpc": "2.6.5",
+ "@textile/security": "^0.8.1",
+ "@textile/threads-client": "^2.1.2",
+ "@textile/threads-id": "^0.5.1",
+ "@textile/users-grpc": "2.6.5",
+ "loglevel": "^1.7.0"
+ }
+ },
+ "@textile/multiaddr": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@textile/multiaddr/-/multiaddr-0.5.1.tgz",
+ "integrity": "sha512-i/lBZ9j+MgxqcjLl+4lbOCbw5dU3Vbn39aGKma8yBILLPbmCAWWUDGzk5+Rbcnk3giuPBM/nNhJLLSeKzK+rhA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@textile/threads-id": "^0.5.1",
+ "multiaddr": "^8.1.2",
+ "varint": "^6.0.0"
+ },
+ "dependencies": {
+ "varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@textile/security": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@textile/security/-/security-0.8.1.tgz",
+ "integrity": "sha512-FVoBRP7DAL+lh1+CyUQPE3ceG8HO3LMClTPYuNjW+2BAOR+KiKf5vFbeSpe29l6p+A9LF5/r2KWz7bN5cqCs8w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@consento/sync-randombytes": "^1.0.5",
+ "fast-sha256": "^1.3.0",
+ "fastestsmallesttextencoderdecoder": "^1.0.22",
+ "multibase": "^3.1.0"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
+ "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1",
+ "web-encoding": "^1.0.6"
+ }
+ }
+ }
+ },
+ "@textile/threads-client": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@textile/threads-client/-/threads-client-2.1.2.tgz",
+ "integrity": "sha512-N4ItF3hxKmdC3oA1dAENw9uA7Q89q86/foYiNaXLPq5KJ1B3IYP3GdXjxe56wkT6dRRniCIREkRnqDdwVpRtQA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@textile/context": "^0.11.1",
+ "@textile/crypto": "^4.1.1",
+ "@textile/grpc-transport": "^0.4.0",
+ "@textile/multiaddr": "^0.5.1",
+ "@textile/security": "^0.8.1",
+ "@textile/threads-client-grpc": "^1.0.2",
+ "@textile/threads-id": "^0.5.1",
+ "@types/to-json-schema": "^0.2.0",
+ "fastestsmallesttextencoderdecoder": "^1.0.22",
+ "to-json-schema": "^0.2.5"
+ }
+ },
+ "@textile/threads-client-grpc": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@textile/threads-client-grpc/-/threads-client-grpc-1.0.2.tgz",
+ "integrity": "sha512-yrgdUb3VLGW18HKmbzAU8L7NElhnPYKWG9cHZG6EnV3ITS9zOiDydfVSNSkojEDfoFSel5x3eAUiOQbXUrkKng==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@types/google-protobuf": "^3.7.3",
+ "google-protobuf": "^3.13.0"
+ }
+ },
+ "@textile/threads-id": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@textile/threads-id/-/threads-id-0.5.1.tgz",
+ "integrity": "sha512-Nyvp24RsHarLBT3JxEI5akshcKKXA4Yx851bAooReE5G/40cijMuxTeVK4hDM0HdTex4PZRYozpPRXIDFDA96Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@consento/sync-randombytes": "^1.0.4",
+ "multibase": "^3.1.0",
+ "varint": "^6.0.0"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
+ "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1",
+ "web-encoding": "^1.0.6"
+ }
+ },
+ "varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@textile/users": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/@textile/users/-/users-6.0.4.tgz",
+ "integrity": "sha512-/aDwdcsvpW0QrUuXmRAAg41oGjGebwMUGK5czY0gcI/+Av6W8PicHJk4O9ft5ByfwXWzUMyz3ODWH45OYi0TVQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@textile/buckets-grpc": "2.6.5",
+ "@textile/context": "^0.11.1",
+ "@textile/crypto": "^4.1.1",
+ "@textile/grpc-authentication": "^3.3.4",
+ "@textile/grpc-connection": "^2.4.1",
+ "@textile/grpc-transport": "^0.4.0",
+ "@textile/hub-grpc": "2.6.5",
+ "@textile/hub-threads-client": "^5.3.4",
+ "@textile/security": "^0.8.1",
+ "@textile/threads-id": "^0.5.1",
+ "@textile/users-grpc": "2.6.5",
+ "event-iterator": "^2.0.0",
+ "loglevel": "^1.7.0"
+ },
+ "dependencies": {
+ "event-iterator": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz",
+ "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@textile/users-grpc": {
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@textile/users-grpc/-/users-grpc-2.6.5.tgz",
+ "integrity": "sha512-JMxkze3eyxyuxhbuMrqdbVTqp5wQmv1YoXAq1gJdAYYpcOX5S4ov6arI5NPy3weF3+KP3U+BX/HdR8dIvkFAcw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@improbable-eng/grpc-web": "^0.13.0",
+ "@types/google-protobuf": "^3.7.4",
+ "google-protobuf": "^3.13.0"
+ }
+ },
+ "@truffle/abi-utils": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.1.tgz",
+ "integrity": "sha512-Ba05gGBzTqjzgpQ8Fpfny47HD3aMn7+LWZ44A0HXdMgn1d5bxjR8SPYlXV5jo5fpOOvsghfQTvSUk0G9fg2fIg==",
+ "dev": true,
+ "requires": {
+ "change-case": "3.0.2",
+ "faker": "^5.3.1",
+ "fast-check": "^2.12.1"
+ }
+ },
+ "@truffle/blockchain-utils": {
+ "version": "0.0.25",
+ "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.0.25.tgz",
+ "integrity": "sha512-XA5m0BfAWtysy5ChHyiAf1fXbJxJXphKk+eZ9Rb9Twi6fn3Jg4gnHNwYXJacYFEydqT5vr2s4Ou812JHlautpw==",
+ "dev": true,
+ "requires": {
+ "source-map-support": "^0.5.19"
+ }
+ },
+ "@truffle/code-utils": {
+ "version": "1.2.27",
+ "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-1.2.27.tgz",
+ "integrity": "sha512-1vnJYup1KDlXWsDbEinMFhWN1VyqRWxWzDN4UhdfqCUXrEWDBpGmKeEPLwwKYuUBY43TDPpnwq1/cGGN0PjOeA==",
+ "dev": true,
+ "requires": {
+ "cbor": "^5.1.0"
+ }
+ },
+ "@truffle/codec": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.7.1.tgz",
+ "integrity": "sha512-mNd6KnW6J0UB1zafGBXDlTEbCMvWpmPAJmzv7aF/nAIaN/F8UePSCiQ1OTQP39Rprj6GFiCCaWVnBAwum6UGSg==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "bn.js": "^4.11.8",
+ "borc": "^2.1.2",
+ "debug": "^4.1.0",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.partition": "^4.6.0",
+ "lodash.sum": "^4.0.2",
+ "semver": "^6.3.0",
+ "source-map-support": "^0.5.19",
+ "utf8": "^3.0.0",
+ "web3-utils": "1.2.9"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "@truffle/config": {
+ "version": "1.2.42",
+ "resolved": "https://registry.npmjs.org/@truffle/config/-/config-1.2.42.tgz",
+ "integrity": "sha512-Nfn0tR3Wuj3PoC46AskNa8MOPU1M51NNXZConY11eWJtkalXielZPOtTLRKX3W45M2M7b7maT7L/aWl7lrsIow==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@truffle/error": "^0.0.14",
+ "@truffle/events": "^0.0.12",
+ "@truffle/provider": "^0.2.32",
+ "configstore": "^4.0.0",
+ "find-up": "^2.1.0",
+ "lodash.assignin": "^4.2.0",
+ "lodash.merge": "^4.6.2",
+ "module": "^1.2.5",
+ "original-require": "^1.0.1"
+ },
+ "dependencies": {
+ "@truffle/error": {
+ "version": "0.0.14",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.14.tgz",
+ "integrity": "sha512-utJx+SZYoMqk8wldQG4gCVKhV8GwMJbWY7sLXFT/D8wWZTnE2peX7URFJh/cxkjTRCO328z1s2qewkhyVsu2HA==",
+ "dev": true,
+ "optional": true
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true,
+ "optional": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@truffle/contract": {
+ "version": "4.3.19",
+ "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.3.19.tgz",
+ "integrity": "sha512-asBwoxUePLwNAuYfHO/SvyZyqFQ9QMeUieJ6PXD9DBrUdNpjgJvk+WHYnXH4bWHgHakbTpL1MEBa1qmcAL+LMw==",
+ "dev": true,
+ "requires": {
+ "@truffle/blockchain-utils": "^0.0.30",
+ "@truffle/contract-schema": "^3.4.1",
+ "@truffle/debug-utils": "^5.0.19",
+ "@truffle/error": "^0.0.14",
+ "@truffle/interface-adapter": "^0.5.0",
+ "bignumber.js": "^7.2.1",
+ "ethereum-ens": "^0.8.0",
+ "ethers": "^4.0.32",
+ "web3": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "@truffle/blockchain-utils": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.0.30.tgz",
+ "integrity": "sha512-3hkHSHxVavoALcxpBqD4YwHuCmkBrvjq6PAGw93i6WCB+pnejBD5sFjVCiZZKCogh4kGObxxcwu53+3dyT/6IQ==",
+ "dev": true
+ },
+ "@truffle/codec": {
+ "version": "0.10.9",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.10.9.tgz",
+ "integrity": "sha512-+xBcn1mTAqBhVaFULkMC+pJnUp3prL9QZtE5I4XhlCar3QLkSGR9Oy+Bm5qZwH72rctBRD/lGp2ezUo/oFc2MQ==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "bn.js": "^5.1.3",
+ "cbor": "^5.1.0",
+ "debug": "^4.3.1",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.partition": "^4.6.0",
+ "lodash.sum": "^4.0.2",
+ "semver": "^7.3.4",
+ "utf8": "^3.0.0",
+ "web3-utils": "1.3.6"
+ }
+ },
+ "@truffle/debug-utils": {
+ "version": "5.0.19",
+ "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-5.0.19.tgz",
+ "integrity": "sha512-wCF5fwyJTHGBwQD+m8npRCrUIgSPw9jRiZlvyuE+TDcVNBpV4A1NcdsTJR/E5lAViLDTp9lpelsgA/Mw65kU+w==",
+ "dev": true,
+ "requires": {
+ "@truffle/codec": "^0.10.9",
+ "@trufflesuite/chromafi": "^2.2.2",
+ "bn.js": "^5.1.3",
+ "chalk": "^2.4.2",
+ "debug": "^4.3.1",
+ "highlight.js": "^10.4.0",
+ "highlightjs-solidity": "^1.1.0"
+ }
+ },
+ "@truffle/error": {
+ "version": "0.0.14",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.14.tgz",
+ "integrity": "sha512-utJx+SZYoMqk8wldQG4gCVKhV8GwMJbWY7sLXFT/D8wWZTnE2peX7URFJh/cxkjTRCO328z1s2qewkhyVsu2HA==",
+ "dev": true
+ },
+ "@truffle/interface-adapter": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.0.tgz",
+ "integrity": "sha512-0MRt9orgQqo0knyKDy0fGRqnI+alkuK0BUAvHB1/VUJgCKyWBNAUUZO5gPjuj75qCjV4Rw+W6SKDQpn2xOWsXw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.1.3",
+ "ethers": "^4.0.32",
+ "web3": "1.3.6"
+ }
+ },
+ "bignumber.js": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
+ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "ethers": {
+ "version": "4.0.48",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.48.tgz",
+ "integrity": "sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g==",
+ "dev": true,
+ "requires": {
+ "aes-js": "3.0.0",
+ "bn.js": "^4.4.0",
+ "elliptic": "6.5.3",
+ "hash.js": "1.1.3",
+ "js-sha3": "0.5.7",
+ "scrypt-js": "2.0.4",
+ "setimmediate": "1.0.4",
+ "uuid": "2.0.1",
+ "xmlhttprequest": "1.8.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ }
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
+ "dev": true
+ },
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "@truffle/contract-schema": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.1.tgz",
+ "integrity": "sha512-2gvu6gxJtbbI67H2Bwh2rBuej+1uCV3z4zKFzQZP00hjNoL+QfybrmBcOVB88PflBeEB+oUXuwQfDoKX3TXlnQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.0",
+ "crypto-js": "^3.1.9-1",
+ "debug": "^4.3.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "@truffle/db": {
+ "version": "0.5.14",
+ "resolved": "https://registry.npmjs.org/@truffle/db/-/db-0.5.14.tgz",
+ "integrity": "sha512-rTRhRqPsG03Lv6y43n5CAZF9q40NK1D2VwqTI9xD7lU/klYYHtKklgWAIgqn4TmVS5tP2MGVNzgdr0tMzJQE0Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@truffle/abi-utils": "^0.2.1",
+ "@truffle/code-utils": "^1.2.27",
+ "@truffle/config": "^1.2.42",
+ "apollo-server": "^2.18.2",
+ "debug": "^4.3.1",
+ "fs-extra": "^9.1.0",
+ "graphql": "^15.3.0",
+ "graphql-tag": "^2.11.0",
+ "graphql-tools": "^6.2.4",
+ "json-stable-stringify": "^1.0.1",
+ "jsondown": "^1.0.0",
+ "pascal-case": "^2.0.1",
+ "pluralize": "^8.0.0",
+ "pouchdb": "7.1.1",
+ "pouchdb-adapter-memory": "^7.1.1",
+ "pouchdb-adapter-node-websql": "^7.0.0",
+ "pouchdb-debug": "^7.1.1",
+ "pouchdb-find": "^7.0.0",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true,
+ "optional": true
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true,
+ "optional": true
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true,
+ "optional": true
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true,
+ "optional": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "@truffle/debug-utils": {
+ "version": "4.2.14",
+ "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-4.2.14.tgz",
+ "integrity": "sha512-g5UTX2DPTzrjRjBJkviGI2IrQRTTSvqjmNWCNZNXP+vgQKNxL9maLZhQ6oA3BuuByVW/kusgYeXt8+W1zynC8g==",
+ "dev": true,
+ "requires": {
+ "@truffle/codec": "^0.7.1",
+ "@trufflesuite/chromafi": "^2.2.1",
+ "chalk": "^2.4.2",
+ "debug": "^4.1.0",
+ "highlight.js": "^9.15.8",
+ "highlightjs-solidity": "^1.0.18"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "@truffle/debugger": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-9.0.1.tgz",
+ "integrity": "sha512-1Om8f6LhHOYaYi3oV7+OoP4ZPZ9mkO+sHIsBvSU57Jptc3FnL3gYHV/fAhIih/dMWFDpywOTWKVMiK6vYq3bWw==",
+ "dev": true,
+ "requires": {
+ "@truffle/abi-utils": "^0.2.1",
+ "@truffle/codec": "^0.10.9",
+ "@truffle/source-map-utils": "^1.3.43",
+ "bn.js": "^5.1.3",
+ "debug": "^4.3.1",
+ "json-pointer": "^0.6.0",
+ "json-stable-stringify": "^1.0.1",
+ "lodash.flatten": "^4.4.0",
+ "lodash.merge": "^4.6.2",
+ "lodash.sum": "^4.0.2",
+ "lodash.zipwith": "^4.2.0",
+ "redux": "^3.7.2",
+ "redux-cli-logger": "^2.0.1",
+ "redux-saga": "1.0.0",
+ "remote-redux-devtools": "^0.5.12",
+ "reselect-tree": "^1.3.4",
+ "semver": "^7.3.4",
+ "web3": "1.3.6",
+ "web3-eth-abi": "1.3.6"
+ },
+ "dependencies": {
+ "@truffle/codec": {
+ "version": "0.10.9",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.10.9.tgz",
+ "integrity": "sha512-+xBcn1mTAqBhVaFULkMC+pJnUp3prL9QZtE5I4XhlCar3QLkSGR9Oy+Bm5qZwH72rctBRD/lGp2ezUo/oFc2MQ==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "bn.js": "^5.1.3",
+ "cbor": "^5.1.0",
+ "debug": "^4.3.1",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.partition": "^4.6.0",
+ "lodash.sum": "^4.0.2",
+ "semver": "^7.3.4",
+ "utf8": "^3.0.0",
+ "web3-utils": "1.3.6"
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "@truffle/error": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.11.tgz",
+ "integrity": "sha512-ju6TucjlJkfYMmdraYY/IBJaFb+Sa+huhYtOoyOJ+G29KcgytUVnDzKGwC7Kgk6IsxQMm62Mc1E0GZzFbGGipw==",
+ "dev": true
+ },
+ "@truffle/events": {
+ "version": "0.0.12",
+ "resolved": "https://registry.npmjs.org/@truffle/events/-/events-0.0.12.tgz",
+ "integrity": "sha512-Atblkx0M/Ct+uzx41HpKLLdHxB6p7aQ9jXw/r5KCRnbMBbOdoYWF+PCebGFkLvVg7N0Ll2dHpDvB+PDGP//cew==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "emittery": "^0.4.1",
+ "ora": "^3.4.0"
+ }
+ },
+ "@truffle/interface-adapter": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.4.24.tgz",
+ "integrity": "sha512-2Zho4dJbm/XGwNleY7FdxcjXiAR3SzdGklgrAW4N/YVmltaJv6bT56ACIbPNN6AdzkTSTO65OlsB/63sfSa/VA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.1.3",
+ "ethers": "^4.0.32",
+ "web3": "1.3.6"
+ },
+ "dependencies": {
+ "elliptic": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "ethers": {
+ "version": "4.0.48",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.48.tgz",
+ "integrity": "sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g==",
+ "dev": true,
+ "requires": {
+ "aes-js": "3.0.0",
+ "bn.js": "^4.4.0",
+ "elliptic": "6.5.3",
+ "hash.js": "1.1.3",
+ "js-sha3": "0.5.7",
+ "scrypt-js": "2.0.4",
+ "setimmediate": "1.0.4",
+ "uuid": "2.0.1",
+ "xmlhttprequest": "1.8.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=",
+ "dev": true
+ }
+ }
+ },
+ "@truffle/preserve": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@truffle/preserve/-/preserve-0.2.2.tgz",
+ "integrity": "sha512-yg2AII9X2o9kwLvMXGJ9jcmrIhKtMynXFP19LacA27MAOV/v+xjauXL9irfcd/9zpSv2b1DACYbeTyufpsatvw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "spinnies": "^0.5.1"
+ }
+ },
+ "@truffle/preserve-fs": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@truffle/preserve-fs/-/preserve-fs-0.2.2.tgz",
+ "integrity": "sha512-t5YPqVfdEdpC85QRGxWPmgq8/iC4dDE2PSmmt0KKwtSx2kVw+DCXLUdl82T6Bp5En5Hbg8Pwehi1h37OAJ7dWQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@truffle/preserve": "^0.2.2"
+ }
+ },
+ "@truffle/preserve-to-buckets": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@truffle/preserve-to-buckets/-/preserve-to-buckets-0.2.2.tgz",
+ "integrity": "sha512-VxfnLQ4NDt2t/MrM3FAt1TfOHzkusgPgyltO/cTFYDj+ljXWlECPY9XZgQ60kpWLbNzq6SXjJuWYnCYEmTxghA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@textile/hub": "^6.0.2",
+ "@truffle/preserve": "^0.2.2",
+ "cids": "^1.1.5",
+ "ipfs-http-client": "^48.2.2",
+ "isomorphic-ws": "^4.0.1",
+ "iter-tools": "^7.0.2",
+ "ws": "^7.4.3"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ },
+ "ws": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@truffle/preserve-to-filecoin": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@truffle/preserve-to-filecoin/-/preserve-to-filecoin-0.2.2.tgz",
+ "integrity": "sha512-cg5uFp1HTlVpVH0dTpv+0nR6v0SZP6673m2NaFOjYpTtbN4AA+ijvXd0XPdDNitw/6So+vDcPpzuE79RkY5zSg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@truffle/preserve": "^0.2.2",
+ "cids": "^1.1.5",
+ "delay": "^5.0.0",
+ "filecoin.js": "^0.0.5-alpha",
+ "node-fetch": "^2.6.0"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "@truffle/preserve-to-ipfs": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@truffle/preserve-to-ipfs/-/preserve-to-ipfs-0.2.2.tgz",
+ "integrity": "sha512-6y/237oLtkJbDRJb1Lj6xblz1iaQXfbjJdvtTAxwX3Z9bcMQmv33pDaUTEgkYXc+dYaOf8hQi511xEoqJXQx6A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@truffle/preserve": "^0.2.2",
+ "cids": "^1.1.5",
+ "ipfs-http-client": "^48.2.2",
+ "iter-tools": "^7.0.2"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "@truffle/provider": {
+ "version": "0.2.32",
+ "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.2.32.tgz",
+ "integrity": "sha512-dzO7bnCO5iSLfoHH/SIIYQ5dUi9oVxtRE1qJ89dwKuUgtvaWOTPtZK1MLq7Ai+wrgNrYFKBVpxQjkCPXGdMWWw==",
+ "dev": true,
+ "requires": {
+ "@truffle/error": "^0.0.14",
+ "@truffle/interface-adapter": "^0.5.0",
+ "web3": "1.3.6"
+ },
+ "dependencies": {
+ "@truffle/error": {
+ "version": "0.0.14",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.14.tgz",
+ "integrity": "sha512-utJx+SZYoMqk8wldQG4gCVKhV8GwMJbWY7sLXFT/D8wWZTnE2peX7URFJh/cxkjTRCO328z1s2qewkhyVsu2HA==",
+ "dev": true
+ },
+ "@truffle/interface-adapter": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.0.tgz",
+ "integrity": "sha512-0MRt9orgQqo0knyKDy0fGRqnI+alkuK0BUAvHB1/VUJgCKyWBNAUUZO5gPjuj75qCjV4Rw+W6SKDQpn2xOWsXw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.1.3",
+ "ethers": "^4.0.32",
+ "web3": "1.3.6"
+ }
+ },
+ "elliptic": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "ethers": {
+ "version": "4.0.48",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.48.tgz",
+ "integrity": "sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g==",
+ "dev": true,
+ "requires": {
+ "aes-js": "3.0.0",
+ "bn.js": "^4.4.0",
+ "elliptic": "6.5.3",
+ "hash.js": "1.1.3",
+ "js-sha3": "0.5.7",
+ "scrypt-js": "2.0.4",
+ "setimmediate": "1.0.4",
+ "uuid": "2.0.1",
+ "xmlhttprequest": "1.8.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=",
+ "dev": true
+ }
+ }
+ },
+ "@truffle/source-map-utils": {
+ "version": "1.3.43",
+ "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.43.tgz",
+ "integrity": "sha512-QDXNnvJO2R/5eTpTgiZFggkqKcDEA0LoxdVGJKCoMY5hCwSoG+ybpmWtsMBW+1hCYewxjvb5yGgYkhnTv/fs0A==",
+ "dev": true,
+ "requires": {
+ "@truffle/code-utils": "^1.2.27",
+ "@truffle/codec": "^0.10.9",
+ "debug": "^4.3.1",
+ "json-pointer": "^0.6.0",
+ "node-interval-tree": "^1.3.3",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "@truffle/codec": {
+ "version": "0.10.9",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.10.9.tgz",
+ "integrity": "sha512-+xBcn1mTAqBhVaFULkMC+pJnUp3prL9QZtE5I4XhlCar3QLkSGR9Oy+Bm5qZwH72rctBRD/lGp2ezUo/oFc2MQ==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "bn.js": "^5.1.3",
+ "cbor": "^5.1.0",
+ "debug": "^4.3.1",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.escaperegexp": "^4.1.2",
+ "lodash.partition": "^4.6.0",
+ "lodash.sum": "^4.0.2",
+ "semver": "^7.3.4",
+ "utf8": "^3.0.0",
+ "web3-utils": "1.3.6"
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "@trufflesuite/chromafi": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-2.2.2.tgz",
+ "integrity": "sha512-mItQwVBsb8qP/vaYHQ1kDt2vJLhjoEXJptT6y6fJGvFophMFhOI/NsTVUa0nJL1nyMeFiS6hSYuNVdpQZzB1gA==",
+ "dev": true,
+ "requires": {
+ "ansi-mark": "^1.0.0",
+ "ansi-regex": "^3.0.0",
+ "array-uniq": "^1.0.3",
+ "camelcase": "^4.1.0",
+ "chalk": "^2.3.2",
+ "cheerio": "^1.0.0-rc.2",
+ "detect-indent": "^5.0.0",
+ "he": "^1.1.1",
+ "highlight.js": "^10.4.1",
+ "lodash.merge": "^4.6.2",
+ "min-indent": "^1.0.0",
+ "strip-ansi": "^4.0.0",
+ "strip-indent": "^2.0.0",
+ "super-split": "^1.1.0"
+ },
+ "dependencies": {
+ "highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
+ "dev": true
+ }
+ }
+ },
+ "@types/abstract-leveldown": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-5.0.1.tgz",
+ "integrity": "sha512-wYxU3kp5zItbxKmeRYCEplS2MW7DzyBnxPGj+GJVHZEUZiK/nn5Ei1sUFgURDh+X051+zsGe28iud3oHjrYWQQ==",
+ "dev": true
+ },
+ "@types/accepts": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/bignumber.js": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz",
+ "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==",
+ "dev": true,
+ "requires": {
+ "bignumber.js": "*"
+ }
+ },
+ "@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
+ "dev": true,
+ "requires": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/chai": {
+ "version": "4.2.18",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.18.tgz",
+ "integrity": "sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ==",
+ "dev": true
+ },
+ "@types/concat-stream": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-OU2+C7X+5Gs42JZzXoto7yOQ0A0=",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/connect": {
+ "version": "3.4.34",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz",
+ "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==",
+ "dev": true
+ },
+ "@types/cookies": {
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.6.tgz",
+ "integrity": "sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==",
+ "dev": true,
+ "requires": {
+ "@types/connect": "*",
+ "@types/express": "*",
+ "@types/keygrip": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/cors": {
+ "version": "2.8.10",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz",
+ "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@types/ed2curve": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@types/ed2curve/-/ed2curve-0.2.2.tgz",
+ "integrity": "sha512-G1sTX5xo91ydevQPINbL2nfgVAj/s1ZiqZxC8OCWduwu+edoNGUm5JXtTkg9F3LsBZbRI46/0HES4CPUE2wc9g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^1.0.0"
+ },
+ "dependencies": {
+ "tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@types/express": {
+ "version": "4.17.12",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz",
+ "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==",
+ "dev": true,
+ "requires": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.18",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "@types/express-serve-static-core": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.21.tgz",
+ "integrity": "sha512-gwCiEZqW6f7EoR8TTEfalyEhb1zA5jQJnRngr97+3pzMaO1RKoI1w2bw07TK72renMUVWcWS5mLI6rk1NqN0nA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
+ "@types/form-data": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz",
+ "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/fs-capacitor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz",
+ "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
+ "dev": true,
+ "requires": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/google-protobuf": {
+ "version": "3.15.2",
+ "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.2.tgz",
+ "integrity": "sha512-ubeqvw7sl6CdgeiIilsXB2jIFoD/D0F+/LIEp7xEBEXRNtDJcf05FRINybsJtL7GlkWOUVn6gJs2W9OF+xI6lg==",
+ "dev": true,
+ "optional": true
+ },
+ "@types/http-assert": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz",
+ "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==",
+ "dev": true
+ },
+ "@types/http-errors": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz",
+ "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==",
+ "dev": true
+ },
+ "@types/json-schema": {
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
+ "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
+ "dev": true,
+ "optional": true
+ },
+ "@types/keygrip": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz",
+ "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==",
+ "dev": true
+ },
+ "@types/koa": {
+ "version": "2.13.3",
+ "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.3.tgz",
+ "integrity": "sha512-TaujBV+Dhe/FvmSMZJtCFBms+bqQacgUebk/M2C2tq8iGmHE/DDf4DcW2Hc7NqusVZmy5xzrWOjtdPKNP+fTfw==",
+ "dev": true,
+ "requires": {
+ "@types/accepts": "*",
+ "@types/content-disposition": "*",
+ "@types/cookies": "*",
+ "@types/http-assert": "*",
+ "@types/http-errors": "*",
+ "@types/keygrip": "*",
+ "@types/koa-compose": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/koa-compose": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz",
+ "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==",
+ "dev": true,
+ "requires": {
+ "@types/koa": "*"
+ }
+ },
+ "@types/levelup": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@types/levelup/-/levelup-4.3.1.tgz",
+ "integrity": "sha512-n//PeTpbHLjMLTIgW5B/g06W/6iuTBHuvUka2nFL9APMSVMNe2r4enADfu3CIE9IyV9E+uquf9OEQQqrDeg24A==",
+ "dev": true,
+ "requires": {
+ "@types/abstract-leveldown": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/long": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
+ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==",
+ "dev": true,
+ "optional": true
+ },
+ "@types/lru-cache": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.0.tgz",
+ "integrity": "sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w==",
+ "dev": true
+ },
+ "@types/mime": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
+ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
+ "dev": true
+ },
+ "@types/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "12.20.14",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.14.tgz",
+ "integrity": "sha512-iFJOS5Q470FF+r4Ol2pSley7/wCNVqf+jgjhtxLLaJcDs+To2iCxlXIkJXrGLD9w9G/oJ9ibySu7z92DCwr7Pg==",
+ "dev": true
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
+ "@types/pbkdf2": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz",
+ "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/qs": {
+ "version": "6.9.6",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz",
+ "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==",
+ "dev": true
+ },
+ "@types/range-parser": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
+ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==",
+ "dev": true
+ },
+ "@types/secp256k1": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.2.tgz",
+ "integrity": "sha512-QMg+9v0bbNJ2peLuHRWxzmy0HRJIG6gFZNhaRSp7S3ggSbCCxiqQB2/ybvhXyhHOCequpNkrx7OavNhrWOsW0A==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/serve-static": {
+ "version": "1.13.9",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz",
+ "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==",
+ "dev": true,
+ "requires": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "@types/to-json-schema": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@types/to-json-schema/-/to-json-schema-0.2.0.tgz",
+ "integrity": "sha512-9fqRjNFSSxJ8dQrE4v8gThS5ftxdFj8Q0y8hAjaF+uN+saJRxLiJdtFaDd9sv3bhzwcB2oDJpT/1ZelHnexbLw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/json-schema": "*"
+ }
+ },
+ "@types/websocket": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.2.tgz",
+ "integrity": "sha512-B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/ws": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.4.tgz",
+ "integrity": "sha512-d/7W23JAXPodQNbOZNXvl2K+bqAQrCMwlh/nuQsPSQk6Fq0opHoPrUw43aHsvSbIiQPr8Of2hkFbnz1XBFVyZQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/zen-observable": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.2.tgz",
+ "integrity": "sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg==",
+ "dev": true,
+ "optional": true
+ },
+ "@vue/component-compiler-utils": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz",
+ "integrity": "sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==",
+ "dev": true,
+ "requires": {
+ "consolidate": "^0.15.1",
+ "hash-sum": "^1.0.2",
+ "lru-cache": "^4.1.2",
+ "merge-source-map": "^1.1.0",
+ "postcss": "^7.0.14",
+ "postcss-selector-parser": "^6.0.2",
+ "prettier": "^1.18.2",
+ "source-map": "~0.6.1",
+ "vue-template-es2015-compiler": "^1.9.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "prettier": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
+ "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+ "dev": true,
+ "optional": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ }
+ }
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+ "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+ "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+ "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+ "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-code-frame": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+ "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "@webassemblyjs/helper-fsm": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+ "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-module-context": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+ "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+ "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+ "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+ "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
+ "dev": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+ "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
+ "dev": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+ "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==",
+ "dev": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+ "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/helper-wasm-section": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-opt": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+ "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+ "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+ "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "@webassemblyjs/wast-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+ "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-code-frame": "1.9.0",
+ "@webassemblyjs/helper-fsm": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+ "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@wry/context": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.0.tgz",
+ "integrity": "sha512-sAgendOXR8dM7stJw3FusRxFHF/ZinU0lffsA2YTyyIOfic86JX02qlPqPVqJNZJPAxFt+2EE8bvq6ZlS0Kf+Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "@wry/equality": {
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz",
+ "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "@wry/trie": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.0.tgz",
+ "integrity": "sha512-Yw1akIogPhAT6XPYsRHlZZIS0tIGmAl9EYXHi2scf7LPKKqdqmow/Hu4kEqP2cJR3EjaU/9L0ZlAjFf3hFxmug==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true
+ },
+ "@zondax/filecoin-signing-tools": {
+ "version": "github:Digital-MOB-Filecoin/filecoin-signing-tools-js#8f8e92157cac2556d35cab866779e9a8ea8a4e25",
+ "from": "github:Digital-MOB-Filecoin/filecoin-signing-tools-js",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "axios": "^0.20.0",
+ "base32-decode": "^1.0.0",
+ "base32-encode": "^1.1.1",
+ "bip32": "^2.0.5",
+ "bip39": "^3.0.2",
+ "blakejs": "^1.1.0",
+ "bn.js": "^5.1.2",
+ "ipld-dag-cbor": "^0.17.0",
+ "leb128": "0.0.5",
+ "secp256k1": "^4.0.1"
+ },
+ "dependencies": {
+ "axios": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz",
+ "integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "follow-redirects": "^1.10.0"
+ }
+ }
+ }
+ },
+ "@zxing/text-encoding": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz",
+ "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==",
+ "dev": true,
+ "optional": true
+ },
+ "abab": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
+ "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
+ "dev": true,
+ "optional": true
+ },
+ "abbrev": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
+ "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
+ "dev": true
+ },
+ "abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "dev": true,
+ "requires": {
+ "event-target-shim": "^5.0.0"
+ }
+ },
+ "abstract-leveldown": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz",
+ "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "immediate": "^3.2.3",
+ "level-concat-iterator": "~2.0.0",
+ "level-supports": "~1.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true
+ },
+ "acorn-globals": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
+ "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "acorn": "^2.1.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+ "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "acorn-jsx": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
+ "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
+ "dev": true
+ },
+ "address": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz",
+ "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==",
+ "dev": true
+ },
+ "adm-zip": {
+ "version": "0.4.16",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
+ "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
+ "dev": true
+ },
+ "aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=",
+ "dev": true
+ },
+ "agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dev": true,
+ "requires": {
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+ "dev": true
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true,
+ "optional": true
+ },
+ "ansi-colors": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.21.3"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true
+ }
+ }
+ },
+ "ansi-mark": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/ansi-mark/-/ansi-mark-1.0.4.tgz",
+ "integrity": "sha1-HNS6jVfxXxCdaq9uycqXhsik7mw=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0",
+ "array-uniq": "^1.0.3",
+ "chalk": "^2.3.2",
+ "strip-ansi": "^4.0.0",
+ "super-split": "^1.1.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "antlr4": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.7.1.tgz",
+ "integrity": "sha512-haHyTW7Y9joE5MVs37P2lNYfU2RWBLfcRDD8OWldcdZm5TiCE91B5Xl1oWSwiDUSd4rlExpt2pu1fksYQjRBYQ==",
+ "dev": true
+ },
+ "antlr4ts": {
+ "version": "0.5.0-alpha.4",
+ "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz",
+ "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==",
+ "dev": true
+ },
+ "any-signal": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz",
+ "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "native-abort-controller": "^1.0.3"
+ },
+ "dependencies": {
+ "native-abort-controller": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz",
+ "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "apollo-cache-control": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz",
+ "integrity": "sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-plugin-base": "^0.13.0"
+ }
+ },
+ "apollo-datasource": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.9.0.tgz",
+ "integrity": "sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-server-caching": "^0.7.0",
+ "apollo-server-env": "^3.1.0"
+ }
+ },
+ "apollo-graphql": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.9.3.tgz",
+ "integrity": "sha512-rcAl2E841Iko4kSzj4Pt3PRBitmyq1MvoEmpl04TQSpGnoVgl1E/ZXuLBYxMTSnEAm7umn2IsoY+c6Ll9U/10A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-js-pure": "^3.10.2",
+ "lodash.sortby": "^4.7.0",
+ "sha.js": "^2.4.11"
+ }
+ },
+ "apollo-link": {
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz",
+ "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-utilities": "^1.3.0",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.9.3",
+ "zen-observable-ts": "^0.8.21"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "apollo-reporting-protobuf": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz",
+ "integrity": "sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@apollo/protobufjs": "1.2.2"
+ }
+ },
+ "apollo-server": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-2.25.0.tgz",
+ "integrity": "sha512-cIXrEWzYWH2y4P4HrfTS0ql6UfJuPO1czb5u9Ch8bLPcWcL1lC84ZbsHzQHNNMLkNApSCAgoS3GZja7dF111Hw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-server-core": "^2.25.0",
+ "apollo-server-express": "^2.25.0",
+ "express": "^4.0.0",
+ "graphql-subscriptions": "^1.0.0",
+ "graphql-tools": "^4.0.8",
+ "stoppable": "^1.1.0"
+ },
+ "dependencies": {
+ "graphql-tools": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz",
+ "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-link": "^1.2.14",
+ "apollo-utilities": "^1.0.1",
+ "deprecated-decorator": "^0.1.6",
+ "iterall": "^1.1.3",
+ "uuid": "^3.1.0"
+ }
+ }
+ }
+ },
+ "apollo-server-caching": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz",
+ "integrity": "sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "apollo-server-core": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.25.0.tgz",
+ "integrity": "sha512-LqDmY+R5dcb6zj/RgM7P8NnURV2XdQFIF4rY7g80hD9mc2WSCKHF6eH+lHG0sFPW7f8iBr+lJ4LyETuWEVF0hg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@apollographql/apollo-tools": "^0.5.0",
+ "@apollographql/graphql-playground-html": "1.6.27",
+ "@apollographql/graphql-upload-8-fork": "^8.1.3",
+ "@josephg/resolvable": "^1.0.0",
+ "@types/ws": "^7.0.0",
+ "apollo-cache-control": "^0.14.0",
+ "apollo-datasource": "^0.9.0",
+ "apollo-graphql": "^0.9.0",
+ "apollo-reporting-protobuf": "^0.8.0",
+ "apollo-server-caching": "^0.7.0",
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-errors": "^2.5.0",
+ "apollo-server-plugin-base": "^0.13.0",
+ "apollo-server-types": "^0.9.0",
+ "apollo-tracing": "^0.15.0",
+ "async-retry": "^1.2.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graphql-extensions": "^0.15.0",
+ "graphql-tag": "^2.11.0",
+ "graphql-tools": "^4.0.8",
+ "loglevel": "^1.6.7",
+ "lru-cache": "^6.0.0",
+ "sha.js": "^2.4.11",
+ "subscriptions-transport-ws": "^0.9.11",
+ "uuid": "^8.0.0",
+ "ws": "^6.0.0"
+ },
+ "dependencies": {
+ "graphql-tools": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz",
+ "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-link": "^1.2.14",
+ "apollo-utilities": "^1.0.1",
+ "deprecated-decorator": "^0.1.6",
+ "iterall": "^1.1.3",
+ "uuid": "^3.1.0"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "optional": true
+ },
+ "ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
+ "apollo-server-env": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.1.0.tgz",
+ "integrity": "sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "node-fetch": "^2.6.1",
+ "util.promisify": "^1.0.0"
+ }
+ },
+ "apollo-server-errors": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz",
+ "integrity": "sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==",
+ "dev": true,
+ "optional": true
+ },
+ "apollo-server-express": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.25.0.tgz",
+ "integrity": "sha512-FCTisD+VB1LCcTjjhKvQZ/dkly83KVlioFMgcPjW1X/kzCznRT3aQoVn9bQHlzQr7NnpwFseb4Rhd2KKD4wKEA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@apollographql/graphql-playground-html": "1.6.27",
+ "@types/accepts": "^1.3.5",
+ "@types/body-parser": "1.19.0",
+ "@types/cors": "2.8.10",
+ "@types/express": "4.17.11",
+ "@types/express-serve-static-core": "4.17.19",
+ "accepts": "^1.3.5",
+ "apollo-server-core": "^2.25.0",
+ "apollo-server-types": "^0.9.0",
+ "body-parser": "^1.18.3",
+ "cors": "^2.8.5",
+ "express": "^4.17.1",
+ "graphql-subscriptions": "^1.0.0",
+ "graphql-tools": "^4.0.8",
+ "parseurl": "^1.3.2",
+ "subscriptions-transport-ws": "^0.9.16",
+ "type-is": "^1.6.16"
+ },
+ "dependencies": {
+ "@types/express": {
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz",
+ "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.18",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "@types/express-serve-static-core": {
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz",
+ "integrity": "sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
+ "graphql-tools": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.8.tgz",
+ "integrity": "sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-link": "^1.2.14",
+ "apollo-utilities": "^1.0.1",
+ "deprecated-decorator": "^0.1.6",
+ "iterall": "^1.1.3",
+ "uuid": "^3.1.0"
+ }
+ }
+ }
+ },
+ "apollo-server-plugin-base": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz",
+ "integrity": "sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-server-types": "^0.9.0"
+ }
+ },
+ "apollo-server-types": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.9.0.tgz",
+ "integrity": "sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-reporting-protobuf": "^0.8.0",
+ "apollo-server-caching": "^0.7.0",
+ "apollo-server-env": "^3.1.0"
+ }
+ },
+ "apollo-tracing": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.15.0.tgz",
+ "integrity": "sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-plugin-base": "^0.13.0"
+ }
+ },
+ "apollo-upload-client": {
+ "version": "14.1.2",
+ "resolved": "https://registry.npmjs.org/apollo-upload-client/-/apollo-upload-client-14.1.2.tgz",
+ "integrity": "sha512-ozaW+4tnVz1rpfwiQwG3RCdCcZ93RV/37ZQbRnObcQ9mjb+zur58sGDPVg9Ef3fiujLmiE/Fe9kdgvIMA3VOjA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@apollo/client": "^3.1.5",
+ "@babel/runtime": "^7.11.2",
+ "extract-files": "^9.0.0"
+ }
+ },
+ "apollo-utilities": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz",
+ "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@wry/equality": "^0.1.2",
+ "fast-json-stable-stringify": "^2.0.0",
+ "ts-invariant": "^0.4.0",
+ "tslib": "^1.10.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "app-module-path": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz",
+ "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=",
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "argsarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz",
+ "integrity": "sha1-bnIHtOzbObCviDA/pa4ivajfYcs=",
+ "dev": true,
+ "optional": true
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "array.prototype.map": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.3.tgz",
+ "integrity": "sha512-nNcb30v0wfDyIe26Yif3PcV1JXQp4zEeEfupG7L4SRjnD6HLbO5b2a7eVSba53bOx4YCHYMBHt+Fp4vYstneRA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.1",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.5"
+ }
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "assert-args": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/assert-args/-/assert-args-1.2.1.tgz",
+ "integrity": "sha1-QEEDoUUqMv53iYgR5U5ZCoqTc70=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "101": "^1.2.0",
+ "compound-subject": "0.0.1",
+ "debug": "^2.2.0",
+ "get-prototype-of": "0.0.0",
+ "is-capitalized": "^1.0.0",
+ "is-class": "0.0.4"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "ast-parents": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz",
+ "integrity": "sha1-UI/Q8F0MSHddnszaLhdEIyYejdM=",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "dev": true,
+ "optional": true
+ },
+ "async-eventemitter": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz",
+ "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.4.0"
+ }
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "dev": true
+ },
+ "async-retry": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz",
+ "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "retry": "0.12.0"
+ }
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true
+ },
+ "available-typed-arrays": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz",
+ "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
+ "dev": true
+ },
+ "axios": {
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+ "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+ "dev": true,
+ "requires": {
+ "follow-redirects": "^1.10.0"
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.1",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+ "dev": true,
+ "requires": {
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
+ },
+ "dependencies": {
+ "detect-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true
+ }
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "7.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
+ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==",
+ "dev": true,
+ "optional": true
+ },
+ "babel-preset-fbjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz",
+ "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-syntax-class-properties": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.0.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0",
+ "@babel/plugin-transform-for-of": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-member-expression-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-object-super": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-property-literals": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ }
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ }
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ }
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+ "dev": true,
+ "optional": true
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "base-x": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz",
+ "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "base32-decode": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/base32-decode/-/base32-decode-1.0.0.tgz",
+ "integrity": "sha512-KNWUX/R7wKenwE/G/qFMzGScOgVntOmbE27vvc6GrniDGYb6a5+qWcuoXl8WIOQL7q0TpK7nZDm1Y04Yi3Yn5g==",
+ "dev": true,
+ "optional": true
+ },
+ "base32-encode": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/base32-encode/-/base32-encode-1.2.0.tgz",
+ "integrity": "sha512-cHFU8XeRyx0GgmoWi5qHMCVRiqU6J3MHWxVgun7jggCBUpVzm1Ir7M9dYr2whjSNc3tFeXfQ/oZjQu/4u55h9A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "to-data-view": "^1.1.0"
+ }
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bech32": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
+ "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==",
+ "dev": true
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
+ },
+ "bignumber.js": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz",
+ "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "bip32": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz",
+ "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "10.12.18",
+ "bs58check": "^2.1.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "tiny-secp256k1": "^1.1.3",
+ "typeforce": "^1.11.5",
+ "wif": "^2.0.6"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "10.12.18",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
+ "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "bip39": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz",
+ "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "11.11.6",
+ "create-hash": "^1.1.0",
+ "pbkdf2": "^3.0.9",
+ "randombytes": "^2.0.1"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "11.11.6",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz",
+ "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "bip66": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz",
+ "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "bitcore-lib": {
+ "version": "8.25.10",
+ "resolved": "https://registry.npmjs.org/bitcore-lib/-/bitcore-lib-8.25.10.tgz",
+ "integrity": "sha512-MyHpSg7aFRHe359RA/gdkaQAal3NswYZTLEuu0tGX1RGWXAYN9i/24fsjPqVKj+z0ua+gzAT7aQs0KiKXWCgKA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bech32": "=1.1.3",
+ "bn.js": "=4.11.8",
+ "bs58": "^4.0.1",
+ "buffer-compare": "=1.1.1",
+ "elliptic": "^6.5.3",
+ "inherits": "=2.0.1",
+ "lodash": "^4.17.20"
+ },
+ "dependencies": {
+ "bech32": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz",
+ "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==",
+ "dev": true,
+ "optional": true
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true,
+ "optional": true
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "bitcore-mnemonic": {
+ "version": "8.25.10",
+ "resolved": "https://registry.npmjs.org/bitcore-mnemonic/-/bitcore-mnemonic-8.25.10.tgz",
+ "integrity": "sha512-FeXxO37BLV5JRvxPmVFB91zRHalavV8H4TdQGt1/hz0AkoPymIV68OkuB+TptpjeYgatcgKPoPvPhglJkTzFQQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bitcore-lib": "^8.25.10",
+ "unorm": "^1.4.1"
+ }
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "blakejs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz",
+ "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=",
+ "dev": true
+ },
+ "blob-to-it": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.2.tgz",
+ "integrity": "sha512-yD8tikfTlUGEOSHExz4vDCIQFLaBPXIL0KcxGQt9RbwMVXBEh+jokdJyStvTXPgWrdKfwgk7RX8GPsgrYzsyng==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "browser-readablestream-to-it": "^1.0.2"
+ }
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
+ "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
+ }
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "borc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz",
+ "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==",
+ "dev": true,
+ "requires": {
+ "bignumber.js": "^9.0.0",
+ "buffer": "^5.5.0",
+ "commander": "^2.15.0",
+ "ieee754": "^1.1.13",
+ "iso-url": "~0.4.7",
+ "json-text-sequence": "~0.1.0",
+ "readable-stream": "^3.6.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browser-headers": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz",
+ "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==",
+ "dev": true,
+ "optional": true
+ },
+ "browser-readablestream-to-it": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz",
+ "integrity": "sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg==",
+ "dev": true,
+ "optional": true
+ },
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
+ "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.1.1",
+ "browserify-rsa": "^4.0.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.3",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.5",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ }
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "~1.0.5"
+ }
+ },
+ "browserslist": {
+ "version": "4.16.6",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
+ "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001219",
+ "colorette": "^1.2.2",
+ "electron-to-chromium": "^1.3.723",
+ "escalade": "^3.1.1",
+ "node-releases": "^1.1.71"
+ }
+ },
+ "bs58": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+ "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=",
+ "dev": true,
+ "requires": {
+ "base-x": "^3.0.2"
+ }
+ },
+ "bs58check": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+ "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+ "dev": true,
+ "requires": {
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "btoa-lite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz",
+ "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=",
+ "dev": true,
+ "optional": true
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-compare": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.1.1.tgz",
+ "integrity": "sha1-W+e+hTr4kZjR9N3AkNHWakiu9ZY=",
+ "dev": true,
+ "optional": true
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "dev": true
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "buffer-pipe": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-pipe/-/buffer-pipe-0.0.3.tgz",
+ "integrity": "sha512-GlxfuD/NrKvCNs0Ut+7b1IHjylfdegMBxQIlZHj7bObKVQBxB5S84gtm2yu1mQ8/sSggceWBDPY0cPXgvX2MuA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "buffer-to-arraybuffer": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
+ "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "bufferutil": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz",
+ "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==",
+ "dev": true,
+ "requires": {
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "busboy": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
+ "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "dicer": "0.3.0"
+ }
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "dev": true
+ },
+ "cacache": {
+ "version": "12.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+ "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "dev": true,
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true
+ }
+ }
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "call-me-maybe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
+ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+ "dev": true
+ },
+ "caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+ "dev": true,
+ "requires": {
+ "callsites": "^2.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
+ }
+ }
+ },
+ "caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+ "dev": true,
+ "requires": {
+ "caller-callsite": "^2.0.0"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001235",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz",
+ "integrity": "sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A==",
+ "dev": true,
+ "optional": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "cbor": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz",
+ "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==",
+ "dev": true,
+ "requires": {
+ "bignumber.js": "^9.0.1",
+ "nofilter": "^1.0.4"
+ }
+ },
+ "chai": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz",
+ "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^3.0.1",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.5"
+ }
+ },
+ "chai-as-promised": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz",
+ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==",
+ "dev": true,
+ "requires": {
+ "check-error": "^1.0.2"
+ }
+ },
+ "chai-bn": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.1.tgz",
+ "integrity": "sha512-01jt2gSXAw7UYFPT5K8d7HYjdXj2vyeIuE+0T/34FWzlNcVbs1JkPxRu7rYMfQnJhrHT8Nr6qjSf5ZwwLU2EYg==",
+ "dev": true
+ },
+ "chai-string": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/chai-string/-/chai-string-1.5.0.tgz",
+ "integrity": "sha512-sydDC3S3pNAQMYwJrs6dQX0oBQ6KfIPuOZ78n7rocW0eJJlsHPh2t3kwW7xfwYA/1Bf6/arGtSUo16rxR2JFlw==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "change-case": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz",
+ "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==",
+ "dev": true,
+ "requires": {
+ "camel-case": "^3.0.0",
+ "constant-case": "^2.0.0",
+ "dot-case": "^2.1.0",
+ "header-case": "^1.0.0",
+ "is-lower-case": "^1.1.0",
+ "is-upper-case": "^1.1.0",
+ "lower-case": "^1.1.1",
+ "lower-case-first": "^1.0.0",
+ "no-case": "^2.3.2",
+ "param-case": "^2.1.0",
+ "pascal-case": "^2.0.0",
+ "path-case": "^2.1.0",
+ "sentence-case": "^2.1.0",
+ "snake-case": "^2.1.0",
+ "swap-case": "^1.1.0",
+ "title-case": "^2.1.0",
+ "upper-case": "^1.1.1",
+ "upper-case-first": "^1.1.0"
+ }
+ },
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+ "dev": true
+ },
+ "charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
+ "dev": true
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
+ "cheerio": {
+ "version": "1.0.0-rc.9",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.9.tgz",
+ "integrity": "sha512-QF6XVdrLONO6DXRF5iaolY+odmhj2CLj+xzNod7INPWMi/x9X4SOylH0S/vaPpX+AUU6t04s34SQNh7DbkuCng==",
+ "dev": true,
+ "requires": {
+ "cheerio-select": "^1.4.0",
+ "dom-serializer": "^1.3.1",
+ "domhandler": "^4.2.0",
+ "htmlparser2": "^6.1.0",
+ "parse5": "^6.0.1",
+ "parse5-htmlparser2-tree-adapter": "^6.0.1",
+ "tslib": "^2.2.0"
+ }
+ },
+ "cheerio-select": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.4.0.tgz",
+ "integrity": "sha512-sobR3Yqz27L553Qa7cK6rtJlMDbiKPdNywtR95Sj/YgfpLfy0u6CGJuaBKe5YE/vTc23SCRKxWSdlon/w6I/Ew==",
+ "dev": true,
+ "requires": {
+ "css-select": "^4.1.2",
+ "css-what": "^5.0.0",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0",
+ "domutils": "^2.6.0"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.1",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ },
+ "dependencies": {
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true
+ },
+ "chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "dev": true
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "cids": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz",
+ "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "class-is": "^1.1.0",
+ "multibase": "~0.6.0",
+ "multicodec": "^1.0.0",
+ "multihashes": "~0.4.15"
+ },
+ "dependencies": {
+ "multicodec": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
+ "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.6.0",
+ "varint": "^5.0.0"
+ }
+ }
+ }
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "circular-json": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
+ "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==",
+ "dev": true,
+ "optional": true
+ },
+ "class-is": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
+ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==",
+ "dev": true
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "clean-css": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
+ "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
+ "dev": true,
+ "requires": {
+ "source-map": "~0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "cli-spinners": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz",
+ "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==",
+ "dev": true,
+ "optional": true
+ },
+ "cli-table3": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz",
+ "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==",
+ "dev": true,
+ "requires": {
+ "colors": "^1.1.2",
+ "object-assign": "^4.1.0",
+ "string-width": "^4.2.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+ "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+ "dev": true
+ },
+ "clone-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
+ "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
+ "dev": true,
+ "optional": true
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "clone-stats": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+ "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-logger": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/color-logger/-/color-logger-0.0.6.tgz",
+ "integrity": "sha1-5WJF7ymCJlcRDHy3WpzXhstp7Rs=",
+ "dev": true
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "colorette": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
+ "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
+ "dev": true,
+ "optional": true
+ },
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "command-exists": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==",
+ "dev": true
+ },
+ "commander": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
+ "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==",
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "compare-versions": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
+ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "compound-subject": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/compound-subject/-/compound-subject-0.0.1.tgz",
+ "integrity": "sha1-JxVUaYoVrmCLHfyv0wt7oeqJLEs=",
+ "dev": true,
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "configstore": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz",
+ "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "dot-prop": "^4.1.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "unique-string": "^1.0.0",
+ "write-file-atomic": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ }
+ },
+ "console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true,
+ "optional": true
+ },
+ "consolidate": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
+ "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.1.1"
+ }
+ },
+ "constant-case": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz",
+ "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=",
+ "dev": true,
+ "requires": {
+ "snake-case": "^2.1.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-hash": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz",
+ "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==",
+ "dev": true,
+ "requires": {
+ "cids": "^0.7.1",
+ "multicodec": "^0.5.5",
+ "multihashes": "^0.4.15"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "cookiejar": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
+ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
+ "dev": true
+ },
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+ "dev": true
+ },
+ "core-js-pure": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.14.0.tgz",
+ "integrity": "sha512-YVh+LN2FgNU0odThzm61BsdkwrbrchumFq3oztnE9vTKC4KS2fvnPmcx8t6jnqAyOTCTF4ZSiuK8Qhh7SNcL4g==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "cosmiconfig": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
+ "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ }
+ }
+ },
+ "coveralls": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz",
+ "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==",
+ "dev": true,
+ "requires": {
+ "js-yaml": "^3.13.1",
+ "lcov-parse": "^1.0.0",
+ "log-driver": "^1.2.7",
+ "minimist": "^1.2.5",
+ "request": "^2.88.2"
+ }
+ },
+ "crc-32": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
+ "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
+ "dev": true,
+ "requires": {
+ "exit-on-epipe": "~1.0.1",
+ "printj": "~1.1.0"
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "cross-fetch": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz",
+ "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "node-fetch": "2.6.1"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "dependencies": {
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
+ "dev": true
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ }
+ },
+ "crypto-js": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz",
+ "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==",
+ "dev": true
+ },
+ "crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
+ "dev": true,
+ "optional": true
+ },
+ "css": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+ "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "source-map": "^0.6.1",
+ "source-map-resolve": "^0.5.2",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "css-loader": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz",
+ "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.2.0",
+ "icss-utils": "^4.1.0",
+ "loader-utils": "^1.2.3",
+ "normalize-path": "^3.0.0",
+ "postcss": "^7.0.14",
+ "postcss-modules-extract-imports": "^2.0.0",
+ "postcss-modules-local-by-default": "^2.0.6",
+ "postcss-modules-scope": "^2.1.0",
+ "postcss-modules-values": "^2.0.0",
+ "postcss-value-parser": "^3.3.0",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ }
+ }
+ },
+ "css-select": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz",
+ "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^5.0.0",
+ "domhandler": "^4.2.0",
+ "domutils": "^2.6.0",
+ "nth-check": "^2.0.0"
+ }
+ },
+ "css-what": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz",
+ "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true
+ },
+ "cssfilter": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
+ "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=",
+ "dev": true,
+ "optional": true
+ },
+ "cssom": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
+ "dev": true,
+ "optional": true
+ },
+ "cssstyle": {
+ "version": "0.2.37",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
+ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cssom": "0.3.x"
+ }
+ },
+ "cyclist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+ "dev": true
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dev": true,
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "dataloader": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz",
+ "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==",
+ "dev": true,
+ "optional": true
+ },
+ "de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+ "dev": true
+ },
+ "death": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz",
+ "integrity": "sha1-AaqcQB7dknUFFEcLgmY5DGbGcxg=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "debug-fabulous": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-0.0.4.tgz",
+ "integrity": "sha1-+gccXYdIRoVCSAdCHKSxawsaB2M=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "2.X",
+ "lazy-debug-legacy": "0.0.X",
+ "object-assign": "4.1.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decimal.js": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz",
+ "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==",
+ "dev": true
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true,
+ "optional": true
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "clone": "^1.0.2"
+ }
+ },
+ "defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+ "dev": true
+ },
+ "deferred-leveldown": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz",
+ "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~6.2.1",
+ "inherits": "^2.0.3"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz",
+ "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "immediate": "^3.2.3",
+ "level-concat-iterator": "~2.0.0",
+ "level-supports": "~1.0.0",
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "delay": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
+ "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==",
+ "dev": true,
+ "optional": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true,
+ "optional": true
+ },
+ "delimit-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz",
+ "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "deprecated-decorator": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz",
+ "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=",
+ "dev": true,
+ "optional": true
+ },
+ "des.js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "detect-indent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
+ "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=",
+ "dev": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "dev": true,
+ "optional": true
+ },
+ "detect-newline": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
+ "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
+ "dev": true,
+ "optional": true
+ },
+ "detect-port": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz",
+ "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==",
+ "dev": true,
+ "requires": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
+ }
+ },
+ "dicer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
+ "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "streamsearch": "0.1.2"
+ }
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "dir-glob": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
+ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "path-type": "^3.0.0"
+ }
+ },
+ "dirty-chai": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz",
+ "integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==",
+ "dev": true
+ },
+ "dns-over-http-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz",
+ "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^4.3.1",
+ "native-fetch": "^3.0.0",
+ "receptacle": "^1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
+ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+ "dev": true,
+ "requires": {
+ "utila": "~0.4"
+ }
+ },
+ "dom-serializer": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
+ "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "dom-walk": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
+ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==",
+ "dev": true
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true
+ },
+ "domelementtype": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
+ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz",
+ "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.2.0"
+ }
+ },
+ "domutils": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz",
+ "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "dot-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz",
+ "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "dot-prop": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
+ "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "double-ended-queue": {
+ "version": "2.1.0-0",
+ "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
+ "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=",
+ "dev": true,
+ "optional": true
+ },
+ "drbg.js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz",
+ "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "^1.0.6",
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4"
+ }
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ed2curve": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz",
+ "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "1.x.x"
+ },
+ "dependencies": {
+ "tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "electron-fetch": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.3.tgz",
+ "integrity": "sha512-1AVMaxrHXTTMqd7EK0MGWusdqNr07Rpj8Th6bG4at0oNgIi/1LBwa9CjT/0Zy+M0k/tSJPS04nFxHj0SXDVgVw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "encoding": "^0.1.13"
+ }
+ },
+ "electron-to-chromium": {
+ "version": "1.3.749",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz",
+ "integrity": "sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A==",
+ "dev": true,
+ "optional": true
+ },
+ "elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "emittery": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz",
+ "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==",
+ "dev": true,
+ "optional": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true
+ },
+ "encode-utf8": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "iconv-lite": "^0.6.2"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ }
+ }
+ }
+ },
+ "encoding-down": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz",
+ "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "^6.2.1",
+ "inherits": "^2.0.3",
+ "level-codec": "^9.0.0",
+ "level-errors": "^2.0.0"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "end-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz",
+ "integrity": "sha1-MgA/P0OKKwFDFoE3+PpumGbIHtU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "write-stream": "~0.4.3"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
+ "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
+ },
+ "dependencies": {
+ "memory-fs": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+ "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ }
+ }
+ },
+ "enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^4.1.1"
+ },
+ "dependencies": {
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ }
+ }
+ },
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true
+ },
+ "env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "dev": true
+ },
+ "err-code": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+ "dev": true,
+ "optional": true
+ },
+ "errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.18.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz",
+ "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.2",
+ "is-callable": "^1.2.3",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.3",
+ "is-string": "^1.0.6",
+ "object-inspect": "^1.10.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.1"
+ }
+ },
+ "es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
+ "dev": true
+ },
+ "es-get-iterator": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
+ "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.0",
+ "has-symbols": "^1.0.1",
+ "is-arguments": "^1.1.0",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.5",
+ "isarray": "^2.0.5"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ }
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "es6-denodeify": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/es6-denodeify/-/es6-denodeify-0.1.5.tgz",
+ "integrity": "sha1-MdTV/pxVA+ElRgQ5MQ4WoqPznB8=",
+ "dev": true,
+ "optional": true
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
+ "dev": true
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dev": true,
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "optional": true
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "escodegen": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
+ "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+ "dev": true,
+ "requires": {
+ "esprima": "^2.7.1",
+ "estraverse": "^1.9.1",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.2.0"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "estraverse": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
+ "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
+ "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ }
+ }
+ },
+ "esdoc": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/esdoc/-/esdoc-1.1.0.tgz",
+ "integrity": "sha512-vsUcp52XJkOWg9m1vDYplGZN2iDzvmjDL5M/Mp8qkoDG3p2s0yIQCIjKR5wfPBaM3eV14a6zhQNYiNTCVzPnxA==",
+ "dev": true,
+ "requires": {
+ "babel-generator": "6.26.1",
+ "babel-traverse": "6.26.0",
+ "babylon": "6.18.0",
+ "cheerio": "1.0.0-rc.2",
+ "color-logger": "0.0.6",
+ "escape-html": "1.0.3",
+ "fs-extra": "5.0.0",
+ "ice-cap": "0.0.4",
+ "marked": "0.3.19",
+ "minimist": "1.2.0",
+ "taffydb": "2.7.3"
+ },
+ "dependencies": {
+ "cheerio": {
+ "version": "1.0.0-rc.2",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
+ "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
+ "dev": true,
+ "requires": {
+ "css-select": "~1.2.0",
+ "dom-serializer": "~0.1.0",
+ "entities": "~1.1.1",
+ "htmlparser2": "^3.9.1",
+ "lodash": "^4.15.0",
+ "parse5": "^3.0.1"
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+ "dev": true
+ },
+ "dom-serializer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "entities": "^1.1.1"
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
+ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "parse5": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
+ "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "eslint": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz",
+ "integrity": "sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.2",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz",
+ "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==",
+ "dev": true
+ },
+ "eslint-plugin-truffle": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-truffle/-/eslint-plugin-truffle-0.3.1.tgz",
+ "integrity": "sha512-mjDM1gD96UknBUSEufgdx5m1x3jkWL3Xn/npSZhOVoTbKk/nkBL7dCcH7xsO6GyAjmjvzdev5o5IA4lKWf9b4g==",
+ "dev": true
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
+ },
+ "espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ }
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "eth-ens-namehash": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
+ "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=",
+ "dev": true,
+ "requires": {
+ "idna-uts46-hx": "^2.3.1",
+ "js-sha3": "^0.5.7"
+ },
+ "dependencies": {
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ }
+ }
+ },
+ "eth-gas-reporter": {
+ "version": "0.2.22",
+ "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.22.tgz",
+ "integrity": "sha512-L1FlC792aTf3j/j+gGzSNlGrXKSxNPXQNk6TnV5NNZ2w3jnQCRyJjDl0zUo25Cq2t90IS5vGdbkwqFQK7Ce+kw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abi": "^5.0.0-beta.146",
+ "@solidity-parser/parser": "^0.12.0",
+ "cli-table3": "^0.5.0",
+ "colors": "^1.1.2",
+ "ethereumjs-util": "6.2.0",
+ "ethers": "^4.0.40",
+ "fs-readdir-recursive": "^1.1.0",
+ "lodash": "^4.17.14",
+ "markdown-table": "^1.1.3",
+ "mocha": "^7.1.1",
+ "req-cwd": "^2.0.0",
+ "request": "^2.88.0",
+ "request-promise-native": "^1.0.5",
+ "sha1": "^1.1.1",
+ "sync-request": "^6.0.0"
+ },
+ "dependencies": {
+ "@solidity-parser/parser": {
+ "version": "0.12.2",
+ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.12.2.tgz",
+ "integrity": "sha512-d7VS7PxgMosm5NyaiyDJRNID5pK4AWj1l64Dbz0147hJgy5k2C0/ZiKK/9u5c5K+HRUVHmp+RMvGEjGh84oA5Q==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "cli-table3": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz",
+ "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==",
+ "dev": true,
+ "requires": {
+ "colors": "^1.1.2",
+ "object-assign": "^4.1.0",
+ "string-width": "^2.1.1"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz",
+ "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "ethjs-util": "0.1.6",
+ "keccak": "^2.0.0",
+ "rlp": "^2.2.3",
+ "secp256k1": "^3.0.1"
+ }
+ },
+ "ethers": {
+ "version": "4.0.48",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.48.tgz",
+ "integrity": "sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g==",
+ "dev": true,
+ "requires": {
+ "aes-js": "3.0.0",
+ "bn.js": "^4.4.0",
+ "elliptic": "6.5.3",
+ "hash.js": "1.1.3",
+ "js-sha3": "0.5.7",
+ "scrypt-js": "2.0.4",
+ "setimmediate": "1.0.4",
+ "uuid": "2.0.1",
+ "xmlhttprequest": "1.8.0"
+ },
+ "dependencies": {
+ "elliptic": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ }
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ },
+ "keccak": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz",
+ "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==",
+ "dev": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "inherits": "^2.0.4",
+ "nan": "^2.14.0",
+ "safe-buffer": "^5.2.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ },
+ "secp256k1": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz",
+ "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==",
+ "dev": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "bip66": "^1.1.5",
+ "bn.js": "^4.11.8",
+ "create-hash": "^1.2.0",
+ "drbg.js": "^1.0.1",
+ "elliptic": "^6.5.2",
+ "nan": "^2.14.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=",
+ "dev": true
+ }
+ }
+ },
+ "eth-lib": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz",
+ "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "eth-sig-util": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz",
+ "integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-abi": "0.6.8",
+ "ethereumjs-util": "^5.1.1",
+ "tweetnacl": "^1.0.3",
+ "tweetnacl-util": "^0.15.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
+ "dev": true
+ }
+ }
+ },
+ "ethereum-bloom-filters": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.9.tgz",
+ "integrity": "sha512-GiK/RQkAkcVaEdxKVkPcG07PQ5vD7v2MFSHgZmBJSfMzNRHimntdBithsHAT89tAXnIpzVDWt8iaCD1DvkaxGg==",
+ "dev": true,
+ "requires": {
+ "js-sha3": "^0.8.0"
+ }
+ },
+ "ethereum-cryptography": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
+ "dev": true,
+ "requires": {
+ "@types/pbkdf2": "^3.0.0",
+ "@types/secp256k1": "^4.0.1",
+ "blakejs": "^1.1.0",
+ "browserify-aes": "^1.2.0",
+ "bs58check": "^2.1.2",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "hash.js": "^1.1.7",
+ "keccak": "^3.0.0",
+ "pbkdf2": "^3.0.17",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.1.2",
+ "scrypt-js": "^3.0.0",
+ "secp256k1": "^4.0.1",
+ "setimmediate": "^1.0.5"
+ },
+ "dependencies": {
+ "scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
+ "dev": true
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ }
+ }
+ },
+ "ethereum-ens": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/ethereum-ens/-/ethereum-ens-0.8.0.tgz",
+ "integrity": "sha512-a8cBTF4AWw1Q1Y37V1LSCS9pRY4Mh3f8vCg5cbXCCEJ3eno1hbI/+Ccv9SZLISYpqQhaglP3Bxb/34lS4Qf7Bg==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.4.7",
+ "eth-ens-namehash": "^2.0.0",
+ "js-sha3": "^0.5.7",
+ "pako": "^1.0.4",
+ "underscore": "^1.8.3",
+ "web3": "^1.0.0-beta.34"
+ },
+ "dependencies": {
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ }
+ }
+ },
+ "ethereumjs-abi": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
+ "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.8",
+ "ethereumjs-util": "^6.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "ethereumjs-common": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz",
+ "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==",
+ "dev": true
+ },
+ "ethereumjs-tx": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz",
+ "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "ethers": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.3.0.tgz",
+ "integrity": "sha512-myN+338S4sFQZvQ9trii7xit8Hu/LnUtjA0ROFOHpUreQc3fgLZEMNVqF3vM1u2D78DIIeG1TbuozVCVlXQWvQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abi": "5.3.0",
+ "@ethersproject/abstract-provider": "5.3.0",
+ "@ethersproject/abstract-signer": "5.3.0",
+ "@ethersproject/address": "5.3.0",
+ "@ethersproject/base64": "5.3.0",
+ "@ethersproject/basex": "5.3.0",
+ "@ethersproject/bignumber": "5.3.0",
+ "@ethersproject/bytes": "5.3.0",
+ "@ethersproject/constants": "5.3.0",
+ "@ethersproject/contracts": "5.3.0",
+ "@ethersproject/hash": "5.3.0",
+ "@ethersproject/hdnode": "5.3.0",
+ "@ethersproject/json-wallets": "5.3.0",
+ "@ethersproject/keccak256": "5.3.0",
+ "@ethersproject/logger": "5.3.0",
+ "@ethersproject/networks": "5.3.0",
+ "@ethersproject/pbkdf2": "5.3.0",
+ "@ethersproject/properties": "5.3.0",
+ "@ethersproject/providers": "5.3.0",
+ "@ethersproject/random": "5.3.0",
+ "@ethersproject/rlp": "5.3.0",
+ "@ethersproject/sha2": "5.3.0",
+ "@ethersproject/signing-key": "5.3.0",
+ "@ethersproject/solidity": "5.3.0",
+ "@ethersproject/strings": "5.3.0",
+ "@ethersproject/transactions": "5.3.0",
+ "@ethersproject/units": "5.3.0",
+ "@ethersproject/wallet": "5.3.0",
+ "@ethersproject/web": "5.3.0",
+ "@ethersproject/wordlists": "5.3.0"
+ },
+ "dependencies": {
+ "@ethersproject/abi": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.3.0.tgz",
+ "integrity": "sha512-NaT4UacjOwca8qCG/gv8k+DgTcWu49xlrvdhr/p8PTFnoS8e3aMWqjI3znFME5Txa/QWXDrg2/heufIUue9rtw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/address": "^5.3.0",
+ "@ethersproject/bignumber": "^5.3.0",
+ "@ethersproject/bytes": "^5.3.0",
+ "@ethersproject/constants": "^5.3.0",
+ "@ethersproject/hash": "^5.3.0",
+ "@ethersproject/keccak256": "^5.3.0",
+ "@ethersproject/logger": "^5.3.0",
+ "@ethersproject/properties": "^5.3.0",
+ "@ethersproject/strings": "^5.3.0"
+ }
+ }
+ }
+ },
+ "ethjs-abi": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz",
+ "integrity": "sha1-4KepOn6BFjqUR3utVu3lJKtt5TM=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "js-sha3": "0.5.5",
+ "number-to-bn": "1.7.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=",
+ "dev": true
+ },
+ "js-sha3": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz",
+ "integrity": "sha1-uvDA6MVK1ZA0R9+Wreekobynmko=",
+ "dev": true
+ }
+ }
+ },
+ "ethjs-unit": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
+ "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "number-to-bn": "1.7.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=",
+ "dev": true
+ }
+ }
+ },
+ "ethjs-util": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
+ "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
+ "dev": true,
+ "requires": {
+ "is-hex-prefixed": "1.0.0",
+ "strip-hex-prefix": "1.0.0"
+ }
+ },
+ "event-iterator": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-1.2.0.tgz",
+ "integrity": "sha512-Daq7YUl0Mv1i4QEgzGQlz0jrx7hUFNyLGbiF+Ap7NCMCjDLCCnolyj6s0TAc6HmrBziO5rNVHsPwGMp7KdRPvw==",
+ "dev": true,
+ "optional": true
+ },
+ "event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
+ "dev": true
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ }
+ }
+ },
+ "exit-on-epipe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
+ "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==",
+ "dev": true
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fill-range": "^2.1.0"
+ },
+ "dependencies": {
+ "fill-range": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^3.0.0",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
+ }
+ }
+ },
+ "ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "dev": true,
+ "requires": {
+ "type": "^2.0.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
+ "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "extract-files": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz",
+ "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==",
+ "dev": true,
+ "optional": true
+ },
+ "extract-zip": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
+ "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.6.2",
+ "debug": "^2.6.9",
+ "mkdirp": "^0.5.4",
+ "yauzl": "^2.10.0"
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "faker": {
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz",
+ "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==",
+ "dev": true
+ },
+ "fast-check": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-2.16.0.tgz",
+ "integrity": "sha512-r1uoJQoLzKUgfAeGzSZ/7dGyvSLG3OGjmWIKZRJpKtY/791di7n/x389F0Bei3Ry8126Z6MKp78Cbt4+9LUp1g==",
+ "dev": true,
+ "requires": {
+ "pure-rand": "^4.1.1"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
+ "fast-fifo": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz",
+ "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ==",
+ "dev": true,
+ "optional": true
+ },
+ "fast-future": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fast-future/-/fast-future-1.0.2.tgz",
+ "integrity": "sha1-hDWpqqAteSSNF9cE52JZMB2ZKAo=",
+ "dev": true,
+ "optional": true
+ },
+ "fast-glob": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
+ "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
+ "dev": true,
+ "requires": {
+ "@mrmlnc/readdir-enhanced": "^2.2.1",
+ "@nodelib/fs.stat": "^1.1.2",
+ "glob-parent": "^3.1.0",
+ "is-glob": "^4.0.0",
+ "merge2": "^1.2.3",
+ "micromatch": "^3.1.10"
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fast-sha256": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fast-sha256/-/fast-sha256-1.3.0.tgz",
+ "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==",
+ "dev": true,
+ "optional": true
+ },
+ "fastestsmallesttextencoderdecoder": {
+ "version": "1.0.22",
+ "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz",
+ "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==",
+ "dev": true,
+ "optional": true
+ },
+ "fastq": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
+ "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "fb-watchman": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
+ "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bser": "2.1.1"
+ }
+ },
+ "fbjs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz",
+ "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cross-fetch": "^3.0.4",
+ "fbjs-css-vars": "^1.0.0",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^0.7.18"
+ },
+ "dependencies": {
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "fbjs-css-vars": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
+ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==",
+ "dev": true,
+ "optional": true
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "fetch-cookie": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.7.0.tgz",
+ "integrity": "sha512-Mm5pGlT3agW6t71xVM7vMZPIvI7T4FaTuFW4jari6dVzYHFDb3WZZsGpN22r/o3XMdkM0E7sPd1EGeyVbH2Tgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "es6-denodeify": "^0.1.1",
+ "tough-cookie": "^2.3.1"
+ }
+ },
+ "figgy-pudding": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
+ "dev": true
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "file-type": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz",
+ "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==",
+ "dev": true
+ },
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true
+ },
+ "filecoin.js": {
+ "version": "0.0.5-alpha",
+ "resolved": "https://registry.npmjs.org/filecoin.js/-/filecoin.js-0.0.5-alpha.tgz",
+ "integrity": "sha512-xPrB86vDnTPfmvtN/rJSrhl4M77694ruOgNXd0+5gP67mgmCDhStLCqcr+zHIDRgDpraf7rY+ELbwjXZcQNdpQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ledgerhq/hw-transport-webusb": "^5.22.0",
+ "@nodefactory/filsnap-adapter": "^0.2.1",
+ "@nodefactory/filsnap-types": "^0.2.1",
+ "@zondax/filecoin-signing-tools": "github:Digital-MOB-Filecoin/filecoin-signing-tools-js",
+ "bignumber.js": "^9.0.0",
+ "bitcore-lib": "^8.22.2",
+ "bitcore-mnemonic": "^8.22.2",
+ "btoa-lite": "^1.0.0",
+ "events": "^3.2.0",
+ "isomorphic-ws": "^4.0.1",
+ "node-fetch": "^2.6.0",
+ "rpc-websockets": "^5.3.1",
+ "scrypt-async": "^2.0.1",
+ "tweetnacl": "^1.0.3",
+ "tweetnacl-util": "^0.15.1",
+ "websocket": "^1.0.31",
+ "ws": "^7.3.1"
+ },
+ "dependencies": {
+ "tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
+ "dev": true,
+ "optional": true
+ },
+ "ws": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true,
+ "optional": true
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "find-versions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz",
+ "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==",
+ "dev": true,
+ "requires": {
+ "semver-regex": "^3.1.2"
+ }
+ },
+ "first-chunk-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+ "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
+ "dev": true,
+ "optional": true
+ },
+ "flat": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz",
+ "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "~2.0.3"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
+ "dev": true
+ }
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz",
+ "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==",
+ "dev": true
+ },
+ "flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "fmix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz",
+ "integrity": "sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw=",
+ "dev": true,
+ "requires": {
+ "imul": "^1.0.0"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
+ "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==",
+ "dev": true
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "dev": true
+ },
+ "fp-ts": {
+ "version": "1.19.3",
+ "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz",
+ "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==",
+ "dev": true
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "fs-capacitor": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz",
+ "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==",
+ "dev": true,
+ "optional": true
+ },
+ "fs-extra": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
+ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0"
+ }
+ },
+ "fs-minipass": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+ "dev": true,
+ "requires": {
+ "minipass": "^2.6.0"
+ }
+ },
+ "fs-readdir-recursive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
+ "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
+ "dev": true
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "ganache-cli": {
+ "version": "6.12.2",
+ "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz",
+ "integrity": "sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-util": "6.2.1",
+ "source-map-support": "0.5.12",
+ "yargs": "13.2.4"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "4.11.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/node": {
+ "version": "14.11.2",
+ "bundled": true,
+ "dev": true
+ },
+ "@types/pbkdf2": {
+ "version": "3.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/secp256k1": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "base-x": {
+ "version": "3.0.8",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "blakejs": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.11.9",
+ "bundled": true,
+ "dev": true
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "bs58": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "base-x": "^3.0.2"
+ }
+ },
+ "bs58check": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "bundled": true,
+ "dev": true
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.5.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "ethereum-cryptography": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "@types/pbkdf2": "^3.0.0",
+ "@types/secp256k1": "^4.0.1",
+ "blakejs": "^1.1.0",
+ "browserify-aes": "^1.2.0",
+ "bs58check": "^2.1.2",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "hash.js": "^1.1.7",
+ "keccak": "^3.0.0",
+ "pbkdf2": "^3.0.17",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.1.2",
+ "scrypt-js": "^3.0.0",
+ "secp256k1": "^4.0.1",
+ "setimmediate": "^1.0.5"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ },
+ "ethjs-util": {
+ "version": "0.1.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-hex-prefixed": "1.0.0",
+ "strip-hex-prefix": "1.0.0"
+ }
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "execa": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "bundled": true,
+ "dev": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "hash-base": {
+ "version": "3.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "invert-kv": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-hex-prefixed": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "keccak": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "lcid": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "invert-kv": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "map-age-cleaner": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "p-defer": "^1.0.0"
+ }
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "mem": {
+ "version": "4.3.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true
+ },
+ "node-addon-api": {
+ "version": "2.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "node-gyp-build": {
+ "version": "4.2.3",
+ "bundled": true,
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-locale": {
+ "version": "3.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
+ }
+ },
+ "p-defer": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "p-is-promise": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "pbkdf2": {
+ "version": "3.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "rlp": {
+ "version": "2.2.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "scrypt-js": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "secp256k1": {
+ "version": "4.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "elliptic": "^6.5.2",
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "bundled": true,
+ "dev": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "bundled": true,
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.5.12",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "strip-hex-prefix": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-hex-prefixed": "1.0.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.2.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "os-locale": "^3.1.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "ganache-core": {
+ "version": "2.13.2",
+ "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz",
+ "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "3.0.0",
+ "async": "2.6.2",
+ "bip39": "2.5.0",
+ "cachedown": "1.0.0",
+ "clone": "2.1.2",
+ "debug": "3.2.6",
+ "encoding-down": "5.0.4",
+ "eth-sig-util": "3.0.0",
+ "ethereumjs-abi": "0.6.8",
+ "ethereumjs-account": "3.0.0",
+ "ethereumjs-block": "2.2.2",
+ "ethereumjs-common": "1.5.0",
+ "ethereumjs-tx": "2.1.2",
+ "ethereumjs-util": "6.2.1",
+ "ethereumjs-vm": "4.2.0",
+ "ethereumjs-wallet": "0.6.5",
+ "heap": "0.2.6",
+ "keccak": "3.0.1",
+ "level-sublevel": "6.6.4",
+ "levelup": "3.1.1",
+ "lodash": "4.17.20",
+ "lru-cache": "5.1.1",
+ "merkle-patricia-tree": "3.0.0",
+ "patch-package": "6.2.2",
+ "seedrandom": "3.0.1",
+ "source-map-support": "0.5.12",
+ "tmp": "0.1.0",
+ "web3": "1.2.11",
+ "web3-provider-engine": "14.2.1",
+ "websocket": "1.0.32"
+ },
+ "dependencies": {
+ "@ethersproject/abi": {
+ "version": "5.0.0-beta.153",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz",
+ "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/address": ">=5.0.0-beta.128",
+ "@ethersproject/bignumber": ">=5.0.0-beta.130",
+ "@ethersproject/bytes": ">=5.0.0-beta.129",
+ "@ethersproject/constants": ">=5.0.0-beta.128",
+ "@ethersproject/hash": ">=5.0.0-beta.128",
+ "@ethersproject/keccak256": ">=5.0.0-beta.127",
+ "@ethersproject/logger": ">=5.0.0-beta.129",
+ "@ethersproject/properties": ">=5.0.0-beta.131",
+ "@ethersproject/strings": ">=5.0.0-beta.130"
+ }
+ },
+ "@ethersproject/abstract-provider": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.8.tgz",
+ "integrity": "sha512-fqJXkewcGdi8LogKMgRyzc/Ls2js07yor7+g9KfPs09uPOcQLg7cc34JN+lk34HH9gg2HU0DIA5797ZR8znkfw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/networks": "^5.0.7",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/transactions": "^5.0.9",
+ "@ethersproject/web": "^5.0.12"
+ }
+ },
+ "@ethersproject/abstract-signer": {
+ "version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.10.tgz",
+ "integrity": "sha512-irx7kH7FDAeW7QChDPW19WsxqeB1d3XLyOLSXm0bfPqL1SS07LXWltBJUBUxqC03ORpAOcM3JQj57DU8JnVY2g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/abstract-provider": "^5.0.8",
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7"
+ }
+ },
+ "@ethersproject/address": {
+ "version": "5.0.9",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.9.tgz",
+ "integrity": "sha512-gKkmbZDMyGbVjr8nA5P0md1GgESqSGH7ILIrDidPdNXBl4adqbuA3OAuZx/O2oGpL6PtJ9BDa0kHheZ1ToHU3w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/keccak256": "^5.0.7",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/rlp": "^5.0.7"
+ }
+ },
+ "@ethersproject/base64": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.7.tgz",
+ "integrity": "sha512-S5oh5DVfCo06xwJXT8fQC68mvJfgScTl2AXvbYMsHNfIBTDb084Wx4iA9MNlEReOv6HulkS+gyrUM/j3514rSw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.0.9"
+ }
+ },
+ "@ethersproject/bignumber": {
+ "version": "5.0.13",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.13.tgz",
+ "integrity": "sha512-b89bX5li6aK492yuPP5mPgRVgIxxBP7ksaBtKX5QQBsrZTpNOjf/MR4CjcUrAw8g+RQuD6kap9lPjFgY4U1/5A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "bn.js": "^4.4.0"
+ }
+ },
+ "@ethersproject/bytes": {
+ "version": "5.0.9",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.9.tgz",
+ "integrity": "sha512-k+17ZViDtAugC0s7HM6rdsTWEdIYII4RPCDkPEuxKc6i40Bs+m6tjRAtCECX06wKZnrEoR9pjOJRXHJ/VLoOcA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/logger": "^5.0.8"
+ }
+ },
+ "@ethersproject/constants": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.8.tgz",
+ "integrity": "sha512-sCc73pFBsl59eDfoQR5OCEZCRv5b0iywadunti6MQIr5lt3XpwxK1Iuzd8XSFO02N9jUifvuZRrt0cY0+NBgTg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/bignumber": "^5.0.13"
+ }
+ },
+ "@ethersproject/hash": {
+ "version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.10.tgz",
+ "integrity": "sha512-Tf0bvs6YFhw28LuHnhlDWyr0xfcDxSXdwM4TcskeBbmXVSKLv3bJQEEEBFUcRX0fJuslR3gCVySEaSh7vuMx5w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/abstract-signer": "^5.0.10",
+ "@ethersproject/address": "^5.0.9",
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/keccak256": "^5.0.7",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/strings": "^5.0.8"
+ }
+ },
+ "@ethersproject/keccak256": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.7.tgz",
+ "integrity": "sha512-zpUBmofWvx9PGfc7IICobgFQSgNmTOGTGLUxSYqZzY/T+b4y/2o5eqf/GGmD7qnTGzKQ42YlLNo+LeDP2qe55g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.0.9",
+ "js-sha3": "0.5.7"
+ }
+ },
+ "@ethersproject/logger": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.8.tgz",
+ "integrity": "sha512-SkJCTaVTnaZ3/ieLF5pVftxGEFX56pTH+f2Slrpv7cU0TNpUZNib84QQdukd++sWUp/S7j5t5NW+WegbXd4U/A==",
+ "dev": true,
+ "optional": true
+ },
+ "@ethersproject/networks": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.7.tgz",
+ "integrity": "sha512-dI14QATndIcUgcCBL1c5vUr/YsI5cCHLN81rF7PU+yS7Xgp2/Rzbr9+YqpC6NBXHFUASjh6GpKqsVMpufAL0BQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/logger": "^5.0.8"
+ }
+ },
+ "@ethersproject/properties": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.7.tgz",
+ "integrity": "sha512-812H1Rus2vjw0zbasfDI1GLNPDsoyX1pYqiCgaR1BuyKxUTbwcH1B+214l6VGe1v+F6iEVb7WjIwMjKhb4EUsg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/logger": "^5.0.8"
+ }
+ },
+ "@ethersproject/rlp": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.7.tgz",
+ "integrity": "sha512-ulUTVEuV7PT4jJTPpfhRHK57tkLEDEY9XSYJtrSNHOqdwMvH0z7BM2AKIMq4LVDlnu4YZASdKrkFGEIO712V9w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8"
+ }
+ },
+ "@ethersproject/signing-key": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.8.tgz",
+ "integrity": "sha512-YKxQM45eDa6WAD+s3QZPdm1uW1MutzVuyoepdRRVmMJ8qkk7iOiIhUkZwqKLNxKzEJijt/82ycuOREc9WBNAKg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "elliptic": "6.5.3"
+ }
+ },
+ "@ethersproject/strings": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.8.tgz",
+ "integrity": "sha512-5IsdXf8tMY8QuHl8vTLnk9ehXDDm6x9FB9S9Og5IA1GYhLe5ZewydXSjlJlsqU2t9HRbfv97OJZV/pX8DVA/Hw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/constants": "^5.0.8",
+ "@ethersproject/logger": "^5.0.8"
+ }
+ },
+ "@ethersproject/transactions": {
+ "version": "5.0.9",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.9.tgz",
+ "integrity": "sha512-0Fu1yhdFBkrbMjenEr+39tmDxuHmaw0pe9Jb18XuKoItj7Z3p7+UzdHLr2S/okvHDHYPbZE5gtANDdQ3ZL1nBA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/address": "^5.0.9",
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/constants": "^5.0.8",
+ "@ethersproject/keccak256": "^5.0.7",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/rlp": "^5.0.7",
+ "@ethersproject/signing-key": "^5.0.8"
+ }
+ },
+ "@ethersproject/web": {
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.12.tgz",
+ "integrity": "sha512-gVxS5iW0bgidZ76kr7LsTxj4uzN5XpCLzvZrLp8TP+4YgxHfCeetFyQkRPgBEAJdNrexdSBayvyJvzGvOq0O8g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/base64": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/strings": "^5.0.8"
+ }
+ },
+ "@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "defer-to-connect": "^1.0.1"
+ }
+ },
+ "@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/node": {
+ "version": "14.14.20",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz",
+ "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==",
+ "dev": true
+ },
+ "@types/pbkdf2": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz",
+ "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/secp256k1": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz",
+ "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
+ "dev": true
+ },
+ "abstract-leveldown": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz",
+ "integrity": "sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "aes-js": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz",
+ "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==",
+ "dev": true,
+ "optional": true
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true,
+ "optional": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
+ "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.11"
+ }
+ },
+ "async-eventemitter": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz",
+ "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.4.0"
+ }
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
+ "dev": true
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "babel-core": {
+ "version": "6.26.3",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-generator": "^6.26.0",
+ "babel-helpers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
+ "json5": "^0.5.1",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.4",
+ "path-is-absolute": "^1.0.1",
+ "private": "^0.1.8",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ }
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.1",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+ "dev": true,
+ "requires": {
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true
+ }
+ }
+ },
+ "babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
+ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
+ "dev": true,
+ "requires": {
+ "babel-helper-explode-assignable-expression": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-define-map": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-helper-explode-assignable-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
+ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+ "dev": true,
+ "requires": {
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-regex": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-helper-remap-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+ "dev": true,
+ "requires": {
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helpers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-syntax-async-functions": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
+ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
+ "dev": true
+ },
+ "babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
+ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
+ "dev": true
+ },
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
+ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
+ "dev": true
+ },
+ "babel-plugin-transform-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
+ "dev": true,
+ "requires": {
+ "babel-helper-remap-async-to-generator": "^6.24.1",
+ "babel-plugin-syntax-async-functions": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-define-map": "^6.24.1",
+ "babel-helper-function-name": "^6.24.1",
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-types": "^6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+ "dev": true,
+ "requires": {
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+ "dev": true,
+ "requires": {
+ "babel-helper-call-delegate": "^6.24.1",
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "regexpu-core": "^2.0.0"
+ }
+ },
+ "babel-plugin-transform-exponentiation-operator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
+ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
+ "dev": true,
+ "requires": {
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.10.0"
+ }
+ },
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-preset-env": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
+ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
+ "babel-plugin-transform-regenerator": "^6.22.0",
+ "browserslist": "^3.2.6",
+ "invariant": "^2.2.2",
+ "semver": "^5.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "babel-register": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "home-or-tmp": "^2.0.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.4.15"
+ },
+ "dependencies": {
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.5.6"
+ }
+ }
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ }
+ }
+ },
+ "babelify": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz",
+ "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=",
+ "dev": true,
+ "requires": {
+ "babel-core": "^6.0.14",
+ "object-assign": "^4.0.0"
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "backoff": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz",
+ "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=",
+ "dev": true,
+ "requires": {
+ "precond": "0.2"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ }
+ }
+ },
+ "base-x": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz",
+ "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ },
+ "dependencies": {
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ }
+ }
+ },
+ "bignumber.js": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz",
+ "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==",
+ "dev": true,
+ "optional": true
+ },
+ "bip39": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz",
+ "integrity": "sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.0",
+ "pbkdf2": "^3.0.9",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "unorm": "^1.3.3"
+ }
+ },
+ "blakejs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz",
+ "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true,
+ "optional": true
+ },
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",
+ "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "browserify-sign": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
+ "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^5.1.1",
+ "browserify-rsa": "^4.0.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.3",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.5",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",
+ "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==",
+ "dev": true,
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "browserslist": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
+ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000844",
+ "electron-to-chromium": "^1.3.47"
+ }
+ },
+ "bs58": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+ "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=",
+ "dev": true,
+ "requires": {
+ "base-x": "^3.0.2"
+ }
+ },
+ "bs58check": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+ "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+ "dev": true,
+ "requires": {
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "buffer-to-arraybuffer": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
+ "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=",
+ "dev": true,
+ "optional": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "bufferutil": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz",
+ "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==",
+ "dev": true,
+ "requires": {
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "dev": true,
+ "optional": true
+ },
+ "bytewise": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz",
+ "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4=",
+ "dev": true,
+ "requires": {
+ "bytewise-core": "^1.2.2",
+ "typewise": "^1.0.3"
+ }
+ },
+ "bytewise-core": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz",
+ "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI=",
+ "dev": true,
+ "requires": {
+ "typewise-core": "^1.2"
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "dependencies": {
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "cachedown": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cachedown/-/cachedown-1.0.0.tgz",
+ "integrity": "sha1-1D8DbkUQaWsxJG19sx6/D3rDLRU=",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "^2.4.1",
+ "lru-cache": "^3.2.0"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz",
+ "integrity": "sha1-cXibO39Tmb7IVl3aOKow0qCX7+4=",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.1"
+ }
+ }
+ }
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001174",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001174.tgz",
+ "integrity": "sha512-tqClL/4ThQq6cfFXH3oJL4rifFBeM6gTkphjao5kgwMaW9yn0tKgQLAEfKzDwj6HQWCB/aWo8kTFlSvIN8geEA==",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "checkpoint-store": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz",
+ "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=",
+ "dev": true,
+ "requires": {
+ "functional-red-black-tree": "^1.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true,
+ "optional": true
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "cids": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz",
+ "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "class-is": "^1.1.0",
+ "multibase": "~0.6.0",
+ "multicodec": "^1.0.0",
+ "multihashes": "~0.4.15"
+ },
+ "dependencies": {
+ "multicodec": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
+ "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer": "^5.6.0",
+ "varint": "^5.0.0"
+ }
+ }
+ }
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "class-is": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
+ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==",
+ "dev": true,
+ "optional": true
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
+ "dev": true
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "content-hash": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz",
+ "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cids": "^0.7.1",
+ "multicodec": "^0.5.5",
+ "multihashes": "^0.4.15"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true,
+ "optional": true
+ },
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ }
+ }
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+ "dev": true,
+ "optional": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true,
+ "optional": true
+ },
+ "cookiejar": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
+ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
+ "dev": true,
+ "optional": true
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+ "dev": true
+ },
+ "core-js-pure": {
+ "version": "3.8.2",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.2.tgz",
+ "integrity": "sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "cross-fetch": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.3.tgz",
+ "integrity": "sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw==",
+ "dev": true,
+ "requires": {
+ "node-fetch": "2.1.2",
+ "whatwg-fetch": "2.0.4"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ }
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dev": true,
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "deep-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
+ "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+ "dev": true,
+ "requires": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ }
+ },
+ "defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
+ "dev": true,
+ "optional": true
+ },
+ "deferred-leveldown": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz",
+ "integrity": "sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~5.0.0",
+ "inherits": "^2.0.3"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz",
+ "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ }
+ },
+ "defined": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+ "dev": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true,
+ "optional": true
+ },
+ "des.js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true,
+ "optional": true
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "dom-walk": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
+ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==",
+ "dev": true
+ },
+ "dotignore": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz",
+ "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==",
+ "dev": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true,
+ "optional": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true,
+ "optional": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.636",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.636.tgz",
+ "integrity": "sha512-Adcvng33sd3gTjNIDNXGD1G4H6qCImIy2euUJAQHtLNplEKU5WEz5KRJxupRNIIT8sD5oFZLTKBWAf12Bsz24A==",
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true,
+ "optional": true
+ },
+ "encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "dev": true,
+ "requires": {
+ "iconv-lite": "^0.6.2"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
+ "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ }
+ }
+ }
+ },
+ "encoding-down": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz",
+ "integrity": "sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "^5.0.0",
+ "inherits": "^2.0.3",
+ "level-codec": "^9.0.0",
+ "level-errors": "^2.0.0",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz",
+ "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.18.0-next.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
+ "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.2",
+ "is-negative-zero": "^2.0.0",
+ "is-regex": "^1.1.1",
+ "object-inspect": "^1.8.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.1",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dev": true,
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true,
+ "optional": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true,
+ "optional": true
+ },
+ "eth-block-tracker": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz",
+ "integrity": "sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug==",
+ "dev": true,
+ "requires": {
+ "eth-query": "^2.1.0",
+ "ethereumjs-tx": "^1.3.3",
+ "ethereumjs-util": "^5.1.3",
+ "ethjs-util": "^0.1.3",
+ "json-rpc-engine": "^3.6.0",
+ "pify": "^2.3.0",
+ "tape": "^4.6.3"
+ },
+ "dependencies": {
+ "ethereumjs-tx": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+ "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+ "dev": true,
+ "requires": {
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "eth-ens-namehash": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
+ "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "idna-uts46-hx": "^2.3.1",
+ "js-sha3": "^0.5.7"
+ }
+ },
+ "eth-json-rpc-infura": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz",
+ "integrity": "sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw==",
+ "dev": true,
+ "requires": {
+ "cross-fetch": "^2.1.1",
+ "eth-json-rpc-middleware": "^1.5.0",
+ "json-rpc-engine": "^3.4.0",
+ "json-rpc-error": "^2.0.0"
+ }
+ },
+ "eth-json-rpc-middleware": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz",
+ "integrity": "sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==",
+ "dev": true,
+ "requires": {
+ "async": "^2.5.0",
+ "eth-query": "^2.1.2",
+ "eth-tx-summary": "^3.1.2",
+ "ethereumjs-block": "^1.6.0",
+ "ethereumjs-tx": "^1.3.3",
+ "ethereumjs-util": "^5.1.2",
+ "ethereumjs-vm": "^2.1.0",
+ "fetch-ponyfill": "^4.0.0",
+ "json-rpc-engine": "^3.6.0",
+ "json-rpc-error": "^2.0.0",
+ "json-stable-stringify": "^1.0.1",
+ "promise-to-callback": "^1.0.0",
+ "tape": "^4.6.3"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz",
+ "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "deferred-leveldown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz",
+ "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.6.0"
+ }
+ },
+ "ethereumjs-account": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz",
+ "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-block": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz",
+ "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "ethereum-common": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz",
+ "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==",
+ "dev": true
+ }
+ }
+ },
+ "ethereumjs-tx": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+ "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+ "dev": true,
+ "requires": {
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-vm": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz",
+ "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "ethereumjs-account": "^2.0.3",
+ "ethereumjs-block": "~2.2.0",
+ "ethereumjs-common": "^1.1.0",
+ "ethereumjs-util": "^6.0.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "ethereumjs-block": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz",
+ "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "ethereumjs-tx": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz",
+ "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ }
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "level-codec": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz",
+ "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==",
+ "dev": true
+ },
+ "level-errors": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz",
+ "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz",
+ "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "level-ws": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz",
+ "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "xtend": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+ "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
+ "dev": true,
+ "requires": {
+ "object-keys": "~0.4.0"
+ }
+ }
+ }
+ },
+ "levelup": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz",
+ "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==",
+ "dev": true,
+ "requires": {
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=",
+ "dev": true
+ },
+ "memdown": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
+ "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "merkle-patricia-tree": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz",
+ "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==",
+ "dev": true,
+ "requires": {
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ }
+ }
+ },
+ "object-keys": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
+ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "eth-lib": {
+ "version": "0.1.29",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
+ "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "nano-json-stream-parser": "^0.1.2",
+ "servify": "^0.1.12",
+ "ws": "^3.0.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "eth-query": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz",
+ "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=",
+ "dev": true,
+ "requires": {
+ "json-rpc-random-id": "^1.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "eth-sig-util": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.0.tgz",
+ "integrity": "sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.2.1",
+ "elliptic": "^6.4.0",
+ "ethereumjs-abi": "0.6.5",
+ "ethereumjs-util": "^5.1.1",
+ "tweetnacl": "^1.0.0",
+ "tweetnacl-util": "^0.15.0"
+ },
+ "dependencies": {
+ "ethereumjs-abi": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz",
+ "integrity": "sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.10.0",
+ "ethereumjs-util": "^4.3.0"
+ },
+ "dependencies": {
+ "ethereumjs-util": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz",
+ "integrity": "sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.8.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "rlp": "^2.0.0"
+ }
+ }
+ }
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "eth-tx-summary": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz",
+ "integrity": "sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.1.2",
+ "clone": "^2.0.0",
+ "concat-stream": "^1.5.1",
+ "end-of-stream": "^1.1.0",
+ "eth-query": "^2.0.2",
+ "ethereumjs-block": "^1.4.1",
+ "ethereumjs-tx": "^1.1.1",
+ "ethereumjs-util": "^5.0.1",
+ "ethereumjs-vm": "^2.6.0",
+ "through2": "^2.0.3"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz",
+ "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "deferred-leveldown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz",
+ "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.6.0"
+ }
+ },
+ "ethereumjs-account": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz",
+ "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-block": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz",
+ "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "ethereum-common": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz",
+ "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==",
+ "dev": true
+ }
+ }
+ },
+ "ethereumjs-tx": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+ "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+ "dev": true,
+ "requires": {
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-vm": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz",
+ "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "ethereumjs-account": "^2.0.3",
+ "ethereumjs-block": "~2.2.0",
+ "ethereumjs-common": "^1.1.0",
+ "ethereumjs-util": "^6.0.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "ethereumjs-block": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz",
+ "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "ethereumjs-tx": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz",
+ "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ }
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "level-codec": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz",
+ "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==",
+ "dev": true
+ },
+ "level-errors": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz",
+ "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz",
+ "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "level-ws": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz",
+ "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "xtend": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+ "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
+ "dev": true,
+ "requires": {
+ "object-keys": "~0.4.0"
+ }
+ }
+ }
+ },
+ "levelup": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz",
+ "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==",
+ "dev": true,
+ "requires": {
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=",
+ "dev": true
+ },
+ "memdown": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
+ "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "merkle-patricia-tree": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz",
+ "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==",
+ "dev": true,
+ "requires": {
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ }
+ }
+ },
+ "object-keys": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
+ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "ethashjs": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz",
+ "integrity": "sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.1.2",
+ "buffer-xor": "^2.0.1",
+ "ethereumjs-util": "^7.0.2",
+ "miller-rabin": "^4.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz",
+ "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz",
+ "integrity": "sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.7.tgz",
+ "integrity": "sha512-vU5rtZBlZsgkTw3o6PDKyB8li2EgLavnAbsKcfsH2YhHH1Le+PP8vEiMnAnvgc1B6uMoaM5GDCrVztBw0Q5K9g==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ }
+ }
+ }
+ },
+ "ethereum-bloom-filters": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz",
+ "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "js-sha3": "^0.8.0"
+ },
+ "dependencies": {
+ "js-sha3": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "ethereum-common": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz",
+ "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=",
+ "dev": true
+ },
+ "ethereum-cryptography": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
+ "dev": true,
+ "requires": {
+ "@types/pbkdf2": "^3.0.0",
+ "@types/secp256k1": "^4.0.1",
+ "blakejs": "^1.1.0",
+ "browserify-aes": "^1.2.0",
+ "bs58check": "^2.1.2",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "hash.js": "^1.1.7",
+ "keccak": "^3.0.0",
+ "pbkdf2": "^3.0.17",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.1.2",
+ "scrypt-js": "^3.0.0",
+ "secp256k1": "^4.0.1",
+ "setimmediate": "^1.0.5"
+ }
+ },
+ "ethereumjs-abi": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
+ "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.8",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "ethereumjs-account": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz",
+ "integrity": "sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-util": "^6.0.0",
+ "rlp": "^2.2.1",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-block": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz",
+ "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz",
+ "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "deferred-leveldown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz",
+ "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.6.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "level-codec": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz",
+ "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==",
+ "dev": true
+ },
+ "level-errors": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz",
+ "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz",
+ "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "level-ws": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz",
+ "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "xtend": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+ "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
+ "dev": true,
+ "requires": {
+ "object-keys": "~0.4.0"
+ }
+ }
+ }
+ },
+ "levelup": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz",
+ "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==",
+ "dev": true,
+ "requires": {
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=",
+ "dev": true
+ },
+ "memdown": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
+ "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "merkle-patricia-tree": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz",
+ "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==",
+ "dev": true,
+ "requires": {
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ }
+ }
+ },
+ "object-keys": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
+ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "ethereumjs-blockchain": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz",
+ "integrity": "sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ==",
+ "dev": true,
+ "requires": {
+ "async": "^2.6.1",
+ "ethashjs": "~0.0.7",
+ "ethereumjs-block": "~2.2.2",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.1.0",
+ "flow-stoplight": "^1.0.0",
+ "level-mem": "^3.0.1",
+ "lru-cache": "^5.1.1",
+ "rlp": "^2.2.2",
+ "semaphore": "^1.1.0"
+ }
+ },
+ "ethereumjs-common": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz",
+ "integrity": "sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ==",
+ "dev": true
+ },
+ "ethereumjs-tx": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz",
+ "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ },
+ "ethereumjs-vm": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz",
+ "integrity": "sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA==",
+ "dev": true,
+ "requires": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "core-js-pure": "^3.0.1",
+ "ethereumjs-account": "^3.0.0",
+ "ethereumjs-block": "^2.2.2",
+ "ethereumjs-blockchain": "^4.0.3",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.2",
+ "ethereumjs-util": "^6.2.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1",
+ "util.promisify": "^1.0.0"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz",
+ "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "deferred-leveldown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz",
+ "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.6.0"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "level-codec": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz",
+ "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==",
+ "dev": true
+ },
+ "level-errors": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz",
+ "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz",
+ "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "level-ws": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz",
+ "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "xtend": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+ "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
+ "dev": true,
+ "requires": {
+ "object-keys": "~0.4.0"
+ }
+ }
+ }
+ },
+ "levelup": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz",
+ "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==",
+ "dev": true,
+ "requires": {
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=",
+ "dev": true
+ },
+ "memdown": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
+ "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "merkle-patricia-tree": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz",
+ "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==",
+ "dev": true,
+ "requires": {
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "object-keys": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
+ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "ethereumjs-wallet": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz",
+ "integrity": "sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aes-js": "^3.1.1",
+ "bs58check": "^2.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethereumjs-util": "^6.0.0",
+ "randombytes": "^2.0.6",
+ "safe-buffer": "^5.1.2",
+ "scryptsy": "^1.2.1",
+ "utf8": "^3.0.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "ethjs-unit": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
+ "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "number-to-bn": "1.7.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "ethjs-util": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
+ "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
+ "dev": true,
+ "requires": {
+ "is-hex-prefixed": "1.0.0",
+ "strip-hex-prefix": "1.0.0"
+ }
+ },
+ "eventemitter3": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
+ "dev": true,
+ "optional": true
+ },
+ "events": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
+ "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==",
+ "dev": true
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true,
+ "optional": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "dev": true,
+ "requires": {
+ "type": "^2.0.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz",
+ "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "fake-merkle-patricia-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz",
+ "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=",
+ "dev": true,
+ "requires": {
+ "checkpoint-store": "^1.1.0"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fetch-ponyfill": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz",
+ "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=",
+ "dev": true,
+ "requires": {
+ "node-fetch": "~1.7.1"
+ },
+ "dependencies": {
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "node-fetch": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
+ "dev": true,
+ "requires": {
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
+ }
+ }
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "find-yarn-workspace-root": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz",
+ "integrity": "sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q==",
+ "dev": true,
+ "requires": {
+ "fs-extra": "^4.0.3",
+ "micromatch": "^3.1.4"
+ },
+ "dependencies": {
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fs-extra": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ }
+ }
+ },
+ "flow-stoplight": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz",
+ "integrity": "sha1-SiksW8/4s5+mzAyxqFPYbyfu/3s=",
+ "dev": true
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true,
+ "optional": true
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true,
+ "optional": true
+ },
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz",
+ "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "global": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
+ "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
+ "dev": true,
+ "requires": {
+ "min-document": "^2.19.0",
+ "process": "^0.11.10"
+ }
+ },
+ "got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbol-support-x": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
+ "dev": true,
+ "optional": true
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "has-to-string-tag-x": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "has-symbol-support-x": "^1.4.1"
+ }
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "heap": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz",
+ "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "home-or-tmp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.1"
+ }
+ },
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dev": true,
+ "optional": true
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "http-https": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
+ "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=",
+ "dev": true,
+ "optional": true
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "idna-uts46-hx": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz",
+ "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "punycode": "2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
+ "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true
+ },
+ "immediate": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz",
+ "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "dev": true,
+ "optional": true
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-arguments": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
+ "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
+ "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
+ "dev": true
+ },
+ "is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dev": true,
+ "requires": {
+ "ci-info": "^2.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+ "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ },
+ "is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "dev": true
+ },
+ "is-fn": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz",
+ "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=",
+ "dev": true
+ },
+ "is-function": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
+ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==",
+ "dev": true
+ },
+ "is-hex-prefixed": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
+ "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=",
+ "dev": true
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
+ "dev": true
+ },
+ "is-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
+ "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==",
+ "dev": true,
+ "optional": true
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true,
+ "optional": true
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+ "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-retry-allowed": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
+ "dev": true,
+ "optional": true
+ },
+ "is-symbol": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "isurl": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
+ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "has-to-string-tag-x": "^1.2.0",
+ "is-object": "^1.0.1"
+ }
+ },
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true,
+ "optional": true
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "dev": true,
+ "optional": true
+ },
+ "json-rpc-engine": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz",
+ "integrity": "sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.1",
+ "babel-preset-env": "^1.7.0",
+ "babelify": "^7.3.0",
+ "json-rpc-error": "^2.0.0",
+ "promise-to-callback": "^1.0.0",
+ "safe-event-emitter": "^1.0.1"
+ }
+ },
+ "json-rpc-error": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz",
+ "integrity": "sha1-p6+cICg4tekFxyUOVH8a/3cligI=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1"
+ }
+ },
+ "json-rpc-random-id": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz",
+ "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "dev": true,
+ "requires": {
+ "jsonify": "~0.0.0"
+ }
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "keccak": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz",
+ "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==",
+ "dev": true,
+ "requires": {
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ },
+ "klaw-sync": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
+ "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11"
+ }
+ },
+ "level-codec": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz",
+ "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.6.0"
+ }
+ },
+ "level-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz",
+ "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-2.0.3.tgz",
+ "integrity": "sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.5",
+ "xtend": "^4.0.0"
+ }
+ },
+ "level-mem": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz",
+ "integrity": "sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg==",
+ "dev": true,
+ "requires": {
+ "level-packager": "~4.0.0",
+ "memdown": "~3.0.0"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz",
+ "integrity": "sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=",
+ "dev": true
+ },
+ "memdown": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz",
+ "integrity": "sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~5.0.0",
+ "functional-red-black-tree": "~1.0.1",
+ "immediate": "~3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ }
+ }
+ },
+ "level-packager": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz",
+ "integrity": "sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==",
+ "dev": true,
+ "requires": {
+ "encoding-down": "~5.0.0",
+ "levelup": "^3.0.0"
+ }
+ },
+ "level-post": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/level-post/-/level-post-1.0.7.tgz",
+ "integrity": "sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew==",
+ "dev": true,
+ "requires": {
+ "ltgt": "^2.1.2"
+ }
+ },
+ "level-sublevel": {
+ "version": "6.6.4",
+ "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.4.tgz",
+ "integrity": "sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA==",
+ "dev": true,
+ "requires": {
+ "bytewise": "~1.1.0",
+ "level-codec": "^9.0.0",
+ "level-errors": "^2.0.0",
+ "level-iterator-stream": "^2.0.3",
+ "ltgt": "~2.1.1",
+ "pull-defer": "^0.2.2",
+ "pull-level": "^2.0.3",
+ "pull-stream": "^3.6.8",
+ "typewiselite": "~1.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "level-ws": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz",
+ "integrity": "sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.8",
+ "xtend": "^4.0.1"
+ }
+ },
+ "levelup": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz",
+ "integrity": "sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg==",
+ "dev": true,
+ "requires": {
+ "deferred-leveldown": "~4.0.0",
+ "level-errors": "~2.0.0",
+ "level-iterator-stream": "~3.0.0",
+ "xtend": "~4.0.0"
+ },
+ "dependencies": {
+ "level-iterator-stream": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz",
+ "integrity": "sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "xtend": "^4.0.0"
+ }
+ }
+ }
+ },
+ "lodash": {
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+ "dev": true
+ },
+ "looper": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/looper/-/looper-2.0.0.tgz",
+ "integrity": "sha1-Zs0Md0rz1P7axTeU90LbVtqPCew=",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true,
+ "optional": true
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "ltgt": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz",
+ "integrity": "sha1-EIUaBtmWS5cReEQcI8nlJpjuzjQ=",
+ "dev": true
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true,
+ "optional": true
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true,
+ "optional": true
+ },
+ "merkle-patricia-tree": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz",
+ "integrity": "sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ==",
+ "dev": true,
+ "requires": {
+ "async": "^2.6.1",
+ "ethereumjs-util": "^5.2.0",
+ "level-mem": "^3.0.1",
+ "level-ws": "^1.0.0",
+ "readable-stream": "^3.0.6",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ },
+ "dependencies": {
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true,
+ "optional": true
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true,
+ "optional": true
+ },
+ "mime-db": {
+ "version": "1.45.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz",
+ "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.28",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz",
+ "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.45.0"
+ }
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true,
+ "optional": true
+ },
+ "min-document": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
+ "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
+ "dev": true,
+ "requires": {
+ "dom-walk": "^0.1.0"
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ },
+ "minizlib": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.9.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ }
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "mkdirp-promise": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
+ "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mkdirp": "*"
+ }
+ },
+ "mock-fs": {
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.13.0.tgz",
+ "integrity": "sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA==",
+ "dev": true,
+ "optional": true
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "multibase": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz",
+ "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "base-x": "^3.0.8",
+ "buffer": "^5.5.0"
+ }
+ },
+ "multicodec": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz",
+ "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "varint": "^5.0.0"
+ }
+ },
+ "multihashes": {
+ "version": "0.4.21",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz",
+ "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "multibase": "^0.7.0",
+ "varint": "^5.0.0"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
+ "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "base-x": "^3.0.8",
+ "buffer": "^5.5.0"
+ }
+ }
+ }
+ },
+ "nano-json-stream-parser": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz",
+ "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=",
+ "dev": true,
+ "optional": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "dev": true,
+ "optional": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "node-addon-api": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==",
+ "dev": true
+ },
+ "node-fetch": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
+ "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=",
+ "dev": true
+ },
+ "node-gyp-build": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz",
+ "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "dev": true,
+ "optional": true
+ },
+ "number-to-bn": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz",
+ "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "strip-hex-prefix": "1.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-inspect": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
+ "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==",
+ "dev": true
+ },
+ "object-is": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz",
+ "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz",
+ "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.1"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "oboe": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz",
+ "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "http-https": "^1.0.0"
+ }
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "dev": true,
+ "optional": true
+ },
+ "p-timeout": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
+ "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "p-finally": "^1.0.0"
+ },
+ "dependencies": {
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+ "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asn1.js": "^5.2.0",
+ "browserify-aes": "^1.0.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "parse-headers": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz",
+ "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==",
+ "dev": true
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true,
+ "optional": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "patch-package": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz",
+ "integrity": "sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg==",
+ "dev": true,
+ "requires": {
+ "@yarnpkg/lockfile": "^1.1.0",
+ "chalk": "^2.4.2",
+ "cross-spawn": "^6.0.5",
+ "find-yarn-workspace-root": "^1.2.1",
+ "fs-extra": "^7.0.1",
+ "is-ci": "^2.0.0",
+ "klaw-sync": "^6.0.0",
+ "minimist": "^1.2.0",
+ "rimraf": "^2.6.3",
+ "semver": "^5.6.0",
+ "slash": "^2.0.0",
+ "tmp": "^0.0.33"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true,
+ "optional": true
+ },
+ "pbkdf2": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
+ "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==",
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
+ "precond": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz",
+ "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "dev": true,
+ "optional": true
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "promise-to-callback": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz",
+ "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=",
+ "dev": true,
+ "requires": {
+ "is-fn": "^1.0.0",
+ "set-immediate-shim": "^1.0.1"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "pull-cat": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz",
+ "integrity": "sha1-tkLdElXaN2pwa220+pYvX9t0wxs=",
+ "dev": true
+ },
+ "pull-defer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.3.tgz",
+ "integrity": "sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA==",
+ "dev": true
+ },
+ "pull-level": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pull-level/-/pull-level-2.0.4.tgz",
+ "integrity": "sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg==",
+ "dev": true,
+ "requires": {
+ "level-post": "^1.0.7",
+ "pull-cat": "^1.1.9",
+ "pull-live": "^1.0.1",
+ "pull-pushable": "^2.0.0",
+ "pull-stream": "^3.4.0",
+ "pull-window": "^2.1.4",
+ "stream-to-pull-stream": "^1.7.1"
+ }
+ },
+ "pull-live": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pull-live/-/pull-live-1.0.1.tgz",
+ "integrity": "sha1-pOzuAeMwFV6RJLu89HYfIbOPUfU=",
+ "dev": true,
+ "requires": {
+ "pull-cat": "^1.1.9",
+ "pull-stream": "^3.4.0"
+ }
+ },
+ "pull-pushable": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.2.0.tgz",
+ "integrity": "sha1-Xy867UethpGfAbEqLpnW8b13ZYE=",
+ "dev": true
+ },
+ "pull-stream": {
+ "version": "3.6.14",
+ "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz",
+ "integrity": "sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==",
+ "dev": true
+ },
+ "pull-window": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/pull-window/-/pull-window-2.1.4.tgz",
+ "integrity": "sha1-/DuG/uvRkgx64pdpHiP3BfiFUvA=",
+ "dev": true,
+ "requires": {
+ "looper": "^2.0.0"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "dev": true
+ },
+ "query-string": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ }
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true,
+ "optional": true
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ }
+ }
+ },
+ "regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.18.0",
+ "babel-types": "^6.19.0",
+ "private": "^0.1.6"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regexp.prototype.flags": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
+ "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
+ "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.2",
+ "is-regex": "^1.1.1",
+ "object-inspect": "^1.8.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.1",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ }
+ }
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "request": {
+ "version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "resumer": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
+ "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
+ "dev": true,
+ "requires": {
+ "through": "~2.3.4"
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "rlp": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz",
+ "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.1"
+ }
+ },
+ "rustbn.js": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz",
+ "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ },
+ "safe-event-emitter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz",
+ "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==",
+ "dev": true,
+ "requires": {
+ "events": "^3.0.0"
+ }
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
+ "dev": true
+ },
+ "scryptsy": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz",
+ "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pbkdf2": "^3.0.3"
+ }
+ },
+ "secp256k1": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz",
+ "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==",
+ "dev": true,
+ "requires": {
+ "elliptic": "^6.5.2",
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "seedrandom": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.1.tgz",
+ "integrity": "sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg==",
+ "dev": true
+ },
+ "semaphore": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz",
+ "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "servify": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz",
+ "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "body-parser": "^1.16.0",
+ "cors": "^2.8.1",
+ "express": "^4.14.0",
+ "request": "^2.79.0",
+ "xhr": "^2.3.3"
+ }
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "dev": true,
+ "optional": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "dev": true,
+ "optional": true
+ },
+ "simple-get": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
+ "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "decompress-response": "^3.3.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.5.12",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
+ "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "dev": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "dependencies": {
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ }
+ }
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true,
+ "optional": true
+ },
+ "stream-to-pull-stream": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz",
+ "integrity": "sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==",
+ "dev": true,
+ "requires": {
+ "looper": "^3.0.0",
+ "pull-stream": "^3.2.3"
+ },
+ "dependencies": {
+ "looper": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz",
+ "integrity": "sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k=",
+ "dev": true
+ }
+ }
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true,
+ "optional": true
+ },
+ "string.prototype.trim": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz",
+ "integrity": "sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.1"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
+ "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz",
+ "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ }
+ }
+ },
+ "strip-hex-prefix": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
+ "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=",
+ "dev": true,
+ "requires": {
+ "is-hex-prefixed": "1.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "swarm-js": {
+ "version": "0.1.40",
+ "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz",
+ "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bluebird": "^3.5.0",
+ "buffer": "^5.0.5",
+ "eth-lib": "^0.1.26",
+ "fs-extra": "^4.0.2",
+ "got": "^7.1.0",
+ "mime-types": "^2.1.16",
+ "mkdirp-promise": "^5.0.1",
+ "mock-fs": "^4.1.0",
+ "setimmediate": "^1.0.5",
+ "tar": "^4.0.2",
+ "xhr-request": "^1.0.1"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true,
+ "optional": true
+ },
+ "got": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
+ "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "decompress-response": "^3.2.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-plain-obj": "^1.1.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "isurl": "^1.0.0-alpha5",
+ "lowercase-keys": "^1.0.0",
+ "p-cancelable": "^0.3.0",
+ "p-timeout": "^1.1.1",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "url-parse-lax": "^1.0.0",
+ "url-to-options": "^1.0.1"
+ }
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true,
+ "optional": true
+ },
+ "p-cancelable": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
+ "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
+ "dev": true,
+ "optional": true
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true,
+ "optional": true
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "prepend-http": "^1.0.1"
+ }
+ }
+ }
+ },
+ "tape": {
+ "version": "4.13.3",
+ "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz",
+ "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==",
+ "dev": true,
+ "requires": {
+ "deep-equal": "~1.1.1",
+ "defined": "~1.0.0",
+ "dotignore": "~0.1.2",
+ "for-each": "~0.3.3",
+ "function-bind": "~1.1.1",
+ "glob": "~7.1.6",
+ "has": "~1.0.3",
+ "inherits": "~2.0.4",
+ "is-regex": "~1.0.5",
+ "minimist": "~1.2.5",
+ "object-inspect": "~1.7.0",
+ "resolve": "~1.17.0",
+ "resumer": "~0.0.0",
+ "string.prototype.trim": "~1.2.1",
+ "through": "~2.3.8"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ }
+ }
+ },
+ "tar": {
+ "version": "4.4.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ },
+ "dependencies": {
+ "fs-minipass": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.6.0"
+ }
+ },
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ }
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+ "dev": true,
+ "optional": true
+ },
+ "tmp": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz",
+ "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==",
+ "dev": true,
+ "requires": {
+ "rimraf": "^2.6.3"
+ }
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "dev": true,
+ "optional": true
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "dev": true,
+ "optional": true
+ },
+ "tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "dev": true,
+ "requires": {
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ }
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
+ "dev": true
+ },
+ "tweetnacl-util": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==",
+ "dev": true
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dev": true,
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "typewise": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz",
+ "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=",
+ "dev": true,
+ "requires": {
+ "typewise-core": "^1.2.0"
+ }
+ },
+ "typewise-core": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz",
+ "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU=",
+ "dev": true
+ },
+ "typewiselite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz",
+ "integrity": "sha1-yIgvobsQksBgBal/NO9chQjjZk4=",
+ "dev": true
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+ "dev": true,
+ "optional": true
+ },
+ "underscore": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+ "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==",
+ "dev": true,
+ "optional": true
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ }
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "unorm": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz",
+ "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true,
+ "optional": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ }
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "url-set-query": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
+ "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=",
+ "dev": true,
+ "optional": true
+ },
+ "url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
+ "dev": true,
+ "optional": true
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
+ },
+ "utf-8-validate": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz",
+ "integrity": "sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==",
+ "dev": true,
+ "requires": {
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "utf8": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+ "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==",
+ "dev": true,
+ "optional": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "util.promisify": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz",
+ "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "for-each": "^0.3.3",
+ "has-symbols": "^1.0.1",
+ "object.getownpropertydescriptors": "^2.1.1"
+ }
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true,
+ "optional": true
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true
+ },
+ "varint": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==",
+ "dev": true,
+ "optional": true
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true,
+ "optional": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "web3": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz",
+ "integrity": "sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "web3-bzz": "1.2.11",
+ "web3-core": "1.2.11",
+ "web3-eth": "1.2.11",
+ "web3-eth-personal": "1.2.11",
+ "web3-net": "1.2.11",
+ "web3-shh": "1.2.11",
+ "web3-utils": "1.2.11"
+ }
+ },
+ "web3-bzz": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz",
+ "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "^12.12.6",
+ "got": "9.6.0",
+ "swarm-js": "^0.1.40",
+ "underscore": "1.9.1"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "12.19.12",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz",
+ "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "web3-core": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz",
+ "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/bn.js": "^4.11.5",
+ "@types/node": "^12.12.6",
+ "bignumber.js": "^9.0.0",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-core-requestmanager": "1.2.11",
+ "web3-utils": "1.2.11"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "12.19.12",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz",
+ "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "web3-core-helpers": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz",
+ "integrity": "sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "underscore": "1.9.1",
+ "web3-eth-iban": "1.2.11",
+ "web3-utils": "1.2.11"
+ }
+ },
+ "web3-core-method": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz",
+ "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/transactions": "^5.0.0-beta.135",
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-promievent": "1.2.11",
+ "web3-core-subscriptions": "1.2.11",
+ "web3-utils": "1.2.11"
+ }
+ },
+ "web3-core-promievent": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz",
+ "integrity": "sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "eventemitter3": "4.0.4"
+ }
+ },
+ "web3-core-requestmanager": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz",
+ "integrity": "sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11",
+ "web3-providers-http": "1.2.11",
+ "web3-providers-ipc": "1.2.11",
+ "web3-providers-ws": "1.2.11"
+ }
+ },
+ "web3-core-subscriptions": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz",
+ "integrity": "sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "eventemitter3": "4.0.4",
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11"
+ }
+ },
+ "web3-eth": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz",
+ "integrity": "sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "underscore": "1.9.1",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-core-subscriptions": "1.2.11",
+ "web3-eth-abi": "1.2.11",
+ "web3-eth-accounts": "1.2.11",
+ "web3-eth-contract": "1.2.11",
+ "web3-eth-ens": "1.2.11",
+ "web3-eth-iban": "1.2.11",
+ "web3-eth-personal": "1.2.11",
+ "web3-net": "1.2.11",
+ "web3-utils": "1.2.11"
+ }
+ },
+ "web3-eth-abi": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz",
+ "integrity": "sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@ethersproject/abi": "5.0.0-beta.153",
+ "underscore": "1.9.1",
+ "web3-utils": "1.2.11"
+ }
+ },
+ "web3-eth-accounts": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz",
+ "integrity": "sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "crypto-browserify": "3.12.0",
+ "eth-lib": "0.2.8",
+ "ethereumjs-common": "^1.3.2",
+ "ethereumjs-tx": "^2.1.1",
+ "scrypt-js": "^3.0.1",
+ "underscore": "1.9.1",
+ "uuid": "3.3.2",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-utils": "1.2.11"
+ },
+ "dependencies": {
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "web3-eth-contract": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz",
+ "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/bn.js": "^4.11.5",
+ "underscore": "1.9.1",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-core-promievent": "1.2.11",
+ "web3-core-subscriptions": "1.2.11",
+ "web3-eth-abi": "1.2.11",
+ "web3-utils": "1.2.11"
+ }
+ },
+ "web3-eth-ens": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz",
+ "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "content-hash": "^2.5.2",
+ "eth-ens-namehash": "2.0.8",
+ "underscore": "1.9.1",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-promievent": "1.2.11",
+ "web3-eth-abi": "1.2.11",
+ "web3-eth-contract": "1.2.11",
+ "web3-utils": "1.2.11"
+ }
+ },
+ "web3-eth-iban": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz",
+ "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.2.11"
+ }
+ },
+ "web3-eth-personal": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz",
+ "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "^12.12.6",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-net": "1.2.11",
+ "web3-utils": "1.2.11"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "12.19.12",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.12.tgz",
+ "integrity": "sha512-UwfL2uIU9arX/+/PRcIkT08/iBadGN2z6ExOROA2Dh5mAuWTBj6iJbQX4nekiV5H8cTrEG569LeX+HRco9Cbxw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "web3-net": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz",
+ "integrity": "sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "web3-core": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-utils": "1.2.11"
+ }
+ },
+ "web3-provider-engine": {
+ "version": "14.2.1",
+ "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz",
+ "integrity": "sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.5.0",
+ "backoff": "^2.5.0",
+ "clone": "^2.0.0",
+ "cross-fetch": "^2.1.0",
+ "eth-block-tracker": "^3.0.0",
+ "eth-json-rpc-infura": "^3.1.0",
+ "eth-sig-util": "^1.4.2",
+ "ethereumjs-block": "^1.2.2",
+ "ethereumjs-tx": "^1.2.0",
+ "ethereumjs-util": "^5.1.5",
+ "ethereumjs-vm": "^2.3.4",
+ "json-rpc-error": "^2.0.0",
+ "json-stable-stringify": "^1.0.1",
+ "promise-to-callback": "^1.0.0",
+ "readable-stream": "^2.2.9",
+ "request": "^2.85.0",
+ "semaphore": "^1.0.3",
+ "ws": "^5.1.1",
+ "xhr": "^2.2.0",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz",
+ "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "deferred-leveldown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz",
+ "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.6.0"
+ }
+ },
+ "eth-sig-util": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz",
+ "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=",
+ "dev": true,
+ "requires": {
+ "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
+ "ethereumjs-util": "^5.1.1"
+ }
+ },
+ "ethereumjs-abi": {
+ "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0",
+ "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.8",
+ "ethereumjs-util": "^6.0.0"
+ },
+ "dependencies": {
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ }
+ }
+ },
+ "ethereumjs-account": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz",
+ "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-block": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz",
+ "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "ethereum-common": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz",
+ "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==",
+ "dev": true
+ }
+ }
+ },
+ "ethereumjs-tx": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+ "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+ "dev": true,
+ "requires": {
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-vm": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz",
+ "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "ethereumjs-account": "^2.0.3",
+ "ethereumjs-block": "~2.2.0",
+ "ethereumjs-common": "^1.1.0",
+ "ethereumjs-util": "^6.0.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "ethereumjs-block": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz",
+ "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "ethereumjs-tx": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz",
+ "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==",
+ "dev": true,
+ "requires": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ }
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "level-codec": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz",
+ "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==",
+ "dev": true
+ },
+ "level-errors": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz",
+ "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz",
+ "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "level-ws": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz",
+ "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "xtend": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+ "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
+ "dev": true,
+ "requires": {
+ "object-keys": "~0.4.0"
+ }
+ }
+ }
+ },
+ "levelup": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz",
+ "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==",
+ "dev": true,
+ "requires": {
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=",
+ "dev": true
+ },
+ "memdown": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
+ "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "dev": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "merkle-patricia-tree": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz",
+ "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==",
+ "dev": true,
+ "requires": {
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ }
+ }
+ },
+ "object-keys": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
+ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "ws": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
+ "web3-providers-http": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz",
+ "integrity": "sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "web3-core-helpers": "1.2.11",
+ "xhr2-cookies": "1.1.0"
+ }
+ },
+ "web3-providers-ipc": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz",
+ "integrity": "sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "oboe": "2.1.4",
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11"
+ }
+ },
+ "web3-providers-ws": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz",
+ "integrity": "sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "eventemitter3": "4.0.4",
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11",
+ "websocket": "^1.0.31"
+ }
+ },
+ "web3-shh": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz",
+ "integrity": "sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "web3-core": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-core-subscriptions": "1.2.11",
+ "web3-net": "1.2.11"
+ }
+ },
+ "web3-utils": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz",
+ "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.9.1",
+ "utf8": "3.0.0"
+ },
+ "dependencies": {
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ }
+ }
+ },
+ "websocket": {
+ "version": "1.0.32",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz",
+ "integrity": "sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==",
+ "dev": true,
+ "requires": {
+ "bufferutil": "^4.0.1",
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "typedarray-to-buffer": "^3.1.5",
+ "utf-8-validate": "^5.0.2",
+ "yaeti": "^0.0.6"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "whatwg-fetch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
+ "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "xhr": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
+ "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
+ "dev": true,
+ "requires": {
+ "global": "~4.4.0",
+ "is-function": "^1.0.1",
+ "parse-headers": "^2.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "xhr-request": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz",
+ "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer-to-arraybuffer": "^0.0.5",
+ "object-assign": "^4.1.1",
+ "query-string": "^5.0.1",
+ "simple-get": "^2.7.0",
+ "timed-out": "^4.0.1",
+ "url-set-query": "^1.0.0",
+ "xhr": "^2.0.4"
+ }
+ },
+ "xhr-request-promise": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz",
+ "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "xhr-request": "^1.1.0"
+ }
+ },
+ "xhr2-cookies": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz",
+ "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cookiejar": "^2.1.1"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "yaeti": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
+ "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ }
+ }
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "optional": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "get-iterator": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz",
+ "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==",
+ "dev": true,
+ "optional": true
+ },
+ "get-params": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/get-params/-/get-params-0.1.2.tgz",
+ "integrity": "sha1-uuDfq6WIoMYNeDTA2Nwv9g7u8v4=",
+ "dev": true
+ },
+ "get-port": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
+ "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=",
+ "dev": true
+ },
+ "get-prototype-of": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/get-prototype-of/-/get-prototype-of-0.0.0.tgz",
+ "integrity": "sha1-mHcr0QcW0W3rSzIlFsRp78oorEQ=",
+ "dev": true,
+ "optional": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "ghost-testrpc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz",
+ "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "node-emoji": "^1.10.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true,
+ "optional": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "glob-stream": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
+ "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extend": "^3.0.0",
+ "glob": "^5.0.3",
+ "glob-parent": "^3.0.0",
+ "micromatch": "^2.3.7",
+ "ordered-read-streams": "^0.3.0",
+ "through2": "^0.6.0",
+ "to-absolute-glob": "^0.1.1",
+ "unique-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true,
+ "optional": true
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true,
+ "optional": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true,
+ "optional": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true,
+ "optional": true
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
+ }
+ }
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
+ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+ "dev": true
+ },
+ "global": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
+ "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
+ "dev": true,
+ "requires": {
+ "min-document": "^2.19.0",
+ "process": "^0.11.10"
+ }
+ },
+ "global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^3.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ }
+ },
+ "globals": {
+ "version": "13.9.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz",
+ "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "globalthis": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz",
+ "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
+ "globby": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz",
+ "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "2.0.0",
+ "fast-glob": "^2.0.2",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "google-protobuf": {
+ "version": "3.17.2",
+ "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.17.2.tgz",
+ "integrity": "sha512-LlFVMhSkNy6C1MakEjiwbLxq5w+V+Go+mvt2EUoysrp8gXl903ic2W/3BwzM4/WnDMJP+u7UO2efUSl/0CJMzA==",
+ "dev": true,
+ "optional": true
+ },
+ "got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
+ "dev": true
+ },
+ "graphql": {
+ "version": "15.5.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz",
+ "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==",
+ "dev": true,
+ "optional": true
+ },
+ "graphql-extensions": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.15.0.tgz",
+ "integrity": "sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@apollographql/apollo-tools": "^0.5.0",
+ "apollo-server-env": "^3.1.0",
+ "apollo-server-types": "^0.9.0"
+ }
+ },
+ "graphql-subscriptions": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz",
+ "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "iterall": "^1.3.0"
+ }
+ },
+ "graphql-tag": {
+ "version": "2.12.4",
+ "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.4.tgz",
+ "integrity": "sha512-VV1U4O+9x99EkNpNmCUV5RZwq6MnK4+pGbRYWG+lA/m3uo7TSqJF81OkcOP148gFP6fzdl7JWYBrwWVTS9jXww==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "graphql-tools": {
+ "version": "6.2.6",
+ "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-6.2.6.tgz",
+ "integrity": "sha512-OyhSvK5ALVVD6bFiWjAqv2+lRyvjIRfb6Br5Tkjrv++rxnXDodPH/zhMbDGRw+W3SD5ioGEEz84yO48iPiN7jA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@graphql-tools/batch-delegate": "^6.2.6",
+ "@graphql-tools/code-file-loader": "^6.2.4",
+ "@graphql-tools/delegate": "^6.2.4",
+ "@graphql-tools/git-loader": "^6.2.4",
+ "@graphql-tools/github-loader": "^6.2.4",
+ "@graphql-tools/graphql-file-loader": "^6.2.4",
+ "@graphql-tools/graphql-tag-pluck": "^6.2.4",
+ "@graphql-tools/import": "^6.2.4",
+ "@graphql-tools/json-file-loader": "^6.2.4",
+ "@graphql-tools/links": "^6.2.4",
+ "@graphql-tools/load": "^6.2.4",
+ "@graphql-tools/load-files": "^6.2.4",
+ "@graphql-tools/merge": "^6.2.4",
+ "@graphql-tools/mock": "^6.2.4",
+ "@graphql-tools/module-loader": "^6.2.4",
+ "@graphql-tools/relay-operation-optimizer": "^6.2.4",
+ "@graphql-tools/resolvers-composition": "^6.2.4",
+ "@graphql-tools/schema": "^6.2.4",
+ "@graphql-tools/stitch": "^6.2.4",
+ "@graphql-tools/url-loader": "^6.2.4",
+ "@graphql-tools/utils": "^6.2.4",
+ "@graphql-tools/wrap": "^6.2.4",
+ "tslib": "~2.0.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
+ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "graphql-ws": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.9.0.tgz",
+ "integrity": "sha512-sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag==",
+ "dev": true,
+ "optional": true
+ },
+ "growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "dev": true
+ },
+ "gulp-sourcemaps": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.12.1.tgz",
+ "integrity": "sha1-tDfR89mAzyboEYSCNxjOFa5ll7Y=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@gulp-sourcemaps/map-sources": "1.X",
+ "acorn": "4.X",
+ "convert-source-map": "1.X",
+ "css": "2.X",
+ "debug-fabulous": "0.0.X",
+ "detect-newline": "2.X",
+ "graceful-fs": "4.X",
+ "source-map": "~0.6.0",
+ "strip-bom": "2.X",
+ "through2": "2.X",
+ "vinyl": "1.X"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true,
+ "optional": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "handlebars": {
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+ "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.0",
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4",
+ "wordwrap": "^1.0.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "hardhat": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.3.0.tgz",
+ "integrity": "sha512-nc4ro2bM4wPaA6/0Y22o5F5QrifQk2KCyPUUKLPUeFFZoGNGYB8vmeW/k9gV9DdMukdWTzfYlKc2Jn4bfb6tDQ==",
+ "dev": true,
+ "requires": {
+ "@ethereumjs/block": "^3.2.1",
+ "@ethereumjs/blockchain": "^5.2.1",
+ "@ethereumjs/common": "^2.2.0",
+ "@ethereumjs/tx": "^3.1.3",
+ "@ethereumjs/vm": "^5.3.2",
+ "@sentry/node": "^5.18.1",
+ "@solidity-parser/parser": "^0.11.0",
+ "@types/bn.js": "^5.1.0",
+ "@types/lru-cache": "^5.1.0",
+ "abort-controller": "^3.0.0",
+ "adm-zip": "^0.4.16",
+ "ansi-escapes": "^4.3.0",
+ "chalk": "^2.4.2",
+ "chokidar": "^3.4.0",
+ "ci-info": "^2.0.0",
+ "debug": "^4.1.1",
+ "enquirer": "^2.3.0",
+ "env-paths": "^2.2.0",
+ "eth-sig-util": "^2.5.2",
+ "ethereum-cryptography": "^0.1.2",
+ "ethereumjs-abi": "^0.6.8",
+ "ethereumjs-util": "^7.0.10",
+ "find-up": "^2.1.0",
+ "fp-ts": "1.19.3",
+ "fs-extra": "^7.0.1",
+ "glob": "^7.1.3",
+ "immutable": "^4.0.0-rc.12",
+ "io-ts": "1.10.4",
+ "lodash": "^4.17.11",
+ "merkle-patricia-tree": "^4.1.0",
+ "mnemonist": "^0.38.0",
+ "mocha": "^7.1.2",
+ "node-fetch": "^2.6.0",
+ "qs": "^6.7.0",
+ "raw-body": "^2.4.1",
+ "resolve": "1.17.0",
+ "semver": "^6.3.0",
+ "slash": "^3.0.0",
+ "solc": "0.7.3",
+ "source-map-support": "^0.5.13",
+ "stacktrace-parser": "^0.1.10",
+ "true-case-path": "^2.2.1",
+ "tsort": "0.0.1",
+ "uuid": "^3.3.2",
+ "ws": "^7.2.1"
+ },
+ "dependencies": {
+ "@solidity-parser/parser": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.11.1.tgz",
+ "integrity": "sha512-H8BSBoKE8EubJa0ONqecA2TviT3TnHeC4NpgnAHSUiuhZoQBfPB4L2P9bs8R6AoTW10Endvh3vc+fomVMIDIYQ==",
+ "dev": true
+ },
+ "@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz",
+ "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "http-errors": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
+ "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
+ "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "raw-body": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
+ "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.3",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "ws": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+ "dev": true
+ }
+ }
+ },
+ "hardhat-contract-sizer": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/hardhat-contract-sizer/-/hardhat-contract-sizer-2.0.3.tgz",
+ "integrity": "sha512-iaixOzWxwOSIIE76cl2uk4m9VXI1hKU3bFt+gl7jDhyb2/JB2xOp5wECkfWqAoc4V5lD4JtjldZlpSTbzX+nPQ==",
+ "dev": true,
+ "requires": {
+ "cli-table3": "^0.6.0",
+ "colors": "^1.4.0"
+ }
+ },
+ "hardhat-deploy": {
+ "version": "0.7.10",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.7.10.tgz",
+ "integrity": "sha512-+0oiEWy/FgKOEzRNhSWPqSjofVCwtkK3E5x916kbZ5SgFGOjWTFCrWbWUYjzc2GyZgNXuSuRn8mBowHSLF4sVg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abi": "^5.0.0",
+ "@ethersproject/abstract-signer": "^5.0.0",
+ "@ethersproject/address": "^5.0.0",
+ "@ethersproject/bignumber": "^5.0.0",
+ "@ethersproject/bytes": "^5.0.0",
+ "@ethersproject/contracts": "^5.0.0",
+ "@ethersproject/providers": "^5.0.0",
+ "@ethersproject/solidity": "^5.0.0",
+ "@ethersproject/transactions": "^5.0.0",
+ "@ethersproject/wallet": "^5.0.0",
+ "@types/qs": "^6.9.4",
+ "axios": "^0.21.1",
+ "chalk": "^4.1.0",
+ "chokidar": "^3.4.0",
+ "debug": "^4.1.1",
+ "form-data": "^3.0.0",
+ "fs-extra": "^9.0.0",
+ "match-all": "^1.2.6",
+ "murmur-128": "^0.2.1",
+ "qs": "^6.9.4"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "form-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
+ "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true
+ }
+ }
+ },
+ "hardhat-docgen": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/hardhat-docgen/-/hardhat-docgen-1.1.1.tgz",
+ "integrity": "sha512-vMZqT2go9JmIAtTfK4QZLsL2hzGVccqkfDvSIvqC6wvH2FX9vmp4H5mTHoYqimanqZcU74QZ8Vi81G13m0WZ2w==",
+ "dev": true,
+ "requires": {
+ "css-loader": "^2.1.0",
+ "html-webpack-plugin": "^3.2.0",
+ "vue": "^2.6.12",
+ "vue-loader": "^15.6.4",
+ "vue-router": "^3.4.9",
+ "vue-template-compiler": "^2.6.7",
+ "webpack": "^4.29.5"
+ }
+ },
+ "hardhat-gas-reporter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.4.tgz",
+ "integrity": "sha512-G376zKh81G3K9WtDA+SoTLWsoygikH++tD1E7llx+X7J+GbIqfwhDKKgvJjcnEesMrtR9UqQHK02lJuXY1RTxw==",
+ "dev": true,
+ "requires": {
+ "eth-gas-reporter": "^0.2.20",
+ "sha1": "^1.1.1"
+ }
+ },
+ "hardhat-log-remover": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hardhat-log-remover/-/hardhat-log-remover-2.0.2.tgz",
+ "integrity": "sha512-TvEWOisQmZUZ7Mlb7s4XYS/MxgZzjFJSjDI8v3uTcrD6aaXy1QtomW6D6WNsISEWtwwRlSntOGpHQwFjrz2MCw==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ }
+ }
+ },
+ "has-bigints": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
+ "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbol-support-x": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
+ "dev": true
+ },
+ "has-to-string-tag-x": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
+ "dev": true,
+ "requires": {
+ "has-symbol-support-x": "^1.4.1"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "dev": true,
+ "optional": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ }
+ }
+ },
+ "hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+ "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+ "dev": true
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "hasha": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
+ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
+ "dev": true,
+ "requires": {
+ "is-stream": "^1.0.1",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "header-case": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz",
+ "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.3"
+ }
+ },
+ "highlight.js": {
+ "version": "9.18.5",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz",
+ "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==",
+ "dev": true
+ },
+ "highlightjs-solidity": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-1.1.0.tgz",
+ "integrity": "sha512-LtH7uuoe+FOmtQd41ozAZKLJC2chqdqs461FJcWAx00R3VcBhSQTRFfzRGtTQqu2wsVIEdHiyynrPrEDDWyIMw==",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true,
+ "optional": true
+ },
+ "html-minifier": {
+ "version": "3.5.21",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz",
+ "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==",
+ "dev": true,
+ "requires": {
+ "camel-case": "3.0.x",
+ "clean-css": "4.2.x",
+ "commander": "2.17.x",
+ "he": "1.2.x",
+ "param-case": "2.1.x",
+ "relateurl": "0.2.x",
+ "uglify-js": "3.4.x"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.17.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+ "dev": true
+ }
+ }
+ },
+ "html-webpack-plugin": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
+ "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
+ "dev": true,
+ "requires": {
+ "html-minifier": "^3.2.3",
+ "loader-utils": "^0.2.16",
+ "lodash": "^4.17.3",
+ "pretty-error": "^2.0.2",
+ "tapable": "^1.0.0",
+ "toposort": "^1.0.0",
+ "util.promisify": "1.0.0"
+ },
+ "dependencies": {
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ }
+ }
+ },
+ "htmlparser2": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
+ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.0.0",
+ "domutils": "^2.5.2",
+ "entities": "^2.0.0"
+ }
+ },
+ "http-basic": {
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz",
+ "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==",
+ "dev": true,
+ "requires": {
+ "caseless": "^0.12.0",
+ "concat-stream": "^1.6.2",
+ "http-response-object": "^3.0.1",
+ "parse-cache-control": "^1.0.1"
+ }
+ },
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "http-https": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
+ "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=",
+ "dev": true
+ },
+ "http-response-object": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz",
+ "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "^10.0.3"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
+ "dev": true
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+ "dev": true
+ },
+ "https-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "dev": true,
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "husky": {
+ "version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz",
+ "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "compare-versions": "^3.6.0",
+ "cosmiconfig": "^7.0.0",
+ "find-versions": "^4.0.0",
+ "opencollective-postinstall": "^2.0.2",
+ "pkg-dir": "^5.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "slash": "^3.0.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "pkg-dir": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^5.0.0"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "ice-cap": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/ice-cap/-/ice-cap-0.0.4.tgz",
+ "integrity": "sha1-im0xq0ysjUtW3k+pRt8zUlYbbhg=",
+ "dev": true,
+ "requires": {
+ "cheerio": "0.20.0",
+ "color-logger": "0.0.3"
+ },
+ "dependencies": {
+ "cheerio": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
+ "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=",
+ "dev": true,
+ "requires": {
+ "css-select": "~1.2.0",
+ "dom-serializer": "~0.1.0",
+ "entities": "~1.1.1",
+ "htmlparser2": "~3.8.1",
+ "jsdom": "^7.0.2",
+ "lodash": "^4.1.0"
+ }
+ },
+ "color-logger": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/color-logger/-/color-logger-0.0.3.tgz",
+ "integrity": "sha1-2bIt0dlz4Waxi/MT+fSBu6TfIBg=",
+ "dev": true
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+ "dev": true
+ },
+ "dom-serializer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "entities": "^1.1.1"
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ },
+ "htmlparser2": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1",
+ "domhandler": "2.3",
+ "domutils": "1.5",
+ "entities": "1.0",
+ "readable-stream": "1.1"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
+ "dev": true
+ }
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "icss-replace-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+ "dev": true
+ },
+ "icss-utils": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
+ "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.14"
+ }
+ },
+ "idna-uts46-hx": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz",
+ "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==",
+ "dev": true,
+ "requires": {
+ "punycode": "2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
+ "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=",
+ "dev": true
+ }
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "ignore-walk": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz",
+ "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "imagemin": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz",
+ "integrity": "sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A==",
+ "dev": true,
+ "requires": {
+ "file-type": "^10.7.0",
+ "globby": "^8.0.1",
+ "make-dir": "^1.0.0",
+ "p-pipe": "^1.1.0",
+ "pify": "^4.0.1",
+ "replace-ext": "^1.0.0"
+ }
+ },
+ "immediate": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz",
+ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==",
+ "dev": true
+ },
+ "immutable": {
+ "version": "4.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0-rc.12.tgz",
+ "integrity": "sha512-0M2XxkZLx/mi3t8NVwIm1g8nHoEmM9p9UBl/G9k4+hm0kBgOVdMV/B3CY5dQ8qG8qc80NN4gDV4HQv6FTJ5q7A==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "import-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
+ "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "imul": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz",
+ "integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk=",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.2.0",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.12",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "io-ts": {
+ "version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz",
+ "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==",
+ "dev": true,
+ "requires": {
+ "fp-ts": "^1.0.0"
+ }
+ },
+ "ip-regex": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz",
+ "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==",
+ "dev": true,
+ "optional": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "dev": true
+ },
+ "ipfs-core-types": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.2.1.tgz",
+ "integrity": "sha512-q93+93qSybku6woZaajE9mCrHeVoMzNtZ7S5m/zx0+xHRhnoLlg8QNnGGsb5/+uFQt/RiBArsIw/Q61K9Jwkzw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cids": "^1.1.5",
+ "multiaddr": "^8.0.0",
+ "peer-id": "^0.14.1"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "ipfs-core-utils": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.6.1.tgz",
+ "integrity": "sha512-UFIklwE3CFcsNIhYFDuz0qB7E2QtdFauRfc76kskgiqhGWcjqqiDeND5zBCrAy0u8UMaDqAbFl02f/mIq1yKXw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "any-signal": "^2.0.0",
+ "blob-to-it": "^1.0.1",
+ "browser-readablestream-to-it": "^1.0.1",
+ "cids": "^1.1.5",
+ "err-code": "^2.0.3",
+ "ipfs-core-types": "^0.2.1",
+ "ipfs-utils": "^5.0.0",
+ "it-all": "^1.0.4",
+ "it-map": "^1.0.4",
+ "it-peekable": "^1.0.1",
+ "multiaddr": "^8.0.0",
+ "multiaddr-to-uri": "^6.0.0",
+ "parse-duration": "^0.4.4",
+ "timeout-abort-controller": "^1.1.1",
+ "uint8arrays": "^1.1.0"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ },
+ "dependencies": {
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ },
+ "dependencies": {
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ },
+ "dependencies": {
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "ipfs-http-client": {
+ "version": "48.2.2",
+ "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-48.2.2.tgz",
+ "integrity": "sha512-f3ppfWe913SJLvunm0UgqdA1dxVZSGQJPaEVJtqgjxPa5x0fPDiBDdo60g2MgkW1W6bhF9RGlxvHHIE9sv/tdg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "any-signal": "^2.0.0",
+ "bignumber.js": "^9.0.0",
+ "cids": "^1.1.5",
+ "debug": "^4.1.1",
+ "form-data": "^3.0.0",
+ "ipfs-core-types": "^0.2.1",
+ "ipfs-core-utils": "^0.6.1",
+ "ipfs-utils": "^5.0.0",
+ "ipld-block": "^0.11.0",
+ "ipld-dag-cbor": "^0.17.0",
+ "ipld-dag-pb": "^0.20.0",
+ "ipld-raw": "^6.0.0",
+ "it-last": "^1.0.4",
+ "it-map": "^1.0.4",
+ "it-tar": "^1.2.2",
+ "it-to-stream": "^0.1.2",
+ "merge-options": "^2.0.0",
+ "multiaddr": "^8.0.0",
+ "multibase": "^3.0.0",
+ "multicodec": "^2.0.1",
+ "multihashes": "^3.0.1",
+ "nanoid": "^3.1.12",
+ "native-abort-controller": "~0.0.3",
+ "parse-duration": "^0.4.4",
+ "stream-to-it": "^0.2.2",
+ "uint8arrays": "^1.1.0"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "form-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true,
+ "optional": true
+ },
+ "multibase": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
+ "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1",
+ "web-encoding": "^1.0.6"
+ }
+ },
+ "multicodec": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz",
+ "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "1.1.0",
+ "varint": "^6.0.0"
+ },
+ "dependencies": {
+ "varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "multihashes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz",
+ "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^3.1.0",
+ "uint8arrays": "^2.0.5",
+ "varint": "^6.0.0"
+ },
+ "dependencies": {
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ }
+ }
+ },
+ "varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "nanoid": {
+ "version": "3.1.23",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
+ "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "ipfs-utils": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-5.0.1.tgz",
+ "integrity": "sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "any-signal": "^2.1.0",
+ "buffer": "^6.0.1",
+ "electron-fetch": "^1.7.2",
+ "err-code": "^2.0.0",
+ "fs-extra": "^9.0.1",
+ "is-electron": "^2.2.0",
+ "iso-url": "^1.0.0",
+ "it-glob": "0.0.10",
+ "it-to-stream": "^0.1.2",
+ "merge-options": "^2.0.0",
+ "nanoid": "^3.1.3",
+ "native-abort-controller": "0.0.3",
+ "native-fetch": "^2.0.0",
+ "node-fetch": "^2.6.0",
+ "stream-to-it": "^0.2.0"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "iso-url": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz",
+ "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==",
+ "dev": true,
+ "optional": true
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "nanoid": {
+ "version": "3.1.23",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
+ "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
+ "dev": true,
+ "optional": true
+ },
+ "native-fetch": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz",
+ "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "globalthis": "^1.0.1"
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "ipld-block": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.11.1.tgz",
+ "integrity": "sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cids": "^1.0.0"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "ipld-dag-cbor": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz",
+ "integrity": "sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "borc": "^2.1.2",
+ "cids": "^1.0.0",
+ "is-circular": "^1.0.2",
+ "multicodec": "^3.0.1",
+ "multihashing-async": "^2.0.0",
+ "uint8arrays": "^2.1.3"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "ipld-dag-pb": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz",
+ "integrity": "sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cids": "^1.0.0",
+ "class-is": "^1.1.0",
+ "multicodec": "^2.0.0",
+ "multihashing-async": "^2.0.0",
+ "protons": "^2.0.0",
+ "reset": "^0.1.0",
+ "run": "^1.4.0",
+ "stable": "^0.1.8",
+ "uint8arrays": "^1.0.0"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ },
+ "dependencies": {
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz",
+ "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "1.1.0",
+ "varint": "^6.0.0"
+ },
+ "dependencies": {
+ "varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ },
+ "dependencies": {
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "ipld-raw": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-6.0.0.tgz",
+ "integrity": "sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cids": "^1.0.0",
+ "multicodec": "^2.0.0",
+ "multihashing-async": "^2.0.0"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ },
+ "dependencies": {
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ }
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz",
+ "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "1.1.0",
+ "varint": "^6.0.0"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
+ "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1",
+ "web-encoding": "^1.0.6"
+ }
+ },
+ "uint8arrays": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz",
+ "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^3.0.0",
+ "web-encoding": "^1.0.2"
+ }
+ },
+ "varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-arguments": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
+ "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-bigint": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz",
+ "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-boolean-object": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz",
+ "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
+ "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
+ "dev": true
+ },
+ "is-capitalized": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-capitalized/-/is-capitalized-1.0.0.tgz",
+ "integrity": "sha1-TIRktNkdPk7rRIid0s2PGwrEwTY=",
+ "dev": true,
+ "optional": true
+ },
+ "is-circular": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz",
+ "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==",
+ "dev": true,
+ "optional": true
+ },
+ "is-class": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.4.tgz",
+ "integrity": "sha1-4FdFFwW7NOOePjNZjJOpg3KWtzY=",
+ "dev": true,
+ "optional": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz",
+ "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "dev": true,
+ "optional": true
+ },
+ "is-electron": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz",
+ "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==",
+ "dev": true,
+ "optional": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-function": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
+ "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==",
+ "dev": true
+ },
+ "is-generator-function": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz",
+ "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-hex-prefixed": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
+ "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=",
+ "dev": true
+ },
+ "is-ip": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz",
+ "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ip-regex": "^4.0.0"
+ }
+ },
+ "is-lower-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
+ "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=",
+ "dev": true,
+ "requires": {
+ "lower-case": "^1.1.0"
+ }
+ },
+ "is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "dev": true
+ },
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-number-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz",
+ "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==",
+ "dev": true
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true,
+ "optional": true
+ },
+ "is-object": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
+ "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "dev": true,
+ "optional": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true,
+ "optional": true
+ },
+ "is-promise": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
+ "dev": true,
+ "optional": true
+ },
+ "is-regex": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
+ "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-retry-allowed": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
+ "dev": true
+ },
+ "is-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-string": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz",
+ "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==",
+ "dev": true
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-typed-array": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz",
+ "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.2",
+ "call-bind": "^1.0.2",
+ "es-abstract": "^1.18.0-next.2",
+ "foreach": "^2.0.5",
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-upper-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
+ "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=",
+ "dev": true,
+ "requires": {
+ "upper-case": "^1.1.0"
+ }
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true,
+ "optional": true
+ },
+ "is-valid-glob": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
+ "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=",
+ "dev": true,
+ "optional": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "iso-constants": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz",
+ "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==",
+ "dev": true,
+ "optional": true
+ },
+ "iso-random-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz",
+ "integrity": "sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "events": "^3.3.0",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "iso-url": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz",
+ "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "isomorphic-ws": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
+ "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
+ "dev": true,
+ "optional": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "isurl": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
+ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
+ "dev": true,
+ "requires": {
+ "has-to-string-tag-x": "^1.2.0",
+ "is-object": "^1.0.1"
+ }
+ },
+ "it-all": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz",
+ "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==",
+ "dev": true,
+ "optional": true
+ },
+ "it-concat": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-1.0.3.tgz",
+ "integrity": "sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bl": "^4.0.0"
+ }
+ },
+ "it-drain": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.4.tgz",
+ "integrity": "sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==",
+ "dev": true,
+ "optional": true
+ },
+ "it-glob": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz",
+ "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fs-extra": "^9.0.1",
+ "minimatch": "^3.0.4"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "it-last": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.5.tgz",
+ "integrity": "sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q==",
+ "dev": true,
+ "optional": true
+ },
+ "it-map": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz",
+ "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==",
+ "dev": true,
+ "optional": true
+ },
+ "it-peekable": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.2.tgz",
+ "integrity": "sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg==",
+ "dev": true,
+ "optional": true
+ },
+ "it-reader": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz",
+ "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bl": "^4.0.0"
+ }
+ },
+ "it-tar": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-1.2.2.tgz",
+ "integrity": "sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bl": "^4.0.0",
+ "buffer": "^5.4.3",
+ "iso-constants": "^0.1.2",
+ "it-concat": "^1.0.0",
+ "it-reader": "^2.0.0",
+ "p-defer": "^3.0.0"
+ }
+ },
+ "it-to-stream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz",
+ "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer": "^5.6.0",
+ "fast-fifo": "^1.0.0",
+ "get-iterator": "^1.0.2",
+ "p-defer": "^3.0.0",
+ "p-fifo": "^1.0.0",
+ "readable-stream": "^3.6.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "iter-tools": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/iter-tools/-/iter-tools-7.1.3.tgz",
+ "integrity": "sha512-Pnd3FVHgKnDHrTVjggXLMq5O/P60fho5iL0a0kkdLcofxX8STHw6cgYZ4ZHQS3Zb4Hg/VeqeNUxDs4vlVwUL4A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/runtime": "^7.12.1"
+ }
+ },
+ "iterall": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz",
+ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==",
+ "dev": true,
+ "optional": true
+ },
+ "iterate-iterator": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz",
+ "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==",
+ "dev": true
+ },
+ "iterate-value": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz",
+ "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==",
+ "dev": true,
+ "requires": {
+ "es-get-iterator": "^1.0.2",
+ "iterate-iterator": "^1.0.1"
+ }
+ },
+ "js-graph-algorithms": {
+ "version": "1.0.18",
+ "resolved": "https://registry.npmjs.org/js-graph-algorithms/-/js-graph-algorithms-1.0.18.tgz",
+ "integrity": "sha1-+W7Ie/GU9cCjE2X6Dh0Ht7li2JE=",
+ "dev": true
+ },
+ "js-sha3": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsan": {
+ "version": "3.1.13",
+ "resolved": "https://registry.npmjs.org/jsan/-/jsan-3.1.13.tgz",
+ "integrity": "sha512-9kGpCsGHifmw6oJet+y8HaCl14y7qgAsxVdV3pCHDySNR3BfDC30zgkssd7x5LRVAT22dnpbe9JdzzmXZnq9/g==",
+ "dev": true
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "jsdom": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
+ "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abab": "^1.0.0",
+ "acorn": "^2.4.0",
+ "acorn-globals": "^1.0.4",
+ "cssom": ">= 0.3.0 < 0.4.0",
+ "cssstyle": ">= 0.2.29 < 0.3.0",
+ "escodegen": "^1.6.1",
+ "nwmatcher": ">= 1.3.7 < 2.0.0",
+ "parse5": "^1.5.1",
+ "request": "^2.55.0",
+ "sax": "^1.1.4",
+ "symbol-tree": ">= 3.1.0 < 4.0.0",
+ "tough-cookie": "^2.2.0",
+ "webidl-conversions": "^2.0.0",
+ "whatwg-url-compat": "~0.6.5",
+ "xml-name-validator": ">= 2.0.1 < 3.0.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+ "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
+ "dev": true,
+ "optional": true
+ },
+ "parse5": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
+ "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true,
+ "optional": true
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "json-pointer": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz",
+ "integrity": "sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q==",
+ "dev": true,
+ "requires": {
+ "foreach": "^2.0.4"
+ }
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "dev": true,
+ "requires": {
+ "jsonify": "~0.0.0"
+ }
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json-text-sequence": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz",
+ "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=",
+ "dev": true,
+ "requires": {
+ "delimit-stream": "0.1.0"
+ }
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "jsondown": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/jsondown/-/jsondown-1.0.0.tgz",
+ "integrity": "sha512-p6XxPaq59aXwcdDQV3ISMA5xk+1z6fJuctcwwSdR9iQgbYOcIrnknNrhcMGG+0FaUfKHGkdDpQNaZrovfBoyOw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "memdown": "1.4.1",
+ "mkdirp": "0.5.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "memdown": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
+ "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true,
+ "optional": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ }
+ }
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "dev": true
+ },
+ "jsonschema": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz",
+ "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==",
+ "dev": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "keccak": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz",
+ "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==",
+ "dev": true,
+ "requires": {
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "kew": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
+ "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
+ "dev": true
+ },
+ "keypair": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz",
+ "integrity": "sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ==",
+ "dev": true,
+ "optional": true
+ },
+ "keypather": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/keypather/-/keypather-1.10.2.tgz",
+ "integrity": "sha1-4ESWMtSz5RbyHMAUznxWRP3c5hQ=",
+ "dev": true,
+ "requires": {
+ "101": "^1.0.0"
+ }
+ },
+ "keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ },
+ "klaw": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.9"
+ }
+ },
+ "lazy-debug-legacy": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz",
+ "integrity": "sha1-U3cWwHduTPeePtG2IfdljCkRsbE=",
+ "dev": true,
+ "optional": true
+ },
+ "lazystream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "^2.0.5"
+ }
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "lcov-parse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz",
+ "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=",
+ "dev": true
+ },
+ "leb128": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/leb128/-/leb128-0.0.5.tgz",
+ "integrity": "sha512-elbNtfmu3GndZbesVF6+iQAfVjOXW9bM/aax9WwMlABZW+oK9sbAZEXoewaPHmL34sxa8kVwWsru8cNE/yn2gg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bn.js": "^5.0.0",
+ "buffer-pipe": "0.0.3"
+ }
+ },
+ "level": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/level/-/level-5.0.1.tgz",
+ "integrity": "sha512-wcak5OQeA4rURGacqS62R/xNHjCYnJSQDBOlm4KNUGJVE9bWv2B04TclqReYejN+oD65PzD4FsqeWoI5wNC5Lg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "level-js": "^4.0.0",
+ "level-packager": "^5.0.0",
+ "leveldown": "^5.0.0",
+ "opencollective-postinstall": "^2.0.0"
+ }
+ },
+ "level-codec": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz",
+ "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.6.0"
+ }
+ },
+ "level-concat-iterator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz",
+ "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==",
+ "dev": true
+ },
+ "level-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz",
+ "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz",
+ "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0",
+ "xtend": "^4.0.2"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "level-js": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/level-js/-/level-js-4.0.2.tgz",
+ "integrity": "sha512-PeGjZsyMG4O89KHiez1zoMJxStnkM+oBIqgACjoo5PJqFiSUUm3GNod/KcbqN5ktyZa8jkG7I1T0P2u6HN9lIg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "~6.0.1",
+ "immediate": "~3.2.3",
+ "inherits": "^2.0.3",
+ "ltgt": "^2.1.2",
+ "typedarray-to-buffer": "~3.1.5"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz",
+ "integrity": "sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "level-concat-iterator": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "immediate": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz",
+ "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "level-mem": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/level-mem/-/level-mem-5.0.1.tgz",
+ "integrity": "sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg==",
+ "dev": true,
+ "requires": {
+ "level-packager": "^5.0.3",
+ "memdown": "^5.0.0"
+ }
+ },
+ "level-packager": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz",
+ "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==",
+ "dev": true,
+ "requires": {
+ "encoding-down": "^6.3.0",
+ "levelup": "^4.3.2"
+ }
+ },
+ "level-supports": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz",
+ "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==",
+ "dev": true,
+ "requires": {
+ "xtend": "^4.0.2"
+ }
+ },
+ "level-write-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz",
+ "integrity": "sha1-P3+7Z5pVE3wP6zA97nZuEu4Twdw=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "end-stream": "~0.1.0"
+ }
+ },
+ "level-ws": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-2.0.0.tgz",
+ "integrity": "sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.0",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "leveldown": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.0.2.tgz",
+ "integrity": "sha512-Ib6ygFYBleS8x2gh3C1AkVsdrUShqXpe6jSTnZ6sRycEXKhqVf+xOSkhgSnjidpPzyv0d95LJVFrYQ4NuXAqHA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "~6.0.0",
+ "fast-future": "~1.0.2",
+ "napi-macros": "~1.8.1",
+ "node-gyp-build": "~3.8.0"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz",
+ "integrity": "sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "level-concat-iterator": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "node-gyp-build": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.8.0.tgz",
+ "integrity": "sha512-bYbpIHyRqZ7sVWXxGpz8QIRug5JZc/hzZH4GbdT9HTZi6WmKCZ8GLvP8OZ9TTiIBvwPFKgtGrlWQSXDAvYdsPw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "levelup": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz",
+ "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==",
+ "dev": true,
+ "requires": {
+ "deferred-leveldown": "~5.3.0",
+ "level-errors": "~2.0.0",
+ "level-iterator-stream": "~4.0.0",
+ "level-supports": "~1.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "libp2p-crypto": {
+ "version": "0.19.4",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.4.tgz",
+ "integrity": "sha512-8iUwiNlU/sFEtXQpxaehmXUQ5Fw6r52H7NH0d8ZSb8nKBbO6r8y8ft6f1to8A81SrFOVd4/zsjEzokpedDvRgw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "err-code": "^3.0.1",
+ "is-typedarray": "^1.0.0",
+ "iso-random-stream": "^2.0.0",
+ "keypair": "^1.0.1",
+ "multibase": "^4.0.3",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.2",
+ "multihashing-async": "^2.1.2",
+ "node-forge": "^0.10.0",
+ "pem-jwk": "^2.0.0",
+ "protobufjs": "^6.10.2",
+ "secp256k1": "^4.0.0",
+ "uint8arrays": "^2.1.4",
+ "ursa-optional": "^0.10.1"
+ },
+ "dependencies": {
+ "err-code": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+ "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==",
+ "dev": true,
+ "optional": true
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "lines-and-columns": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
+ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
+ "dev": true
+ },
+ "linked-list": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/linked-list/-/linked-list-0.1.0.tgz",
+ "integrity": "sha1-eYsP+X0bkqT9CEgPVa6k6dSdN78=",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "dev": true
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.assign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.assignin": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
+ "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.assigninwith": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assigninwith/-/lodash.assigninwith-4.2.0.tgz",
+ "integrity": "sha1-rwLJhDKshtk9ppW0voAUAZcXNq8=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+ "dev": true
+ },
+ "lodash.escaperegexp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
+ "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=",
+ "dev": true
+ },
+ "lodash.flatten": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
+ "dev": true
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.2.0.tgz",
+ "integrity": "sha1-oIYCrBLk+4P5H8H7ejYKTZujUgU=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "lodash.omit": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
+ "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.partition": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.partition/-/lodash.partition-4.6.0.tgz",
+ "integrity": "sha1-o45GtzRp4EILDaEhLmbUFL42S6Q=",
+ "dev": true
+ },
+ "lodash.rest": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.5.tgz",
+ "integrity": "sha1-lU73UEkmIDjJbR/Jiyj9r58Hcqo=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.sum": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/lodash.sum/-/lodash.sum-4.0.2.tgz",
+ "integrity": "sha1-rZDjl5ZdgD1PH/eqWy0Bl/O0Y3s=",
+ "dev": true
+ },
+ "lodash.template": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.2.4.tgz",
+ "integrity": "sha1-0FPBno50442WW/T7SV2A8Qnn96Q=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lodash._reinterpolate": "~3.0.0",
+ "lodash.assigninwith": "^4.0.0",
+ "lodash.keys": "^4.0.0",
+ "lodash.rest": "^4.0.0",
+ "lodash.templatesettings": "^4.0.0",
+ "lodash.tostring": "^4.0.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lodash._reinterpolate": "^3.0.0"
+ }
+ },
+ "lodash.toarray": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
+ "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=",
+ "dev": true
+ },
+ "lodash.tostring": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.4.tgz",
+ "integrity": "sha1-Vgwn0fjq3eA8LM4Zj+9cAx2CmPs=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
+ "dev": true
+ },
+ "lodash.without": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz",
+ "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.xor": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.xor/-/lodash.xor-4.5.0.tgz",
+ "integrity": "sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY=",
+ "dev": true,
+ "optional": true
+ },
+ "lodash.zipwith": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.zipwith/-/lodash.zipwith-4.2.0.tgz",
+ "integrity": "sha1-r6zwP9LzhK8p4mPDxr2juA4/Uf0=",
+ "dev": true
+ },
+ "log-driver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz",
+ "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
+ "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2"
+ }
+ },
+ "loglevel": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz",
+ "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==",
+ "dev": true,
+ "optional": true
+ },
+ "long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
+ "dev": true,
+ "optional": true
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+ "dev": true
+ },
+ "lower-case-first": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
+ "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=",
+ "dev": true,
+ "requires": {
+ "lower-case": "^1.1.2"
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "lru_map": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
+ "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=",
+ "dev": true
+ },
+ "ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=",
+ "dev": true
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-stream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.6.tgz",
+ "integrity": "sha1-0u9OuBGihkTHqJiZhcacL91JaCc=",
+ "dev": true,
+ "optional": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "markdown-table": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
+ "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==",
+ "dev": true
+ },
+ "marked": {
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz",
+ "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==",
+ "dev": true
+ },
+ "match-all": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/match-all/-/match-all-1.2.6.tgz",
+ "integrity": "sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ==",
+ "dev": true
+ },
+ "math-random": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
+ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
+ "dev": true,
+ "optional": true
+ },
+ "mcl-wasm": {
+ "version": "0.7.7",
+ "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.7.tgz",
+ "integrity": "sha512-jDGiCQA++5hX37gdH6RDZ3ZsA0raet7xyY/R5itj5cbcdf4Gvw+YyxWX/ZZ0Z2UPxJiw1ktRsCJZzpnqlQILdw==",
+ "dev": true
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "memdown": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-5.1.0.tgz",
+ "integrity": "sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw==",
+ "dev": true,
+ "requires": {
+ "abstract-leveldown": "~6.2.1",
+ "functional-red-black-tree": "~1.0.1",
+ "immediate": "~3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.2.0"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz",
+ "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "immediate": "^3.2.3",
+ "level-concat-iterator": "~2.0.0",
+ "level-supports": "~1.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "immediate": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz",
+ "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ }
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
+ "dev": true
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "merge-options": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-2.0.0.tgz",
+ "integrity": "sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-plain-obj": "^2.0.0"
+ },
+ "dependencies": {
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "merge-source-map": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
+ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "merge-stream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
+ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "merkle-patricia-tree": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.0.tgz",
+ "integrity": "sha512-0sBVXs7z1Q1/kxzWZ3nPnxSPiaHKF/f497UQzt9O7isRcS10tel9jM/4TivF6Jv7V1yFq4bWyoATxbDUOen5vQ==",
+ "dev": true,
+ "requires": {
+ "@types/levelup": "^4.3.0",
+ "ethereumjs-util": "^7.0.10",
+ "level-mem": "^5.0.1",
+ "level-ws": "^2.0.0",
+ "readable-stream": "^3.6.0",
+ "rlp": "^2.2.4",
+ "semaphore-async-await": "^1.5.1"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz",
+ "integrity": "sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "meros": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz",
+ "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==",
+ "dev": true,
+ "optional": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.48.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz",
+ "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.31",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz",
+ "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.48.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true
+ },
+ "min-document": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
+ "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
+ "dev": true,
+ "requires": {
+ "dom-walk": "^0.1.0"
+ }
+ },
+ "min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "dev": true
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ },
+ "minipass": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+ "dev": true,
+ "requires": {
+ "minipass": "^2.9.0"
+ }
+ },
+ "mississippi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+ "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^3.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "mkdirp-promise": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
+ "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "*"
+ }
+ },
+ "mnemonist": {
+ "version": "0.38.3",
+ "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz",
+ "integrity": "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==",
+ "dev": true,
+ "requires": {
+ "obliterator": "^1.6.1"
+ }
+ },
+ "mocha": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz",
+ "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "3.2.3",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.3.0",
+ "debug": "3.2.6",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "find-up": "3.0.0",
+ "glob": "7.1.3",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "3.13.1",
+ "log-symbols": "3.0.0",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.5",
+ "ms": "2.1.1",
+ "node-environment-flags": "1.0.6",
+ "object.assign": "4.1.0",
+ "strip-json-comments": "2.0.1",
+ "supports-color": "6.0.0",
+ "which": "1.3.1",
+ "wide-align": "1.1.3",
+ "yargs": "13.3.2",
+ "yargs-parser": "13.1.2",
+ "yargs-unparser": "1.6.0"
+ },
+ "dependencies": {
+ "ansi-colors": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
+ "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chokidar": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz",
+ "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.1.1",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.2.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz",
+ "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.0.4"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
+ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
+ "mock-fs": {
+ "version": "4.14.0",
+ "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz",
+ "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==",
+ "dev": true
+ },
+ "module": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/module/-/module-1.2.5.tgz",
+ "integrity": "sha1-tQPrBs3BNHP1aBhCaXTN5+xZvxU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "concat-stream": "1.5.1",
+ "lodash.template": "4.2.4",
+ "map-stream": "0.0.6",
+ "tildify": "1.2.0",
+ "vinyl-fs": "2.4.3",
+ "yargs": "4.6.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true,
+ "optional": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true,
+ "optional": true
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true,
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "concat-stream": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz",
+ "integrity": "sha1-87gKz54fSOOHXAaItBtsMWAu6hw=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "~2.0.0",
+ "typedarray": "~0.0.5"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lcid": "^1.0.0"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "dev": true,
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true,
+ "optional": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true,
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true,
+ "optional": true
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "y18n": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+ "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==",
+ "dev": true,
+ "optional": true
+ },
+ "yargs": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.6.0.tgz",
+ "integrity": "sha1-y0BQwBWb+2u2ScD0r1UFJqhGGdw=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "^2.0.1",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "lodash.assign": "^4.0.3",
+ "os-locale": "^1.4.0",
+ "pkg-conf": "^1.1.2",
+ "read-pkg-up": "^1.0.1",
+ "require-main-filename": "^1.0.1",
+ "string-width": "^1.0.1",
+ "window-size": "^0.2.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^2.4.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
+ "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "^3.0.0",
+ "lodash.assign": "^4.0.6"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ }
+ }
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "multiaddr": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz",
+ "integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cids": "^1.0.0",
+ "class-is": "^1.1.0",
+ "dns-over-http-resolver": "^1.0.0",
+ "err-code": "^2.0.3",
+ "is-ip": "^3.1.0",
+ "multibase": "^3.0.0",
+ "uint8arrays": "^1.1.0",
+ "varint": "^5.0.0"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "multibase": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
+ "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1",
+ "web-encoding": "^1.0.6"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "multiaddr-to-uri": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz",
+ "integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multiaddr": "^8.0.0"
+ }
+ },
+ "multibase": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz",
+ "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==",
+ "dev": true,
+ "requires": {
+ "base-x": "^3.0.8",
+ "buffer": "^5.5.0"
+ }
+ },
+ "multicodec": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz",
+ "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==",
+ "dev": true,
+ "requires": {
+ "varint": "^5.0.0"
+ }
+ },
+ "multihashes": {
+ "version": "0.4.21",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz",
+ "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "multibase": "^0.7.0",
+ "varint": "^5.0.0"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
+ "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
+ "dev": true,
+ "requires": {
+ "base-x": "^3.0.8",
+ "buffer": "^5.5.0"
+ }
+ }
+ }
+ },
+ "multihashing-async": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.2.tgz",
+ "integrity": "sha512-FTPNnWWxwIK5dXXmTFhySSF8Fkdqf7vzqpV09+RWsmfUhrsL/b3Arg3+bRrBnXTtjxm3JRGI3wSAtQHL0QCxhQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "blakejs": "^1.1.0",
+ "err-code": "^3.0.0",
+ "js-sha3": "^0.8.0",
+ "multihashes": "^4.0.1",
+ "murmurhash3js-revisited": "^3.0.0",
+ "uint8arrays": "^2.1.3"
+ },
+ "dependencies": {
+ "err-code": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+ "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==",
+ "dev": true,
+ "optional": true
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "murmur-128": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/murmur-128/-/murmur-128-0.2.1.tgz",
+ "integrity": "sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg==",
+ "dev": true,
+ "requires": {
+ "encode-utf8": "^1.0.2",
+ "fmix": "^0.1.0",
+ "imul": "^1.0.0"
+ }
+ },
+ "murmurhash3js-revisited": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz",
+ "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==",
+ "dev": true,
+ "optional": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.14.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
+ "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
+ "dev": true
+ },
+ "nano-json-stream-parser": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz",
+ "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=",
+ "dev": true
+ },
+ "nanoid": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz",
+ "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==",
+ "dev": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "napi-macros": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-1.8.2.tgz",
+ "integrity": "sha512-Tr0DNY4RzTaBG2W2m3l7ZtFuJChTH6VZhXVhkGGjF/4cZTt+i8GcM9ozD+30Lmr4mDoZ5Xx34t2o4GJqYWDGcg==",
+ "dev": true,
+ "optional": true
+ },
+ "native-abort-controller": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-0.0.3.tgz",
+ "integrity": "sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "globalthis": "^1.0.1"
+ }
+ },
+ "native-fetch": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz",
+ "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==",
+ "dev": true,
+ "optional": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "needle": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz",
+ "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dev": true,
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "node-addon-api": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==",
+ "dev": true
+ },
+ "node-emoji": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz",
+ "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==",
+ "dev": true,
+ "requires": {
+ "lodash.toarray": "^4.4.0"
+ }
+ },
+ "node-environment-flags": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz",
+ "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==",
+ "dev": true,
+ "requires": {
+ "object.getownpropertydescriptors": "^2.0.3",
+ "semver": "^5.7.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "node-fetch": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
+ "dev": true
+ },
+ "node-forge": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
+ "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==",
+ "dev": true,
+ "optional": true
+ },
+ "node-gyp-build": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz",
+ "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==",
+ "dev": true
+ },
+ "node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
+ "dev": true,
+ "optional": true
+ },
+ "node-interval-tree": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz",
+ "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==",
+ "dev": true,
+ "requires": {
+ "shallowequal": "^1.0.2"
+ }
+ },
+ "node-libs-browser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+ "dev": true,
+ "requires": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.1",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.11.0",
+ "vm-browserify": "^1.0.1"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ }
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz",
+ "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
+ "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "node-releases": {
+ "version": "1.1.72",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz",
+ "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==",
+ "dev": true,
+ "optional": true
+ },
+ "nofilter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz",
+ "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==",
+ "dev": true
+ },
+ "noop-fn": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/noop-fn/-/noop-fn-1.0.0.tgz",
+ "integrity": "sha1-XzPUfxPSFQ35PgywNmmemC94/78=",
+ "dev": true,
+ "optional": true
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
+ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+ "dev": true
+ },
+ "npm-bundled": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
+ "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
+ "dev": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz",
+ "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1",
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ },
+ "dependencies": {
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ }
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz",
+ "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "nullthrows": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
+ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==",
+ "dev": true,
+ "optional": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "number-to-bn": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz",
+ "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.6",
+ "strip-hex-prefix": "1.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=",
+ "dev": true
+ }
+ }
+ },
+ "nwmatcher": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
+ "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==",
+ "dev": true,
+ "optional": true
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-inspect": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz",
+ "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
+ "object-path": {
+ "version": "0.11.5",
+ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz",
+ "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==",
+ "dev": true,
+ "optional": true
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz",
+ "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.2"
+ }
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "obliterator": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz",
+ "integrity": "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==",
+ "dev": true
+ },
+ "oboe": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz",
+ "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=",
+ "dev": true,
+ "requires": {
+ "http-https": "^1.0.0"
+ }
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+ "dev": true
+ },
+ "optimism": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz",
+ "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@wry/context": "^0.6.0",
+ "@wry/trie": "^0.3.0"
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
+ "ora": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
+ "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-spinners": "^2.0.0",
+ "log-symbols": "^2.2.0",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true,
+ "optional": true
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "ordered-read-streams": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
+ "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-stream": "^1.0.1",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "original-require": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz",
+ "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=",
+ "dev": true
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true,
+ "optional": true
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "dev": true
+ },
+ "p-defer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz",
+ "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==",
+ "dev": true,
+ "optional": true
+ },
+ "p-fifo": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz",
+ "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fast-fifo": "^1.0.0",
+ "p-defer": "^3.0.0"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-pipe": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz",
+ "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=",
+ "dev": true
+ },
+ "p-timeout": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
+ "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+ "dev": true,
+ "requires": {
+ "p-finally": "^1.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true
+ },
+ "parallel-transform": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+ "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+ "dev": true,
+ "requires": {
+ "cyclist": "^1.0.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "paramap-it": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/paramap-it/-/paramap-it-0.1.1.tgz",
+ "integrity": "sha512-3uZmCAN3xCw7Am/4ikGzjjR59aNMJVXGSU7CjG2Z6DfOAdhnLdCOd0S0m1sTkN4ov9QhlE3/jkzyu953hq0uwQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "event-iterator": "^1.0.0"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+ "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+ "dev": true,
+ "requires": {
+ "asn1.js": "^5.2.0",
+ "browserify-aes": "^1.0.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "parse-cache-control": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
+ "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=",
+ "dev": true
+ },
+ "parse-duration": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-0.4.4.tgz",
+ "integrity": "sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg==",
+ "dev": true,
+ "optional": true
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true,
+ "optional": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "parse-headers": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz",
+ "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true
+ },
+ "parse5-htmlparser2-tree-adapter": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
+ "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
+ "dev": true,
+ "requires": {
+ "parse5": "^6.0.1"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "pascal-case": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz",
+ "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=",
+ "dev": true,
+ "requires": {
+ "camel-case": "^3.0.0",
+ "upper-case-first": "^1.1.0"
+ }
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "path-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+ "dev": true
+ },
+ "path-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz",
+ "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true
+ },
+ "pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "peer-id": {
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.14.8.tgz",
+ "integrity": "sha512-GpuLpob/9FrEFvyZrKKsISEkaBYsON2u0WtiawLHj1ii6ewkoeRiSDFLyIefYhw0jGvQoeoZS05jaT52X7Bvig==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cids": "^1.1.5",
+ "class-is": "^1.1.0",
+ "libp2p-crypto": "^0.19.0",
+ "minimist": "^1.2.5",
+ "multihashes": "^4.0.2",
+ "protobufjs": "^6.10.2",
+ "uint8arrays": "^2.0.5"
+ },
+ "dependencies": {
+ "cids": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz",
+ "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "multicodec": "^3.0.1",
+ "multihashes": "^4.0.1",
+ "uint8arrays": "^2.1.3"
+ }
+ },
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "multicodec": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz",
+ "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "multihashes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz",
+ "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.2"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "pegjs": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz",
+ "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=",
+ "dev": true
+ },
+ "pem-jwk": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz",
+ "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asn1.js": "^5.0.1"
+ }
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "phantomjs-prebuilt": {
+ "version": "2.1.16",
+ "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
+ "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
+ "dev": true,
+ "requires": {
+ "es6-promise": "^4.0.3",
+ "extract-zip": "^1.6.5",
+ "fs-extra": "^1.0.0",
+ "hasha": "^2.2.0",
+ "kew": "^0.7.0",
+ "progress": "^1.1.8",
+ "request": "^2.81.0",
+ "request-progress": "^2.0.1",
+ "which": "^1.2.10"
+ }
+ },
+ "picomatch": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
+ "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
+ "dev": true
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkg-conf": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-1.1.3.tgz",
+ "integrity": "sha1-N45W1v0T6Iv7b0ol33qD+qvduls=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "load-json-file": "^1.1.0",
+ "object-assign": "^4.0.1",
+ "symbol": "^0.2.1"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ }
+ }
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
+ "please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "requires": {
+ "semver-compare": "^1.0.0"
+ }
+ },
+ "pluralize": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
+ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "dev": true,
+ "optional": true
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
+ "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
+ "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.5"
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz",
+ "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^6.0.0",
+ "postcss-value-parser": "^3.3.1"
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz",
+ "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^6.0.0"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz",
+ "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "^1.1.0",
+ "postcss": "^7.0.6"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "6.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz",
+ "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ },
+ "pouchdb": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.1.1.tgz",
+ "integrity": "sha512-8bXWclixNJZqokvxGHRsG19zehSJiaZaz4dVYlhXhhUctz7gMcNTElHjPBzBdZlKKvt9aFDndmXN1VVE53Co8g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "argsarray": "0.0.1",
+ "buffer-from": "1.1.0",
+ "clone-buffer": "1.0.0",
+ "double-ended-queue": "2.1.0-0",
+ "fetch-cookie": "0.7.0",
+ "immediate": "3.0.6",
+ "inherits": "2.0.3",
+ "level": "5.0.1",
+ "level-codec": "9.0.1",
+ "level-write-stream": "1.0.0",
+ "leveldown": "5.0.2",
+ "levelup": "4.0.2",
+ "ltgt": "2.2.1",
+ "node-fetch": "2.4.1",
+ "readable-stream": "1.0.33",
+ "spark-md5": "3.0.0",
+ "through2": "3.0.1",
+ "uuid": "3.2.1",
+ "vuvuzela": "1.0.3"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.0.3.tgz",
+ "integrity": "sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "level-concat-iterator": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
+ "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==",
+ "dev": true,
+ "optional": true
+ },
+ "deferred-leveldown": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.0.1.tgz",
+ "integrity": "sha512-BXohsvTedWOLkj2n/TY+yqVlrCWa2Zs8LSxh3uCAgFOru7/pjxKyZAexGa1j83BaKloER4PqUyQ9rGPJLt9bqA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "~6.0.0",
+ "inherits": "^2.0.3"
+ }
+ },
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
+ "dev": true,
+ "optional": true
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true,
+ "optional": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true,
+ "optional": true
+ },
+ "level-codec": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.1.tgz",
+ "integrity": "sha512-ajFP0kJ+nyq4i6kptSM+mAvJKLOg1X5FiFPtLG9M5gCEZyBmgDi3FkDrvlMkEzrUn1cWxtvVmrvoS4ASyO/q+Q==",
+ "dev": true,
+ "optional": true
+ },
+ "levelup": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.0.2.tgz",
+ "integrity": "sha512-cx9PmLENwbGA3svWBEbeO2HazpOSOYSXH4VA+ahVpYyurvD+SDSfURl29VBY2qgyk+Vfy2dJd71SBRckj/EZVA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deferred-leveldown": "~5.0.0",
+ "level-errors": "~2.0.0",
+ "level-iterator-stream": "~4.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "node-fetch": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.4.1.tgz",
+ "integrity": "sha512-P9UbpFK87NyqBZzUuDBDz4f6Yiys8xm8j7ACDbi6usvFm6KItklQUKjeoqTrYS/S1k6I8oaOC2YLLDr/gg26Mw==",
+ "dev": true,
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "1.0.33",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
+ "integrity": "sha1-OjYN1mwbHX/UcFOJhg7aHQ9hEmw=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "optional": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true,
+ "optional": true
+ },
+ "through2": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
+ "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "2 || 3"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
+ }
+ }
+ },
+ "uuid": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "pouchdb-abstract-mapreduce": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.2.2.tgz",
+ "integrity": "sha512-7HWN/2yV2JkwMnGnlp84lGvFtnm0Q55NiBUdbBcaT810+clCGKvhssBCrXnmwShD1SXTwT83aszsgiSfW+SnBA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-binary-utils": "7.2.2",
+ "pouchdb-collate": "7.2.2",
+ "pouchdb-collections": "7.2.2",
+ "pouchdb-errors": "7.2.2",
+ "pouchdb-fetch": "7.2.2",
+ "pouchdb-mapreduce-utils": "7.2.2",
+ "pouchdb-md5": "7.2.2",
+ "pouchdb-utils": "7.2.2"
+ }
+ },
+ "pouchdb-adapter-leveldb-core": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.2.2.tgz",
+ "integrity": "sha512-K9UGf1Ivwe87mjrMqN+1D07tO/DfU7ariVDrGffuOjvl+3BcvUF25IWrxsBObd4iPOYCH7NVQWRpojhBgxULtQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "argsarray": "0.0.1",
+ "buffer-from": "1.1.1",
+ "double-ended-queue": "2.1.0-0",
+ "levelup": "4.4.0",
+ "pouchdb-adapter-utils": "7.2.2",
+ "pouchdb-binary-utils": "7.2.2",
+ "pouchdb-collections": "7.2.2",
+ "pouchdb-errors": "7.2.2",
+ "pouchdb-json": "7.2.2",
+ "pouchdb-md5": "7.2.2",
+ "pouchdb-merge": "7.2.2",
+ "pouchdb-utils": "7.2.2",
+ "sublevel-pouchdb": "7.2.2",
+ "through2": "3.0.2"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz",
+ "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "2 || 3"
+ }
+ }
+ }
+ },
+ "pouchdb-adapter-memory": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.2.2.tgz",
+ "integrity": "sha512-9o+zdItPEq7rIrxdkUxgsLNaZkDJAGEqqoYgeYdrHidOCZnlhxhX3g7/R/HcpDKC513iEPqJWDJQSfeT6nVKkw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "memdown": "1.4.1",
+ "pouchdb-adapter-leveldb-core": "7.2.2",
+ "pouchdb-utils": "7.2.2"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "memdown": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
+ "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ }
+ }
+ }
+ },
+ "pouchdb-adapter-node-websql": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-adapter-node-websql/-/pouchdb-adapter-node-websql-7.0.0.tgz",
+ "integrity": "sha512-fNaOMO8bvMrRTSfmH4RSLSpgnKahRcCA7Z0jg732PwRbGvvMdGbreZwvKPPD1fg2tm2ZwwiXWK2G3+oXyoqZYw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-adapter-websql-core": "7.0.0",
+ "pouchdb-utils": "7.0.0",
+ "websql": "1.0.0"
+ },
+ "dependencies": {
+ "buffer-from": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
+ "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==",
+ "dev": true,
+ "optional": true
+ },
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
+ "dev": true,
+ "optional": true
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true,
+ "optional": true
+ },
+ "pouchdb-binary-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.0.0.tgz",
+ "integrity": "sha512-yUktdOPIPvOVouCjJN3uop+bCcpdPwePrLm9eUAZNgEYnUFu0njdx7Q0WRsZ7UJ6l75HinL5ZHk4bnvEt86FLw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer-from": "1.1.0"
+ }
+ },
+ "pouchdb-collections": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.0.0.tgz",
+ "integrity": "sha512-DaoUr/vU24Q3gM6ghj0va9j/oBanPwkbhkvnqSyC3Dm5dgf5pculNxueLF9PKMo3ycApoWzHMh6N2N8KJbDU2Q==",
+ "dev": true,
+ "optional": true
+ },
+ "pouchdb-errors": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.0.0.tgz",
+ "integrity": "sha512-dTusY8nnTw4HIztCrNl7AoGgwvS1bVf/3/97hDaGc4ytn72V9/4dK8kTqlimi3UpaurohYRnqac0SGXYP8vgXA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "pouchdb-md5": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.0.0.tgz",
+ "integrity": "sha512-yaSJKhLA3QlgloKUQeb2hLdT3KmUmPfoYdryfwHZuPTpXIRKTnMQTR9qCIRUszc0ruBpDe53DRslCgNUhAyTNQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-binary-utils": "7.0.0",
+ "spark-md5": "3.0.0"
+ }
+ },
+ "pouchdb-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.0.0.tgz",
+ "integrity": "sha512-1bnoX1KdZYHv9wicDIFdO0PLiVIMzNDUBUZ/yOJZ+6LW6niQCB8aCv09ZztmKfSQcU5nnN3fe656tScBgP6dOQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "argsarray": "0.0.1",
+ "clone-buffer": "1.0.0",
+ "immediate": "3.0.6",
+ "inherits": "2.0.3",
+ "pouchdb-collections": "7.0.0",
+ "pouchdb-errors": "7.0.0",
+ "pouchdb-md5": "7.0.0",
+ "uuid": "3.2.1"
+ }
+ },
+ "uuid": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "pouchdb-adapter-utils": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.2.2.tgz",
+ "integrity": "sha512-2CzZkTyTyHZkr3ePiWFMTiD5+56lnembMjaTl8ohwegM0+hYhRyJux0biAZafVxgIL4gnCUC4w2xf6WVztzKdg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-binary-utils": "7.2.2",
+ "pouchdb-collections": "7.2.2",
+ "pouchdb-errors": "7.2.2",
+ "pouchdb-md5": "7.2.2",
+ "pouchdb-merge": "7.2.2",
+ "pouchdb-utils": "7.2.2"
+ }
+ },
+ "pouchdb-adapter-websql-core": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-adapter-websql-core/-/pouchdb-adapter-websql-core-7.0.0.tgz",
+ "integrity": "sha512-NyMaH0bl20SdJdOCzd+fwXo8JZ15a48/MAwMcIbXzsRHE4DjFNlRcWAcjUP6uN4Ezc+Gx+r2tkBBMf71mIz1Aw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-adapter-utils": "7.0.0",
+ "pouchdb-binary-utils": "7.0.0",
+ "pouchdb-collections": "7.0.0",
+ "pouchdb-errors": "7.0.0",
+ "pouchdb-json": "7.0.0",
+ "pouchdb-merge": "7.0.0",
+ "pouchdb-utils": "7.0.0"
+ },
+ "dependencies": {
+ "buffer-from": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
+ "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==",
+ "dev": true,
+ "optional": true
+ },
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
+ "dev": true,
+ "optional": true
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true,
+ "optional": true
+ },
+ "pouchdb-adapter-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.0.0.tgz",
+ "integrity": "sha512-UWKPC6jkz6mHUzZefrU7P5X8ZGvBC8LSNZ7BIp0hWvJE6c20cnpDwedTVDpZORcCbVJpDmFOHBYnOqEIblPtbA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-binary-utils": "7.0.0",
+ "pouchdb-collections": "7.0.0",
+ "pouchdb-errors": "7.0.0",
+ "pouchdb-md5": "7.0.0",
+ "pouchdb-merge": "7.0.0",
+ "pouchdb-utils": "7.0.0"
+ }
+ },
+ "pouchdb-binary-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.0.0.tgz",
+ "integrity": "sha512-yUktdOPIPvOVouCjJN3uop+bCcpdPwePrLm9eUAZNgEYnUFu0njdx7Q0WRsZ7UJ6l75HinL5ZHk4bnvEt86FLw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer-from": "1.1.0"
+ }
+ },
+ "pouchdb-collections": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.0.0.tgz",
+ "integrity": "sha512-DaoUr/vU24Q3gM6ghj0va9j/oBanPwkbhkvnqSyC3Dm5dgf5pculNxueLF9PKMo3ycApoWzHMh6N2N8KJbDU2Q==",
+ "dev": true,
+ "optional": true
+ },
+ "pouchdb-errors": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.0.0.tgz",
+ "integrity": "sha512-dTusY8nnTw4HIztCrNl7AoGgwvS1bVf/3/97hDaGc4ytn72V9/4dK8kTqlimi3UpaurohYRnqac0SGXYP8vgXA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "pouchdb-json": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.0.0.tgz",
+ "integrity": "sha512-w0bNRu/7VmmCrFWMYAm62n30wvJJUT2SokyzeTyj3hRohj4GFwTRg1mSZ+iAmxgRKOFE8nzZstLG/WAB4Ymjew==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "vuvuzela": "1.0.3"
+ }
+ },
+ "pouchdb-md5": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.0.0.tgz",
+ "integrity": "sha512-yaSJKhLA3QlgloKUQeb2hLdT3KmUmPfoYdryfwHZuPTpXIRKTnMQTR9qCIRUszc0ruBpDe53DRslCgNUhAyTNQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-binary-utils": "7.0.0",
+ "spark-md5": "3.0.0"
+ }
+ },
+ "pouchdb-merge": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.0.0.tgz",
+ "integrity": "sha512-tci5u6NpznQhGcPv4ho1h0miky9rs+ds/T9zQ9meQeDZbUojXNaX1Jxsb0uYEQQ+HMqdcQs3Akdl0/u0mgwPGg==",
+ "dev": true,
+ "optional": true
+ },
+ "pouchdb-utils": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.0.0.tgz",
+ "integrity": "sha512-1bnoX1KdZYHv9wicDIFdO0PLiVIMzNDUBUZ/yOJZ+6LW6niQCB8aCv09ZztmKfSQcU5nnN3fe656tScBgP6dOQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "argsarray": "0.0.1",
+ "clone-buffer": "1.0.0",
+ "immediate": "3.0.6",
+ "inherits": "2.0.3",
+ "pouchdb-collections": "7.0.0",
+ "pouchdb-errors": "7.0.0",
+ "pouchdb-md5": "7.0.0",
+ "uuid": "3.2.1"
+ }
+ },
+ "uuid": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "pouchdb-binary-utils": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.2.2.tgz",
+ "integrity": "sha512-shacxlmyHbUrNfE6FGYpfyAJx7Q0m91lDdEAaPoKZM3SzAmbtB1i+OaDNtYFztXjJl16yeudkDb3xOeokVL3Qw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer-from": "1.1.1"
+ }
+ },
+ "pouchdb-collate": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.2.2.tgz",
+ "integrity": "sha512-/SMY9GGasslknivWlCVwXMRMnQ8myKHs4WryQ5535nq1Wj/ehpqWloMwxEQGvZE1Sda3LOm7/5HwLTcB8Our+w==",
+ "dev": true,
+ "optional": true
+ },
+ "pouchdb-collections": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.2.2.tgz",
+ "integrity": "sha512-6O9zyAYlp3UdtfneiMYuOCWdUCQNo2bgdjvNsMSacQX+3g8WvIoFQCYJjZZCpTttQGb+MHeRMr8m2U95lhJTew==",
+ "dev": true,
+ "optional": true
+ },
+ "pouchdb-debug": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/pouchdb-debug/-/pouchdb-debug-7.2.1.tgz",
+ "integrity": "sha512-eP3ht/AKavLF2RjTzBM6S9gaI2/apcW6xvaKRQhEdOfiANqerFuksFqHCal3aikVQuDO+cB/cw+a4RyJn/glBw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "pouchdb-errors": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.2.2.tgz",
+ "integrity": "sha512-6GQsiWc+7uPfgEHeavG+7wuzH3JZW29Dnrvz8eVbDFE50kVFxNDVm3EkYHskvo5isG7/IkOx7PV7RPTA3keG3g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "2.0.4"
+ }
+ },
+ "pouchdb-fetch": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.2.2.tgz",
+ "integrity": "sha512-lUHmaG6U3zjdMkh8Vob9GvEiRGwJfXKE02aZfjiVQgew+9SLkuOxNw3y2q4d1B6mBd273y1k2Lm0IAziRNxQnA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abort-controller": "3.0.0",
+ "fetch-cookie": "0.10.1",
+ "node-fetch": "2.6.0"
+ },
+ "dependencies": {
+ "fetch-cookie": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.10.1.tgz",
+ "integrity": "sha512-beB+VEd4cNeVG1PY+ee74+PkuCQnik78pgLi5Ah/7qdUfov8IctU0vLUbBT8/10Ma5GMBeI4wtxhGrEfKNYs2g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0"
+ }
+ },
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "pouchdb-find": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.2.2.tgz",
+ "integrity": "sha512-BmFeFVQ0kHmDehvJxNZl9OmIztCjPlZlVSdpijuFbk/Fi1EFPU1BAv3kLC+6DhZuOqU/BCoaUBY9sn66pPY2ag==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-abstract-mapreduce": "7.2.2",
+ "pouchdb-collate": "7.2.2",
+ "pouchdb-errors": "7.2.2",
+ "pouchdb-fetch": "7.2.2",
+ "pouchdb-md5": "7.2.2",
+ "pouchdb-selector-core": "7.2.2",
+ "pouchdb-utils": "7.2.2"
+ }
+ },
+ "pouchdb-json": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.2.2.tgz",
+ "integrity": "sha512-3b2S2ynN+aoB7aCNyDZc/4c0IAdx/ir3nsHB+/RrKE9cM3QkQYbnnE3r/RvOD1Xvr6ji/KOCBie+Pz/6sxoaug==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "vuvuzela": "1.0.3"
+ }
+ },
+ "pouchdb-mapreduce-utils": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.2.2.tgz",
+ "integrity": "sha512-rAllb73hIkU8rU2LJNbzlcj91KuulpwQu804/F6xF3fhZKC/4JQMClahk+N/+VATkpmLxp1zWmvmgdlwVU4HtQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "argsarray": "0.0.1",
+ "inherits": "2.0.4",
+ "pouchdb-collections": "7.2.2",
+ "pouchdb-utils": "7.2.2"
+ }
+ },
+ "pouchdb-md5": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.2.2.tgz",
+ "integrity": "sha512-c/RvLp2oSh8PLAWU5vFBnp6ejJABIdKqboZwRRUrWcfGDf+oyX8RgmJFlYlzMMOh4XQLUT1IoaDV8cwlsuryZw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-binary-utils": "7.2.2",
+ "spark-md5": "3.0.1"
+ },
+ "dependencies": {
+ "spark-md5": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.1.tgz",
+ "integrity": "sha512-0tF3AGSD1ppQeuffsLDIOWlKUd3lS92tFxcsrh5Pe3ZphhnoK+oXIBTzOAThZCiuINZLvpiLH/1VS1/ANEJVig==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "pouchdb-merge": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.2.2.tgz",
+ "integrity": "sha512-6yzKJfjIchBaS7Tusuk8280WJdESzFfQ0sb4jeMUNnrqs4Cx3b0DIEOYTRRD9EJDM+je7D3AZZ4AT0tFw8gb4A==",
+ "dev": true,
+ "optional": true
+ },
+ "pouchdb-selector-core": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.2.2.tgz",
+ "integrity": "sha512-XYKCNv9oiNmSXV5+CgR9pkEkTFqxQGWplnVhO3W9P154H08lU0ZoNH02+uf+NjZ2kjse7Q1fxV4r401LEcGMMg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pouchdb-collate": "7.2.2",
+ "pouchdb-utils": "7.2.2"
+ }
+ },
+ "pouchdb-utils": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.2.2.tgz",
+ "integrity": "sha512-XmeM5ioB4KCfyB2MGZXu1Bb2xkElNwF1qG+zVFbQsKQij0zvepdOUfGuWvLRHxTOmt4muIuSOmWZObZa3NOgzQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "argsarray": "0.0.1",
+ "clone-buffer": "1.0.0",
+ "immediate": "3.3.0",
+ "inherits": "2.0.4",
+ "pouchdb-collections": "7.2.2",
+ "pouchdb-errors": "7.2.2",
+ "pouchdb-md5": "7.2.2",
+ "uuid": "8.1.0"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz",
+ "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "dev": true
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "dev": true,
+ "optional": true
+ },
+ "prettier": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz",
+ "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==",
+ "dev": true
+ },
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
+ "prettier-plugin-solidity": {
+ "version": "1.0.0-beta.13",
+ "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-beta.13.tgz",
+ "integrity": "sha512-AWMDRSabpNQMX7EqdDKgx/UVtQY6e3/Iu4gSPYDGvgiWl+OY8kYhAMll2NZHK/X+F0YYpPHYpebkDh7MGxbB1g==",
+ "dev": true,
+ "requires": {
+ "@solidity-parser/parser": "^0.13.2",
+ "emoji-regex": "^9.2.2",
+ "escape-string-regexp": "^4.0.0",
+ "semver": "^7.3.5",
+ "solidity-comments-extractor": "^0.0.7",
+ "string-width": "^4.2.2"
+ },
+ "dependencies": {
+ "@solidity-parser/parser": {
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.13.2.tgz",
+ "integrity": "sha512-RwHnpRnfrnD2MSPveYoPh8nhofEvX7fgjHk1Oq+NNvCcLx4r1js91CO9o+F/F3fBzOCyvm8kKRTriFICX/odWw==",
+ "dev": true,
+ "requires": {
+ "antlr4ts": "^0.5.0-alpha.4"
+ }
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "pretty-error": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
+ "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.20",
+ "renderkid": "^2.0.4"
+ }
+ },
+ "printj": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
+ "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==",
+ "dev": true
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "progress": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+ "dev": true
+ },
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asap": "~2.0.3"
+ }
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+ "dev": true
+ },
+ "promise.allsettled": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz",
+ "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==",
+ "dev": true,
+ "requires": {
+ "array.prototype.map": "^1.0.1",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "iterate-value": "^1.0.0"
+ }
+ },
+ "prop-types": {
+ "version": "15.7.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.8.1"
+ }
+ },
+ "protobufjs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz",
+ "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/long": "^4.0.1",
+ "@types/node": ">=13.7.0",
+ "long": "^4.0.0"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "15.12.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.1.tgz",
+ "integrity": "sha512-zyxJM8I1c9q5sRMtVF+zdd13Jt6RU4r4qfhTd7lQubyThvLfx6yYekWSQjGCGV2Tkecgxnlpl/DNlb6Hg+dmEw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "protocol-buffers-schema": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.1.tgz",
+ "integrity": "sha512-YVCvdhxWNDP8/nJDyXLuM+UFsuPk4+1PB7WGPVDzm3HTHbzFLxQYeW2iZpS4mmnXrQJGBzt230t/BbEb7PrQaw==",
+ "dev": true,
+ "optional": true
+ },
+ "protons": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/protons/-/protons-2.0.1.tgz",
+ "integrity": "sha512-FlmPorLEeCEDPu+uIn0Qardgiy5XqVA4IyNTz9wb9c0e2U7BEXdRcIbx64r09o4Abtf+4B7mkTtMbsIXMxZzKw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "protocol-buffers-schema": "^3.3.1",
+ "signed-varint": "^2.0.1",
+ "uint8arrays": "^2.1.3",
+ "varint": "^5.0.0"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.4.tgz",
+ "integrity": "sha512-8/JmrdSGzlw6KTgAJCOqUBSGd1V6186i/X8dDCGy/lbCKrQ+1QB6f3HE+wPr7Tpdj4U3gutaj9jG2rNX6UpiJg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1"
+ }
+ },
+ "uint8arrays": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.5.tgz",
+ "integrity": "sha512-CSR7AO+4AHUeSOnZ/NBNCElDeWfRh9bXtOck27083kc7SznmmHIhNEkEOCQOn0wvrIMjS3IH0TNLR16vuc46mA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^4.0.1"
+ }
+ }
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "dev": true,
+ "requires": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "psl": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
+ "pure-rand": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-4.2.0.tgz",
+ "integrity": "sha512-d2IwZpSFSLGWmjThAdMECofl07uOMqmuIHqH8mRY7h7Hl2jY5ZJZ9fx9dEBIKkKyk4jmEvS0vnpdFUtzPi3Ctg==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "dev": true
+ },
+ "query-string": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
+ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
+ "dev": true,
+ "requires": {
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ }
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "randomatic": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
+ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true,
+ "optional": true
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "receptacle": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz",
+ "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "dev": true,
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
+ "recursive-readdir": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz",
+ "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==",
+ "dev": true,
+ "requires": {
+ "minimatch": "3.0.4"
+ }
+ },
+ "redux": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz",
+ "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.2.1",
+ "lodash-es": "^4.2.1",
+ "loose-envify": "^1.1.0",
+ "symbol-observable": "^1.0.3"
+ }
+ },
+ "redux-cli-logger": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/redux-cli-logger/-/redux-cli-logger-2.1.0.tgz",
+ "integrity": "sha512-75mVsggAJRSykWy2qxdGI7osocDWvc3RCMeN93hlvS/FxgdRww12NaXslez+W6gBOrSJKO7W16V0IzuISSfCxg==",
+ "dev": true,
+ "requires": {
+ "colors": "^1.1.2"
+ }
+ },
+ "redux-devtools-core": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/redux-devtools-core/-/redux-devtools-core-0.2.1.tgz",
+ "integrity": "sha512-RAGOxtUFdr/1USAvxrWd+Gq/Euzgw7quCZlO5TgFpDfG7rB5tMhZUrNyBjpzgzL2yMk0eHnPYIGm7NkIfRzHxQ==",
+ "dev": true,
+ "requires": {
+ "get-params": "^0.1.2",
+ "jsan": "^3.1.13",
+ "lodash": "^4.17.11",
+ "nanoid": "^2.0.0",
+ "remotedev-serialize": "^0.1.8"
+ }
+ },
+ "redux-devtools-instrument": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/redux-devtools-instrument/-/redux-devtools-instrument-1.10.0.tgz",
+ "integrity": "sha512-X8JRBCzX2ADSMp+iiV7YQ8uoTNyEm0VPFPd4T854coz6lvRiBrFSqAr9YAS2n8Kzxx8CJQotR0QF9wsMM+3DvA==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.19",
+ "symbol-observable": "^1.2.0"
+ }
+ },
+ "redux-saga": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz",
+ "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==",
+ "dev": true,
+ "requires": {
+ "@redux-saga/core": "^1.0.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==",
+ "dev": true
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-equal-shallow": "^0.1.3"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regexpp": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
+ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
+ "dev": true
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+ "dev": true
+ },
+ "relay-compiler": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-10.1.0.tgz",
+ "integrity": "sha512-HPqc3N3tNgEgUH5+lTr5lnLbgnsZMt+MRiyS0uAVNhuPY2It0X1ZJG+9qdA3L9IqKFUNwVn6zTO7RArjMZbARQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/core": "^7.0.0",
+ "@babel/generator": "^7.5.0",
+ "@babel/parser": "^7.0.0",
+ "@babel/runtime": "^7.0.0",
+ "@babel/traverse": "^7.0.0",
+ "@babel/types": "^7.0.0",
+ "babel-preset-fbjs": "^3.3.0",
+ "chalk": "^4.0.0",
+ "fb-watchman": "^2.0.0",
+ "fbjs": "^3.0.0",
+ "glob": "^7.1.1",
+ "immutable": "~3.7.6",
+ "nullthrows": "^1.1.1",
+ "relay-runtime": "10.1.0",
+ "signedsource": "^1.0.0",
+ "yargs": "^15.3.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true,
+ "optional": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "optional": true
+ },
+ "chalk": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "optional": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "optional": true
+ },
+ "immutable": {
+ "version": "3.7.6",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz",
+ "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=",
+ "dev": true,
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "relay-runtime": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-10.1.0.tgz",
+ "integrity": "sha512-bxznLnQ1ST6APN/cFi7l0FpjbZVchWQjjhj9mAuJBuUqNNCh9uV+UTRhpQF7Q8ycsPp19LHTpVyGhYb0ustuRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/runtime": "^7.0.0",
+ "fbjs": "^3.0.0"
+ }
+ },
+ "remote-redux-devtools": {
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/remote-redux-devtools/-/remote-redux-devtools-0.5.16.tgz",
+ "integrity": "sha512-xZ2D1VRIWzat5nsvcraT6fKEX9Cfi+HbQBCwzNnUAM8Uicm/anOc60XGalcaDPrVmLug7nhDl2nimEa3bL3K9w==",
+ "dev": true,
+ "requires": {
+ "jsan": "^3.1.13",
+ "querystring": "^0.2.0",
+ "redux-devtools-core": "^0.2.1",
+ "redux-devtools-instrument": "^1.9.4",
+ "rn-host-detect": "^1.1.5",
+ "socketcluster-client": "^14.2.1"
+ }
+ },
+ "remotedev-serialize": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/remotedev-serialize/-/remotedev-serialize-0.1.9.tgz",
+ "integrity": "sha512-5tFdZg9mSaAWTv6xmQ7HtHjKMLSFQFExEZOtJe10PLsv1wb7cy7kYHtBvTYRro27/3fRGEcQBRNKSaixOpb69w==",
+ "dev": true,
+ "requires": {
+ "jsan": "^3.1.13"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true,
+ "optional": true
+ },
+ "renderkid": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz",
+ "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==",
+ "dev": true,
+ "requires": {
+ "css-select": "^2.0.2",
+ "dom-converter": "^0.2",
+ "htmlparser2": "^3.10.1",
+ "lodash": "^4.17.20",
+ "strip-ansi": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "css-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "css-what": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "dev": true
+ },
+ "dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
+ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
+ "dev": true
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ }
+ }
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "replace-ext": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
+ "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==",
+ "dev": true
+ },
+ "req-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz",
+ "integrity": "sha1-1AgrTURZgDZkD7c93qAe1T20nrw=",
+ "dev": true,
+ "requires": {
+ "req-from": "^2.0.0"
+ }
+ },
+ "req-from": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz",
+ "integrity": "sha1-10GI5H+TeW9Kpx327jWuaJ8+DnA=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "request": {
+ "version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "request-progress": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
+ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
+ "dev": true,
+ "requires": {
+ "throttleit": "^1.0.0"
+ }
+ },
+ "request-promise-core": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz",
+ "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.19"
+ }
+ },
+ "request-promise-native": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz",
+ "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==",
+ "dev": true,
+ "requires": {
+ "request-promise-core": "1.1.4",
+ "stealthy-require": "^1.1.1",
+ "tough-cookie": "^2.3.3"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "reselect": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz",
+ "integrity": "sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==",
+ "dev": true
+ },
+ "reselect-tree": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.4.tgz",
+ "integrity": "sha512-1OgNq1IStyJFqIqOoD3k3Ge4SsYCMP9W88VQOfvgyLniVKLfvbYO1Vrl92SyEK5021MkoBX6tWb381VxTDyPBQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "esdoc": "^1.0.4",
+ "json-pointer": "^0.6.0",
+ "reselect": "^4.0.0",
+ "source-map-support": "^0.5.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ }
+ }
+ },
+ "reset": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/reset/-/reset-0.1.0.tgz",
+ "integrity": "sha1-n8cxQXGZWubLC35YsGznUir0uvs=",
+ "dev": true,
+ "optional": true
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "dev": true,
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
+ "retimer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz",
+ "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==",
+ "dev": true,
+ "optional": true
+ },
+ "retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
+ "dev": true,
+ "optional": true
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "rlp": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz",
+ "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
+ "rn-host-detect": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/rn-host-detect/-/rn-host-detect-1.2.0.tgz",
+ "integrity": "sha512-btNg5kzHcjZZ7t7mvvV/4wNJ9e3MPgrWivkRgWURzXL0JJ0pwWlU4zrbmdlz3HHzHOxhBhHB4D+/dbMFfu4/4A==",
+ "dev": true
+ },
+ "rpc-websockets": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-5.3.1.tgz",
+ "integrity": "sha512-rIxEl1BbXRlIA9ON7EmY/2GUM7RLMy8zrUPTiLPFiYnYOz0I3PXfCmDDrge5vt4pW4oIcAXBDvgZuJ1jlY5+VA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@babel/runtime": "^7.8.7",
+ "assert-args": "^1.2.1",
+ "babel-runtime": "^6.26.0",
+ "circular-json": "^0.5.9",
+ "eventemitter3": "^3.1.2",
+ "uuid": "^3.4.0",
+ "ws": "^5.2.2"
+ },
+ "dependencies": {
+ "eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
+ "dev": true,
+ "optional": true
+ },
+ "ws": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
+ "run": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/run/-/run-1.4.0.tgz",
+ "integrity": "sha1-4X2ekEOrL+F3dsspnhI3848LT/o=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "*"
+ }
+ },
+ "run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+ "dev": true
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "rustbn.js": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz",
+ "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==",
+ "dev": true
+ },
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true,
+ "optional": true
+ },
+ "sc-channel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/sc-channel/-/sc-channel-1.2.0.tgz",
+ "integrity": "sha512-M3gdq8PlKg0zWJSisWqAsMmTVxYRTpVRqw4CWAdKBgAfVKumFcTjoCV0hYu7lgUXccCtCD8Wk9VkkE+IXCxmZA==",
+ "dev": true,
+ "requires": {
+ "component-emitter": "1.2.1"
+ },
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "dev": true
+ }
+ }
+ },
+ "sc-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/sc-errors/-/sc-errors-2.0.1.tgz",
+ "integrity": "sha512-JoVhq3Ud+3Ujv2SIG7W0XtjRHsrNgl6iXuHHsh0s+Kdt5NwI6N2EGAZD4iteitdDv68ENBkpjtSvN597/wxPSQ==",
+ "dev": true
+ },
+ "sc-formatter": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/sc-formatter/-/sc-formatter-3.0.2.tgz",
+ "integrity": "sha512-9PbqYBpCq+OoEeRQ3QfFIGE6qwjjBcd2j7UjgDlhnZbtSnuGgHdcRklPKYGuYFH82V/dwd+AIpu8XvA1zqTd+A==",
+ "dev": true
+ },
+ "sc-istanbul": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz",
+ "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==",
+ "dev": true,
+ "requires": {
+ "abbrev": "1.0.x",
+ "async": "1.x",
+ "escodegen": "1.8.x",
+ "esprima": "2.7.x",
+ "glob": "^5.0.15",
+ "handlebars": "^4.0.1",
+ "js-yaml": "3.x",
+ "mkdirp": "0.5.x",
+ "nopt": "3.x",
+ "once": "1.x",
+ "resolve": "1.1.x",
+ "supports-color": "^3.1.0",
+ "which": "^1.1.1",
+ "wordwrap": "^1.0.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "scrypt-async": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-async/-/scrypt-async-2.0.1.tgz",
+ "integrity": "sha512-wHR032jldwZNy7Tzrfu7RccOgGf8r5hyDMSP2uV6DpLiBUsR8JsDcx/in73o2UGVVrH5ivRFdNsFPcjtl3LErQ==",
+ "dev": true,
+ "optional": true
+ },
+ "scrypt-js": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz",
+ "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==",
+ "dev": true
+ },
+ "secp256k1": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz",
+ "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==",
+ "dev": true,
+ "requires": {
+ "elliptic": "^6.5.2",
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "seedrandom": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+ "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+ "dev": true,
+ "optional": true
+ },
+ "semaphore-async-await": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz",
+ "integrity": "sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo=",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
+ "dev": true
+ },
+ "semver-regex": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz",
+ "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ }
+ }
+ },
+ "sentence-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz",
+ "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case-first": "^1.1.2"
+ }
+ },
+ "serialize-javascript": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "servify": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz",
+ "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==",
+ "dev": true,
+ "requires": {
+ "body-parser": "^1.16.0",
+ "cors": "^2.8.1",
+ "express": "^4.14.0",
+ "request": "^2.79.0",
+ "xhr": "^2.3.3"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
+ "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "dev": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "sha1": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz",
+ "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=",
+ "dev": true,
+ "requires": {
+ "charenc": ">= 0.0.1",
+ "crypt": ">= 0.0.1"
+ }
+ },
+ "shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz",
+ "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+ "dev": true
+ },
+ "signed-varint": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz",
+ "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "varint": "~5.0.0"
+ }
+ },
+ "signedsource": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz",
+ "integrity": "sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=",
+ "dev": true,
+ "optional": true
+ },
+ "simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "dev": true
+ },
+ "simple-get": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
+ "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
+ "dev": true,
+ "requires": {
+ "decompress-response": "^3.3.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ }
+ }
+ },
+ "snake-case": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
+ "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "socketcluster-client": {
+ "version": "14.3.1",
+ "resolved": "https://registry.npmjs.org/socketcluster-client/-/socketcluster-client-14.3.1.tgz",
+ "integrity": "sha512-Sd/T0K/9UlqTfz+HUuFq90dshA5OBJPQbdkRzGtcKIOm52fkdsBTt0FYpiuzzxv5VrU7PWpRm6KIfNXyPwlLpw==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.2.1",
+ "clone": "2.1.1",
+ "component-emitter": "1.2.1",
+ "linked-list": "0.1.0",
+ "querystring": "0.2.0",
+ "sc-channel": "^1.2.0",
+ "sc-errors": "^2.0.1",
+ "sc-formatter": "^3.0.1",
+ "uuid": "3.2.1",
+ "ws": "7.1.0"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz",
+ "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
+ "dev": true
+ },
+ "ws": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.0.tgz",
+ "integrity": "sha512-Swie2C4fs7CkwlHu1glMePLYJJsWjzhl1vm3ZaLplD0h7OMkZyZ6kLTB/OagiU923bZrPFXuDTeEqaEN4NWG4g==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "^1.0.0"
+ }
+ }
+ }
+ },
+ "sol2uml": {
+ "version": "1.1.25",
+ "resolved": "https://registry.npmjs.org/sol2uml/-/sol2uml-1.1.25.tgz",
+ "integrity": "sha512-p1UcPGQ49Kh7KAGgtonjunTL086iaA9hr8QfgmTQXJbqe3ztGsshGaemzASkWANI1FXvIDGlAYEvFxc6gQa+ng==",
+ "dev": true,
+ "requires": {
+ "@solidity-parser/parser": "^0.10.2",
+ "axios": "^0.21.1",
+ "commander": "^3.0.2",
+ "debug": "^4.3.1",
+ "js-graph-algorithms": "^1.0.18",
+ "klaw": "^3.0.0",
+ "svg-to-png": "^4.0.0",
+ "verror": "^1.10.0",
+ "viz.js": "^1.8.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "klaw": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
+ "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.9"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "solc": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz",
+ "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==",
+ "dev": true,
+ "requires": {
+ "command-exists": "^1.2.8",
+ "commander": "3.0.2",
+ "follow-redirects": "^1.12.1",
+ "fs-extra": "^0.30.0",
+ "js-sha3": "0.8.0",
+ "memorystream": "^0.3.1",
+ "require-from-string": "^2.0.0",
+ "semver": "^5.5.0",
+ "tmp": "0.0.33"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
+ "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "solhint": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.3.6.tgz",
+ "integrity": "sha512-HWUxTAv2h7hx3s3hAab3ifnlwb02ZWhwFU/wSudUHqteMS3ll9c+m1FlGn9V8ztE2rf3Z82fQZA005Wv7KpcFA==",
+ "dev": true,
+ "requires": {
+ "@solidity-parser/parser": "^0.13.2",
+ "ajv": "^6.6.1",
+ "antlr4": "4.7.1",
+ "ast-parents": "0.0.1",
+ "chalk": "^2.4.2",
+ "commander": "2.18.0",
+ "cosmiconfig": "^5.0.7",
+ "eslint": "^5.6.0",
+ "fast-diff": "^1.1.2",
+ "glob": "^7.1.3",
+ "ignore": "^4.0.6",
+ "js-yaml": "^3.12.0",
+ "lodash": "^4.17.11",
+ "prettier": "^1.14.3",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "@solidity-parser/parser": {
+ "version": "0.13.2",
+ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.13.2.tgz",
+ "integrity": "sha512-RwHnpRnfrnD2MSPveYoPh8nhofEvX7fgjHk1Oq+NNvCcLx4r1js91CO9o+F/F3fBzOCyvm8kKRTriFICX/odWw==",
+ "dev": true,
+ "requires": {
+ "antlr4ts": "^0.5.0-alpha.4"
+ }
+ },
+ "acorn": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz",
+ "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dev": true,
+ "requires": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "eslint": {
+ "version": "5.16.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
+ "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.9.1",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^4.0.3",
+ "eslint-utils": "^1.3.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^5.0.1",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob": "^7.1.2",
+ "globals": "^11.7.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^6.2.2",
+ "js-yaml": "^3.13.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.11",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.2",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^5.5.1",
+ "strip-ansi": "^4.0.0",
+ "strip-json-comments": "^2.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0"
+ },
+ "dependencies": {
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
+ "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
+ "dev": true,
+ "requires": {
+ "acorn": "^6.0.7",
+ "acorn-jsx": "^5.0.0",
+ "eslint-visitor-keys": "^1.0.0"
+ }
+ },
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+ "dev": true,
+ "requires": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "prettier": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
+ "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+ "dev": true,
+ "optional": true
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
+ },
+ "regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ },
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ }
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ }
+ }
+ },
+ "solhint-plugin-prettier": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.4.tgz",
+ "integrity": "sha512-JVxh8ZkD4ydb0EndbNcstpFU+vWzUvX3jr9z6u72+Srg/zjD8JQ1tIMjMn0H1PnsNLItZqPZ6RYIPJB6HOsVMg==",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0"
+ }
+ },
+ "solidity-comments-extractor": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz",
+ "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==",
+ "dev": true
+ },
+ "solidity-coverage": {
+ "version": "0.7.16",
+ "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.7.16.tgz",
+ "integrity": "sha512-ttBOStywE6ZOTJmmABSg4b8pwwZfYKG8zxu40Nz+sRF5bQX7JULXWj/XbX0KXps3Fsp8CJXg8P29rH3W54ipxw==",
+ "dev": true,
+ "requires": {
+ "@solidity-parser/parser": "^0.12.0",
+ "@truffle/provider": "^0.2.24",
+ "chalk": "^2.4.2",
+ "death": "^1.1.0",
+ "detect-port": "^1.3.0",
+ "fs-extra": "^8.1.0",
+ "ganache-cli": "^6.11.0",
+ "ghost-testrpc": "^0.0.2",
+ "global-modules": "^2.0.0",
+ "globby": "^10.0.1",
+ "jsonschema": "^1.2.4",
+ "lodash": "^4.17.15",
+ "node-emoji": "^1.10.0",
+ "pify": "^4.0.1",
+ "recursive-readdir": "^2.2.2",
+ "sc-istanbul": "^0.4.5",
+ "semver": "^7.3.4",
+ "shelljs": "^0.8.3",
+ "web3-utils": "^1.3.0"
+ },
+ "dependencies": {
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ },
+ "@solidity-parser/parser": {
+ "version": "0.12.2",
+ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.12.2.tgz",
+ "integrity": "sha512-d7VS7PxgMosm5NyaiyDJRNID5pK4AWj1l64Dbz0147hJgy5k2C0/ZiKK/9u5c5K+HRUVHmp+RMvGEjGh84oA5Q==",
+ "dev": true
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "fast-glob": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
+ "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.0",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.2",
+ "picomatch": "^2.2.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globby": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
+ "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.0.3",
+ "glob": "^7.1.3",
+ "ignore": "^5.1.1",
+ "merge2": "^1.2.3",
+ "slash": "^3.0.0"
+ }
+ },
+ "ignore": {
+ "version": "5.1.8",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
+ "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "micromatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "solparse": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/solparse/-/solparse-2.2.8.tgz",
+ "integrity": "sha512-Tm6hdfG72DOxD40SD+T5ddbekWglNWjzDRSNq7ZDIOHVsyaJSeeunUuWNj4DE7uDrJK3tGQuX0ZTDZWNYsGPMA==",
+ "dev": true,
+ "requires": {
+ "mocha": "^4.0.1",
+ "pegjs": "^0.10.0",
+ "yargs": "^10.0.3"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "browser-stdout": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "diff": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
+ "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "growl": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
+ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "mocha": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
+ "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
+ "dev": true,
+ "requires": {
+ "browser-stdout": "1.3.0",
+ "commander": "2.11.0",
+ "debug": "3.1.0",
+ "diff": "3.3.1",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.2",
+ "growl": "1.10.3",
+ "he": "1.1.1",
+ "mkdirp": "0.5.1",
+ "supports-color": "4.4.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^2.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
+ "y18n": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+ "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "10.1.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz",
+ "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==",
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.1.1",
+ "find-up": "^2.1.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^8.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz",
+ "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ }
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+ "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+ "dev": true
+ },
+ "spark-md5": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.0.tgz",
+ "integrity": "sha1-NyIifFTi+vJLHcbZM8wUTm9xv+8=",
+ "dev": true,
+ "optional": true
+ },
+ "spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true,
+ "optional": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz",
+ "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==",
+ "dev": true,
+ "optional": true
+ },
+ "spinnies": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.5.1.tgz",
+ "integrity": "sha512-WpjSXv9NQz0nU3yCT9TFEOfpFrXADY9C5fG6eAJqixLhvTX1jP3w92Y8IE5oafIe42nlF9otjhllnXN/QCaB3A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "cli-cursor": "^3.0.0",
+ "strip-ansi": "^5.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true,
+ "optional": true
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "optional": true
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sqlite3": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz",
+ "integrity": "sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.11.0"
+ }
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "dev": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "ssri": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz",
+ "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==",
+ "dev": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "dev": true,
+ "optional": true
+ },
+ "stacktrace-parser": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.7.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
+ "dev": true
+ }
+ }
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ },
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
+ "dev": true
+ },
+ "stoppable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
+ "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
+ "dev": true,
+ "optional": true
+ },
+ "stream-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
+ "dev": true
+ },
+ "stream-to-it": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.3.tgz",
+ "integrity": "sha512-xaK9EjPtLox5rrC7YLSBXSanTtUJN/lzJlMFvy9VaROmnyvy0U/X6m2uMhXPJRn3g3M9uOSIzTszW7BPiWSg9w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "get-iterator": "^1.0.2"
+ }
+ },
+ "streamsearch": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
+ "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
+ "dev": true,
+ "optional": true
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-bom-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
+ "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "first-chunk-stream": "^1.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-hex-prefix": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
+ "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=",
+ "dev": true,
+ "requires": {
+ "is-hex-prefixed": "1.0.0"
+ }
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
+ },
+ "sublevel-pouchdb": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.2.2.tgz",
+ "integrity": "sha512-y5uYgwKDgXVyPZceTDGWsSFAhpSddY29l9PJbXqMJLfREdPmQTY8InpatohlEfCXX7s1LGcrfYAhxPFZaJOLnQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "inherits": "2.0.4",
+ "level-codec": "9.0.2",
+ "ltgt": "2.2.1",
+ "readable-stream": "1.1.14"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true,
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "subscriptions-transport-ws": {
+ "version": "0.9.18",
+ "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz",
+ "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "backo2": "^1.0.2",
+ "eventemitter3": "^3.1.0",
+ "iterall": "^1.2.1",
+ "symbol-observable": "^1.0.4",
+ "ws": "^5.2.0"
+ },
+ "dependencies": {
+ "eventemitter3": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
+ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
+ "dev": true,
+ "optional": true
+ },
+ "ws": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
+ "super-split": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/super-split/-/super-split-1.1.0.tgz",
+ "integrity": "sha512-I4bA5mgcb6Fw5UJ+EkpzqXfiuvVGS/7MuND+oBxNFmxu3ugLNrdIatzBLfhFRMVMLxgSsRy+TjIktgkF9RFSNQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "svg-to-png": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/svg-to-png/-/svg-to-png-4.0.0.tgz",
+ "integrity": "sha512-rRZtKkufSiOh9peAA8Sn/+VnrHR0copUi+btLwygoKHJ21lDmMT6AXHrBjqL3rYDXT/81k5pTMJ34UsnjXliiw==",
+ "dev": true,
+ "requires": {
+ "imagemin": "^6.0.0",
+ "phantomjs-prebuilt": "^2.1.7"
+ }
+ },
+ "swap-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
+ "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=",
+ "dev": true,
+ "requires": {
+ "lower-case": "^1.1.1",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "swarm-js": {
+ "version": "0.1.40",
+ "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz",
+ "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.0",
+ "buffer": "^5.0.5",
+ "eth-lib": "^0.1.26",
+ "fs-extra": "^4.0.2",
+ "got": "^7.1.0",
+ "mime-types": "^2.1.16",
+ "mkdirp-promise": "^5.0.1",
+ "mock-fs": "^4.1.0",
+ "setimmediate": "^1.0.5",
+ "tar": "^4.0.2",
+ "xhr-request": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.1.29",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
+ "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "nano-json-stream-parser": "^0.1.2",
+ "servify": "^0.1.12",
+ "ws": "^3.0.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "fs-extra": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "got": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
+ "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
+ "dev": true,
+ "requires": {
+ "decompress-response": "^3.2.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-plain-obj": "^1.1.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "isurl": "^1.0.0-alpha5",
+ "lowercase-keys": "^1.0.0",
+ "p-cancelable": "^0.3.0",
+ "p-timeout": "^1.1.1",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "url-parse-lax": "^1.0.0",
+ "url-to-options": "^1.0.1"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "p-cancelable": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
+ "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "dev": true,
+ "requires": {
+ "prepend-http": "^1.0.1"
+ }
+ }
+ }
+ },
+ "symbol": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz",
+ "integrity": "sha1-O5hzuKkB5Hxu/iFSajrDcu8ou8c=",
+ "dev": true,
+ "optional": true
+ },
+ "symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+ "dev": true
+ },
+ "symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+ "dev": true,
+ "optional": true
+ },
+ "sync-fetch": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz",
+ "integrity": "sha512-dJp4qg+x4JwSEW1HibAuMi0IIrBI3wuQr2GimmqB7OXR50wmwzfdusG+p39R9w3R6aFtZ2mzvxvWKQ3Bd/vx3g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "buffer": "^5.7.0",
+ "node-fetch": "^2.6.1"
+ }
+ },
+ "sync-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz",
+ "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==",
+ "dev": true,
+ "requires": {
+ "http-response-object": "^3.0.1",
+ "sync-rpc": "^1.2.1",
+ "then-request": "^6.0.0"
+ }
+ },
+ "sync-rpc": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz",
+ "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==",
+ "dev": true,
+ "requires": {
+ "get-port": "^3.1.0"
+ }
+ },
+ "table": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz",
+ "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==",
+ "dev": true,
+ "requires": {
+ "ajv": "^8.0.1",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz",
+ "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
+ }
+ },
+ "taffydb": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.7.3.tgz",
+ "integrity": "sha1-KtNxaWKUmPylvIQkMJbTzeDsOjQ=",
+ "dev": true
+ },
+ "tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "dev": true
+ },
+ "tar": {
+ "version": "4.4.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
+ "dev": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ }
+ },
+ "terser": {
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
+ "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
+ "dev": true,
+ "requires": {
+ "commander": "^2.20.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.12"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
+ "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==",
+ "dev": true,
+ "requires": {
+ "cacache": "^12.0.2",
+ "find-cache-dir": "^2.1.0",
+ "is-wsl": "^1.1.0",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^4.0.0",
+ "source-map": "^0.6.1",
+ "terser": "^4.1.2",
+ "webpack-sources": "^1.4.0",
+ "worker-farm": "^1.7.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "then-request": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz",
+ "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==",
+ "dev": true,
+ "requires": {
+ "@types/concat-stream": "^1.6.0",
+ "@types/form-data": "0.0.33",
+ "@types/node": "^8.0.0",
+ "@types/qs": "^6.2.31",
+ "caseless": "~0.12.0",
+ "concat-stream": "^1.6.0",
+ "form-data": "^2.2.0",
+ "http-basic": "^8.1.1",
+ "http-response-object": "^3.0.1",
+ "promise": "^8.0.0",
+ "qs": "^6.4.0"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "8.10.66",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
+ "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==",
+ "dev": true
+ },
+ "promise": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz",
+ "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==",
+ "dev": true,
+ "requires": {
+ "asap": "~2.0.6"
+ }
+ }
+ }
+ },
+ "throttleit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+ "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
+ "dev": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "through2-filter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
+ "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "tildify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
+ "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+ "dev": true
+ },
+ "timeout-abort-controller": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz",
+ "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "retimer": "^2.0.0"
+ }
+ },
+ "timers-browserify": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
+ "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
+ "dev": true,
+ "requires": {
+ "setimmediate": "^1.0.4"
+ }
+ },
+ "tiny-queue": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/tiny-queue/-/tiny-queue-0.2.1.tgz",
+ "integrity": "sha1-JaZ/LG4lOyypQZd7XvdELvl6YEY=",
+ "dev": true,
+ "optional": true
+ },
+ "tiny-secp256k1": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz",
+ "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bindings": "^1.3.0",
+ "bn.js": "^4.11.8",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.4.0",
+ "nan": "^2.13.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "title-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz",
+ "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.0.3"
+ }
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-absolute-glob": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
+ "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extend-shallow": "^2.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "to-data-view": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/to-data-view/-/to-data-view-1.1.0.tgz",
+ "integrity": "sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ==",
+ "dev": true,
+ "optional": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true,
+ "optional": true
+ },
+ "to-json-schema": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/to-json-schema/-/to-json-schema-0.2.5.tgz",
+ "integrity": "sha512-jP1ievOee8pec3tV9ncxLSS48Bnw7DIybgy112rhMCEhf3K4uyVNZZHr03iQQBzbV5v5Hos+dlZRRyk6YSMNDw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "lodash.isequal": "^4.5.0",
+ "lodash.keys": "^4.2.0",
+ "lodash.merge": "^4.6.2",
+ "lodash.omit": "^4.5.0",
+ "lodash.without": "^4.4.0",
+ "lodash.xor": "^4.5.0"
+ }
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "dev": true
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "dev": true
+ },
+ "toposort": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz",
+ "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
+ "dev": true
+ },
+ "tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "dev": true,
+ "requires": {
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ }
+ },
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
+ "dev": true,
+ "optional": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "true-case-path": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz",
+ "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==",
+ "dev": true
+ },
+ "truffle": {
+ "version": "5.3.9",
+ "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.3.9.tgz",
+ "integrity": "sha512-heKtYqUmYCtMxIn1ho/MgeLMYeoqeUrf0f4J7nQnSrMaPz0L5YXdtYI5UP4fFkc6XKLZWHfvyx/3ccz05OS63Q==",
+ "dev": true,
+ "requires": {
+ "@truffle/db": "^0.5.14",
+ "@truffle/debugger": "^9.0.1",
+ "@truffle/preserve-fs": "^0.2.2",
+ "@truffle/preserve-to-buckets": "^0.2.2",
+ "@truffle/preserve-to-filecoin": "^0.2.2",
+ "@truffle/preserve-to-ipfs": "^0.2.2",
+ "app-module-path": "^2.2.0",
+ "mocha": "8.1.2",
+ "original-require": "^1.0.1"
+ },
+ "dependencies": {
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "chokidar": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz",
+ "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.1.2",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.4.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
+ "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "log-symbols": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0"
+ }
+ },
+ "mocha": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.2.tgz",
+ "integrity": "sha512-I8FRAcuACNMLQn3lS4qeWLxXqLvGf6r2CaLstDpZmMUUSmvW6Cnm1AuHxgbc7ctZVRcfwspCRbDHymPsi3dkJw==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.4.2",
+ "debug": "4.1.1",
+ "diff": "4.0.2",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.1.6",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "3.14.0",
+ "log-symbols": "4.0.0",
+ "minimatch": "3.0.4",
+ "ms": "2.1.2",
+ "object.assign": "4.1.0",
+ "promise.allsettled": "1.0.2",
+ "serialize-javascript": "4.0.0",
+ "strip-json-comments": "3.0.1",
+ "supports-color": "7.1.0",
+ "which": "2.0.2",
+ "wide-align": "1.1.3",
+ "workerpool": "6.0.0",
+ "yargs": "13.3.2",
+ "yargs-parser": "13.1.2",
+ "yargs-unparser": "1.6.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "readdirp": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
+ "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
+ "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "yargs-unparser": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz",
+ "integrity": "sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "decamelize": "^1.2.0",
+ "flat": "^4.1.0",
+ "is-plain-obj": "^1.1.0",
+ "yargs": "^14.2.3"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "14.2.3",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
+ "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^15.0.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
+ "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true
+ },
+ "ts-invariant": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
+ "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "tslib": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
+ "dev": true
+ },
+ "tsort": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz",
+ "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=",
+ "dev": true
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ },
+ "tweetnacl-util": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==",
+ "dev": true
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
+ "dev": true
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dev": true,
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "typeforce": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz",
+ "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==",
+ "dev": true,
+ "optional": true
+ },
+ "typescript-compare": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz",
+ "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==",
+ "dev": true,
+ "requires": {
+ "typescript-logic": "^0.0.0"
+ }
+ },
+ "typescript-logic": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz",
+ "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==",
+ "dev": true
+ },
+ "typescript-tuple": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz",
+ "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==",
+ "dev": true,
+ "requires": {
+ "typescript-compare": "^0.0.2"
+ }
+ },
+ "ua-parser-js": {
+ "version": "0.7.28",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz",
+ "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==",
+ "dev": true,
+ "optional": true
+ },
+ "uglify-js": {
+ "version": "3.4.10",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
+ "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==",
+ "dev": true,
+ "requires": {
+ "commander": "~2.19.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+ "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "uint8arrays": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz",
+ "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "multibase": "^3.0.0",
+ "web-encoding": "^1.0.2"
+ },
+ "dependencies": {
+ "multibase": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz",
+ "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@multiformats/base-x": "^4.0.1",
+ "web-encoding": "^1.0.6"
+ }
+ }
+ }
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+ "dev": true
+ },
+ "unbox-primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
+ "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has-bigints": "^1.0.1",
+ "has-symbols": "^1.0.2",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
+ "underscore": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+ "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==",
+ "dev": true
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dev": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "unique-stream": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
+ "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "through2-filter": "^3.0.0"
+ },
+ "dependencies": {
+ "through2-filter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
+ "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "crypto-random-string": "^1.0.0"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "unixify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz",
+ "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
+ "unorm": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz",
+ "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==",
+ "dev": true,
+ "optional": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ }
+ }
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true,
+ "optional": true
+ },
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+ "dev": true
+ },
+ "upper-case-first": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
+ "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=",
+ "dev": true,
+ "requires": {
+ "upper-case": "^1.1.1"
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "dev": true,
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "url-set-query": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
+ "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=",
+ "dev": true
+ },
+ "url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
+ "dev": true
+ },
+ "ursa-optional": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz",
+ "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "^2.14.2"
+ }
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
+ },
+ "utf-8-validate": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz",
+ "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==",
+ "dev": true,
+ "requires": {
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "utf8": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+ "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==",
+ "dev": true
+ },
+ "util": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
+ "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "safe-buffer": "^5.1.2",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "util.promisify": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz",
+ "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "for-each": "^0.3.3",
+ "has-symbols": "^1.0.1",
+ "object.getownpropertydescriptors": "^2.1.1"
+ }
+ },
+ "utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+ "dev": true
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true
+ },
+ "v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "vali-date": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
+ "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
+ "dev": true,
+ "optional": true
+ },
+ "valid-url": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
+ "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=",
+ "dev": true,
+ "optional": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "value-or-promise": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.6.tgz",
+ "integrity": "sha512-9r0wQsWD8z/BxPOvnwbPf05ZvFngXyouE9EKB+5GbYix+BYnAwrIChCUyFIinfbf2FL/U71z+CPpbnmTdxrwBg==",
+ "dev": true,
+ "optional": true
+ },
+ "varint": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==",
+ "dev": true
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "vinyl": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
+ "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "clone": "^1.0.0",
+ "clone-stats": "^0.0.1",
+ "replace-ext": "0.0.1"
+ },
+ "dependencies": {
+ "replace-ext": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+ "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "vinyl-fs": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.3.tgz",
+ "integrity": "sha1-PZflYuv91LZpId6nBia4S96dLQc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "duplexify": "^3.2.0",
+ "glob-stream": "^5.3.2",
+ "graceful-fs": "^4.0.0",
+ "gulp-sourcemaps": "^1.5.2",
+ "is-valid-glob": "^0.3.0",
+ "lazystream": "^1.0.0",
+ "lodash.isequal": "^4.0.0",
+ "merge-stream": "^1.0.0",
+ "mkdirp": "^0.5.0",
+ "object-assign": "^4.0.0",
+ "readable-stream": "^2.0.4",
+ "strip-bom": "^2.0.0",
+ "strip-bom-stream": "^1.0.0",
+ "through2": "^2.0.0",
+ "through2-filter": "^2.0.0",
+ "vali-date": "^1.0.0",
+ "vinyl": "^1.0.0"
+ }
+ },
+ "viz.js": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/viz.js/-/viz.js-1.8.2.tgz",
+ "integrity": "sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ==",
+ "dev": true
+ },
+ "vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+ "dev": true
+ },
+ "vue": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.13.tgz",
+ "integrity": "sha512-O+pAdJkce1ooYS1XyoQtpBQr9An+Oys3w39rkqxukVO3ZD1ilYJkWBGoRuadiQEm2LLJnCL2utV4TMSf52ubjw==",
+ "dev": true
+ },
+ "vue-hot-reload-api": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
+ "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
+ "dev": true
+ },
+ "vue-loader": {
+ "version": "15.9.7",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.7.tgz",
+ "integrity": "sha512-qzlsbLV1HKEMf19IqCJqdNvFJRCI58WNbS6XbPqK13MrLz65es75w392MSQ5TsARAfIjUw+ATm3vlCXUJSOH9Q==",
+ "dev": true,
+ "requires": {
+ "@vue/component-compiler-utils": "^3.1.0",
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.1.0",
+ "vue-hot-reload-api": "^2.3.0",
+ "vue-style-loader": "^4.1.0"
+ }
+ },
+ "vue-router": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.1.tgz",
+ "integrity": "sha512-RRQNLT8Mzr8z7eL4p7BtKvRaTSGdCbTy2+Mm5HTJvLGYSSeG9gDzNasJPP/yOYKLy+/cLG/ftrqq5fvkFwBJEw==",
+ "dev": true
+ },
+ "vue-style-loader": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz",
+ "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==",
+ "dev": true,
+ "requires": {
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.0.2"
+ }
+ },
+ "vue-template-compiler": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.13.tgz",
+ "integrity": "sha512-latKAqpUjCkovB8XppW5gnZbSdYQzkf8pavsMBZYZrQcG6lAnj0EH4Ty7jMwAwFw5Cf4mybKBHlp1UTjnLPOWw==",
+ "dev": true,
+ "requires": {
+ "de-indent": "^1.0.2",
+ "he": "^1.1.0"
+ }
+ },
+ "vue-template-es2015-compiler": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz",
+ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
+ "dev": true
+ },
+ "vuvuzela": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz",
+ "integrity": "sha1-O+FF5YJxxzylUnndhR8SpoIRSws=",
+ "dev": true,
+ "optional": true
+ },
+ "watchpack": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
+ "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^3.4.1",
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0",
+ "watchpack-chokidar2": "^2.0.1"
+ }
+ },
+ "watchpack-chokidar2": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
+ "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chokidar": "^2.1.8"
+ },
+ "dependencies": {
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
+ "binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "dev": true,
+ "optional": true
+ },
+ "chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ }
+ },
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ }
+ }
+ }
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "web-encoding": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz",
+ "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@zxing/text-encoding": "0.9.0",
+ "util": "^0.12.3"
+ }
+ },
+ "web3": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.3.6.tgz",
+ "integrity": "sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA==",
+ "dev": true,
+ "requires": {
+ "web3-bzz": "1.3.6",
+ "web3-core": "1.3.6",
+ "web3-eth": "1.3.6",
+ "web3-eth-personal": "1.3.6",
+ "web3-net": "1.3.6",
+ "web3-shh": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-bzz": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.3.6.tgz",
+ "integrity": "sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "^12.12.6",
+ "got": "9.6.0",
+ "swarm-js": "^0.1.40",
+ "underscore": "1.12.1"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ }
+ }
+ },
+ "web3-core": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.3.6.tgz",
+ "integrity": "sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.5",
+ "@types/node": "^12.12.6",
+ "bignumber.js": "^9.0.0",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-requestmanager": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-core-helpers": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz",
+ "integrity": "sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA==",
+ "dev": true,
+ "requires": {
+ "underscore": "1.12.1",
+ "web3-eth-iban": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-core-method": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.3.6.tgz",
+ "integrity": "sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/transactions": "^5.0.0-beta.135",
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-core-promievent": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz",
+ "integrity": "sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "4.0.4"
+ }
+ },
+ "web3-core-requestmanager": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz",
+ "integrity": "sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA==",
+ "dev": true,
+ "requires": {
+ "underscore": "1.12.1",
+ "util": "^0.12.0",
+ "web3-core-helpers": "1.3.6",
+ "web3-providers-http": "1.3.6",
+ "web3-providers-ipc": "1.3.6",
+ "web3-providers-ws": "1.3.6"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ }
+ }
+ },
+ "web3-core-subscriptions": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz",
+ "integrity": "sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "4.0.4",
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ }
+ }
+ },
+ "web3-eth": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.3.6.tgz",
+ "integrity": "sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA==",
+ "dev": true,
+ "requires": {
+ "underscore": "1.12.1",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-eth-accounts": "1.3.6",
+ "web3-eth-contract": "1.3.6",
+ "web3-eth-ens": "1.3.6",
+ "web3-eth-iban": "1.3.6",
+ "web3-eth-personal": "1.3.6",
+ "web3-net": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-eth-abi": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz",
+ "integrity": "sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abi": "5.0.7",
+ "underscore": "1.12.1",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-eth-accounts": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz",
+ "integrity": "sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA==",
+ "dev": true,
+ "requires": {
+ "crypto-browserify": "3.12.0",
+ "eth-lib": "0.2.8",
+ "ethereumjs-common": "^1.3.2",
+ "ethereumjs-tx": "^2.1.1",
+ "scrypt-js": "^3.0.1",
+ "underscore": "1.12.1",
+ "uuid": "3.3.2",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
+ "dev": true
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-eth-contract": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz",
+ "integrity": "sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA==",
+ "dev": true,
+ "requires": {
+ "@types/bn.js": "^4.11.5",
+ "underscore": "1.12.1",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-eth-ens": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz",
+ "integrity": "sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA==",
+ "dev": true,
+ "requires": {
+ "content-hash": "^2.5.2",
+ "eth-ens-namehash": "2.0.8",
+ "underscore": "1.12.1",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-eth-contract": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-eth-iban": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz",
+ "integrity": "sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-eth-personal": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz",
+ "integrity": "sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "^12.12.6",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-net": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-net": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.3.6.tgz",
+ "integrity": "sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw==",
+ "dev": true,
+ "requires": {
+ "web3-core": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ },
+ "web3-utils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.12.1",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "web3-providers-http": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.3.6.tgz",
+ "integrity": "sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q==",
+ "dev": true,
+ "requires": {
+ "web3-core-helpers": "1.3.6",
+ "xhr2-cookies": "1.1.0"
+ }
+ },
+ "web3-providers-ipc": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz",
+ "integrity": "sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA==",
+ "dev": true,
+ "requires": {
+ "oboe": "2.1.5",
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ }
+ }
+ },
+ "web3-providers-ws": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz",
+ "integrity": "sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "4.0.4",
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6",
+ "websocket": "^1.0.32"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==",
+ "dev": true
+ }
+ }
+ },
+ "web3-shh": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.3.6.tgz",
+ "integrity": "sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw==",
+ "dev": true,
+ "requires": {
+ "web3-core": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-net": "1.3.6"
+ }
+ },
+ "web3-utils": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz",
+ "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==",
+ "dev": true,
+ "requires": {
+ "bn.js": "4.11.8",
+ "eth-lib": "0.2.7",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.9.1",
+ "utf8": "3.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ }
+ }
+ },
+ "webidl-conversions": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz",
+ "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=",
+ "dev": true,
+ "optional": true
+ },
+ "webpack": {
+ "version": "4.46.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz",
+ "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/wasm-edit": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "acorn": "^6.4.1",
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^4.5.0",
+ "eslint-scope": "^4.0.3",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^2.4.0",
+ "loader-utils": "^1.2.3",
+ "memory-fs": "^0.4.1",
+ "micromatch": "^3.1.10",
+ "mkdirp": "^0.5.3",
+ "neo-async": "^2.6.1",
+ "node-libs-browser": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "tapable": "^1.1.3",
+ "terser-webpack-plugin": "^1.4.3",
+ "watchpack": "^1.7.4",
+ "webpack-sources": "^1.4.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+ "dev": true
+ },
+ "eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+ "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "websocket": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz",
+ "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==",
+ "dev": true,
+ "requires": {
+ "bufferutil": "^4.0.1",
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "typedarray-to-buffer": "^3.1.5",
+ "utf-8-validate": "^5.0.2",
+ "yaeti": "^0.0.6"
+ }
+ },
+ "websql": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/websql/-/websql-1.0.0.tgz",
+ "integrity": "sha512-7iZ+u28Ljw5hCnMiq0BCOeSYf0vCFQe/ORY0HgscTiKjQed8WqugpBUggJ2NTnB9fahn1kEnPRX2jf8Px5PhJw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "argsarray": "^0.0.1",
+ "immediate": "^3.2.2",
+ "noop-fn": "^1.0.0",
+ "sqlite3": "^4.0.0",
+ "tiny-queue": "^0.2.1"
+ }
+ },
+ "whatwg-url-compat": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz",
+ "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tr46": "~0.0.1"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "which-pm-runs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
+ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=",
+ "dev": true
+ },
+ "which-typed-array": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz",
+ "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.2",
+ "call-bind": "^1.0.0",
+ "es-abstract": "^1.18.0-next.1",
+ "foreach": "^2.0.5",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.1",
+ "is-typed-array": "^1.1.3"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ }
+ }
+ },
+ "wif": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz",
+ "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bs58check": "<3.0.0"
+ }
+ },
+ "window-size": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
+ "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=",
+ "dev": true,
+ "optional": true
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ },
+ "worker-farm": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+ "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.7"
+ }
+ },
+ "workerpool": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz",
+ "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "write-stream": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz",
+ "integrity": "sha1-g8yMA0fQr2BXqThitOOuAd5cgcE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "readable-stream": "~0.0.2"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz",
+ "integrity": "sha1-8y124/uGM0SlSNeZIwBxc2ZbO40=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ },
+ "xdg-basedir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
+ "dev": true,
+ "optional": true
+ },
+ "xhr": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
+ "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
+ "dev": true,
+ "requires": {
+ "global": "~4.4.0",
+ "is-function": "^1.0.1",
+ "parse-headers": "^2.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "xhr-request": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz",
+ "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==",
+ "dev": true,
+ "requires": {
+ "buffer-to-arraybuffer": "^0.0.5",
+ "object-assign": "^4.1.1",
+ "query-string": "^5.0.1",
+ "simple-get": "^2.7.0",
+ "timed-out": "^4.0.1",
+ "url-set-query": "^1.0.0",
+ "xhr": "^2.0.4"
+ }
+ },
+ "xhr-request-promise": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz",
+ "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==",
+ "dev": true,
+ "requires": {
+ "xhr-request": "^1.1.0"
+ }
+ },
+ "xhr2-cookies": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz",
+ "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=",
+ "dev": true,
+ "requires": {
+ "cookiejar": "^2.1.1"
+ }
+ },
+ "xml-name-validator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
+ "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
+ "dev": true,
+ "optional": true
+ },
+ "xmlhttprequest": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
+ "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=",
+ "dev": true
+ },
+ "xss": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.9.tgz",
+ "integrity": "sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "commander": "^2.20.3",
+ "cssfilter": "0.0.10"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+ "dev": true
+ },
+ "yaeti": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
+ "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+ "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ }
+ }
+ },
+ "yargs-unparser": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
+ "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
+ "dev": true,
+ "requires": {
+ "flat": "^4.1.0",
+ "lodash": "^4.17.15",
+ "yargs": "^13.3.0"
+ }
+ },
+ "yarn": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.10.tgz",
+ "integrity": "sha512-IanQGI9RRPAN87VGTF7zs2uxkSyQSrSPsju0COgbsKQOOXr5LtcVPeyXWgwVa0ywG3d8dg6kSYKGBuYK021qeA=="
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "dev": true,
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true
+ },
+ "zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==",
+ "dev": true,
+ "optional": true
+ },
+ "zen-observable-ts": {
+ "version": "0.8.21",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz",
+ "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^1.9.3",
+ "zen-observable": "^0.8.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..0b9ca17
--- /dev/null
+++ b/package.json
@@ -0,0 +1,79 @@
+{
+ "name": "origins-launchpad",
+ "version": "1.2.8",
+ "description": "The smart contracts for the Origins Platform",
+ "keywords": [
+ "Origins",
+ "Launchpad",
+ "Token Sale"
+ ],
+ "author": "Franklin Richards ",
+ "homepage": "https://live.sovryn.app/origins",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/DistributedCollective/origins"
+ },
+ "bugs": {
+ "url": "https://github.com/DistributedCollective/origins/issues"
+ },
+ "license": "UNLICENSED",
+ "devDependencies": {
+ "@nomiclabs/hardhat-ethers": "^2.0.1",
+ "@nomiclabs/hardhat-ganache": "^2.0.0",
+ "@nomiclabs/hardhat-truffle5": "^2.0.0",
+ "@nomiclabs/hardhat-web3": "^2.0.0",
+ "@openzeppelin/test-helpers": "^0.5.10",
+ "bignumber.js": "^9.0.0",
+ "bn.js": "^5.1.2",
+ "chai": "^4.2.0",
+ "chai-as-promised": "^7.1.1",
+ "chai-bn": "^0.2.1",
+ "chai-string": "^1.5.0",
+ "coveralls": "^3.1.0",
+ "decimal.js": "10.2.0",
+ "dirty-chai": "^2.0.1",
+ "eslint": "^7.21.0",
+ "eslint-config-prettier": "^8.1.0",
+ "eslint-plugin-truffle": "^0.3.1",
+ "ethereumjs-abi": "^0.6.8",
+ "ethers": "^5.0.19",
+ "ganache-core": "^2.10.2",
+ "hardhat": "^2.0.11",
+ "hardhat-contract-sizer": "^2.0.2",
+ "hardhat-deploy": "^0.7.0-beta.46",
+ "hardhat-docgen": "^1.1.1",
+ "hardhat-gas-reporter": "^1.0.4",
+ "hardhat-log-remover": "^2.0.0",
+ "husky": "^4.3.6",
+ "prettier": "^2.2.1",
+ "prettier-plugin-solidity": "^1.0.0-beta.2",
+ "solhint": "^3.0.0",
+ "solhint-plugin-prettier": "^0.0.4",
+ "solidity-coverage": "^0.7.13",
+ "solparse": "^2.2.8",
+ "sol2uml": "^1.1.17",
+ "truffle": "^5.1.60"
+ },
+ "scripts": {
+ "analyze-contracts": "slither .",
+ "contract-size": "yarn run hardhat size-contracts",
+ "coverage": "npx hardhat coverage",
+ "doc": "yarn run hardhat docgen",
+ "lint": "npm run lint-sol && npm run lint-js",
+ "lint-sol": "solhint contracts/{*,**/*,**/**/*,**/**/**/*,**/**/**/**/*}.sol",
+ "lint-js": "eslint . --ext .js",
+ "prettier": "prettier --write .",
+ "prettier-check": "prettier --check .",
+ "test": "npx hardhat test",
+ "uml": "npx sol2uml ./contracts -o UML.svg"
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "yarn prettier && yarn lint",
+ "pre-push": "yarn prettier-check && yarn test"
+ }
+ },
+ "dependencies": {
+ "yarn": "^1.22.10"
+ }
+}
diff --git a/scripts/origins/README.md b/scripts/origins/README.md
new file mode 100644
index 0000000..b65f592
--- /dev/null
+++ b/scripts/origins/README.md
@@ -0,0 +1,64 @@
+# Script: Origins
+
+## Origins Platform
+
+These are the scripts which will be used to deploy the Origins Platform.
+
+## Prerequisite
+
+Please fill the below details in mainnet.json (or the corresponding network JSON files):
+
+- Multisig Owners in `multisigOwners`
+- Initial Admin in `initialAdmin`, this should be the EOA which runs this script. Don't forget to remove this address as an admin. It is recommended to use a multisig as the sole admin after initial setup.
+- Verifier in `originsVerifiers`, this address will be adding the address list which has to be verified to a particular tier.
+- Deposit Address in `depositAddress`, this address will receive the sale proceedings from the sale. Recommended to use a multisig provided by the Token Owners.
+- Token Release Time in `waitedTimestamp`, after this time, users who bought tokens in any tier with Transfer Type of Sale anything apart from `Unlocked` will be able to claim/vest their token in Locked Fund Contract.
+- Populate the tiers as per the tier details.
+
+## Steps:
+
+1. Create a multisig, if not already created. If already created, please add that to `multisig` in the JSON file to the corresponding network.
+
+To create:
+
+```
+brownie run scripts/origins/deployMultisig.py --network [ENTER DESIRED NETWORK]
+```
+
+2. Create the Locked Fund Contract.
+
+To create:
+
+```
+brownie run scripts/origins/deployLockedFund.py --network [ENTER DESIRED NETWORK]
+```
+
+Then select the correct option to deploy Locked Fund Contract.
+
+3. Create the Origins Platform.
+
+To create:
+
+```
+brownie run scripts/origins/deployOrigins.py --network [ENTER DESIRED NETWORK]
+```
+
+Then select the correct option to deploy Origins.
+
+4. Once the Origins is created, tiers has to be created. And required things to be set. There is an option when running `deployOrigins` to create tier. Select that, and add the tier ID based on JSON to add the tier in smart contract.
+
+5. Set the `waitedTS` of Locked Fund. Running the `deployLockedFund` will show an option for the same.
+
+6. (Optional, this is already done in Step 3) Set the origins as an admin of Locked Fund. Similar to above, running the `deployLockedFund` will show an option for the same.
+
+7. Now to create tier, you can select the option of Create Tier in the origins script. It will ask for the index, provide that based on the values file tier detail entry.
+
+8. Other things to do after things are deployed:
+ - If the verification type is `ByAddress` (Optional):
+ - Add yourself as a Verifier to verify address.
+ - Verify Addresses, if the verification type is `ByAddress`. (TODO: Currently it takes all the addresses at once and tries to verify, need to sequentialize that to take X number of wallets at once. A CSV parsed sequential list taker has to be built.)
+ - Remove yourself as a Verifier.
+ - Remove yourself as an Owner of Origins Platform.
+ - Remove yourself as an Owner of Locked Fund.
+
+Note: There are many other options for the Origins Script, and best to look to it for more in depth detail about each step.
diff --git a/scripts/origins/deployLockedFund.py b/scripts/origins/deployLockedFund.py
new file mode 100644
index 0000000..6bf4776
--- /dev/null
+++ b/scripts/origins/deployLockedFund.py
@@ -0,0 +1,154 @@
+from brownie import *
+
+import time
+import json
+import csv
+import math
+
+def main():
+ loadConfig()
+
+ balanceBefore = acct.balance()
+ choice()
+ balanceAfter = acct.balance()
+
+ print("=============================================================")
+ print("Balance Before: ", balanceBefore)
+ print("Balance After: ", balanceAfter)
+ print("Gas Used: ", balanceBefore - balanceAfter)
+ print("=============================================================")
+
+# =========================================================================================================================================
+def loadConfig():
+ global values, acct, thisNetwork
+ thisNetwork = network.show_active()
+
+ if thisNetwork == "development":
+ acct = accounts[0]
+ configFile = open('./scripts/origins/values/development.json')
+ elif thisNetwork == "testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-mainnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/origins/values/mainnet.json')
+ else:
+ raise Exception("Network not supported.")
+
+ # Load deployment parameters and contracts addresses
+ values = json.load(configFile)
+
+# =========================================================================================================================================
+def choice():
+ repeat = True
+ while(repeat):
+ print("\nOptions:")
+ print("1 for Deploying Locked Fund.")
+ print("2 for Adding LockedFund as an Admin of Vesting Registry.")
+ print("3 for Adding Origins as an Admin.")
+ print("4 for Removing yourself as an Admin.")
+ print("5 for Updating Vesting Registry.")
+ print("6 for Updating waited timestamp.")
+ print("7 to exit.")
+ selection = int(input("Enter the choice: "))
+ if(selection == 1):
+ deployLockedFund()
+ elif(selection == 2):
+ addLockedFundAsVestingAdmin()
+ elif(selection == 3):
+ addOriginsAsAdmin()
+ elif(selection == 4):
+ removeMyselfAsAdmin()
+ elif(selection == 5):
+ updateVestingRegistry()
+ elif(selection == 6):
+ updateWaitedTS()
+ elif(selection == 7):
+ repeat = False
+ else:
+ print("\nSmarter people have written this, enter valid selection ;)\n")
+
+# == Locked Fund Deployment ===============================================================================================================
+def deployLockedFund():
+ waitedTS = values['waitedTimestamp']
+ if thisNetwork == "testnet" or thisNetwork == "rsk-testnet":
+ waitedTS = int(time.time()) + (4*24*60*60)
+ token = values['token']
+ vestingRegistry = values['vestingRegistry']
+ adminList = [values['multisig'], acct]
+
+ print("\n=============================================================")
+ print("Deployment Parameters for LockedFund")
+ print("=============================================================")
+ print("Waited Timestamp: ", waitedTS)
+ print("Token Address: ", token)
+ print("Vesting Registry: ", vestingRegistry)
+ print("Admin List: ", adminList)
+ print("=============================================================")
+
+ lockedFund = acct.deploy(LockedFund, waitedTS, token, vestingRegistry, adminList)
+ values['lockedFund'] = str(lockedFund.address)
+ print("\nLocked Fund Deployed.")
+
+ addLockedFundAsVestingAdmin()
+ updateWaitedTS()
+
+ writeToJSON()
+
+# =========================================================================================================================================
+def addLockedFundAsVestingAdmin():
+ vestingRegistry = Contract.from_abi("VestingRegistry3", address=values['vestingRegistry'], abi=VestingRegistry3.abi, owner=acct)
+ print("\nAdding LockedFund as an admin of Vesting Registry.\n")
+ vestingRegistry.addAdmin(values['lockedFund'])
+ print("\nAdded Locked Fund:",values['lockedFund'],"as the admin of Vesting Registry:", values['vestingRegistry'])
+
+# =========================================================================================================================================
+def addOriginsAsAdmin():
+ lockedFund = Contract.from_abi("LockedFund", address=values['lockedFund'], abi=LockedFund.abi, owner=acct)
+ print("\nAdding Origins as an admin to LockedFund...\n")
+ lockedFund.addAdmin(values['origins'])
+ print("Added Origins as", values['origins'], "as an admin of Locked Fund.")
+
+# =========================================================================================================================================
+def removeMyselfAsAdmin():
+ lockedFund = Contract.from_abi("LockedFund", address=values['lockedFund'], abi=LockedFund.abi, owner=acct)
+ print("\nRemoving myself as an admin to LockedFund...\n")
+ lockedFund.removeAdmin(acct)
+ print("Removed myself as", acct, "as an admin of Locked Fund.")
+
+# =========================================================================================================================================
+def updateVestingRegistry():
+ lockedFund = Contract.from_abi("LockedFund", address=values['lockedFund'], abi=LockedFund.abi, owner=acct)
+ print("\nUpdating Vesting Registry of LockedFund...\n")
+ lockedFund.changeVestingRegistry(values['vestingRegistry'])
+ print("Updated Vesting Registry as", values['vestingRegistry'], "of LockedFund...\n")
+
+# =========================================================================================================================================
+def updateWaitedTS():
+ lockedFund = Contract.from_abi("LockedFund", address=values['lockedFund'], abi=LockedFund.abi, owner=acct)
+ print("\nUpdating Waited Timestamp of LockedFund...\n")
+ lockedFund.changeWaitedTS(values['waitedTimestamp'])
+ print("Updated Waited Timestamp as", values['waitedTimestamp'], "of LockedFund...\n")
+
+# =========================================================================================================================================
+def writeToJSON():
+ if thisNetwork == "development":
+ fileHandle = open('./scripts/origins/values/development.json', "w")
+ elif thisNetwork == "testnet" or thisNetwork == "rsk-testnet":
+ fileHandle = open('./scripts/origins/values/testnet.json', "w")
+ elif thisNetwork == "rsk-mainnet":
+ fileHandle = open('./scripts/origins/values/mainnet.json', "w")
+ json.dump(values, fileHandle, indent=4)
+
+# =========================================================================================================================================
+def waitTime():
+ if(thisNetwork != "development"):
+ print("\nWaiting for 30 seconds for the node to propogate correctly...\n")
+ time.sleep(15)
+ print("Just 15 more seconds...\n")
+ time.sleep(10)
+ print("5 more seconds I promise...\n")
+ time.sleep(5)
diff --git a/scripts/origins/deployMultisig.py b/scripts/origins/deployMultisig.py
new file mode 100644
index 0000000..c0dd06a
--- /dev/null
+++ b/scripts/origins/deployMultisig.py
@@ -0,0 +1,74 @@
+from brownie import *
+import json
+
+def main():
+ loadConfig()
+
+ balanceBefore = acct.balance()
+ # Function Call
+ deployMultisig()
+ balanceAfter = acct.balance()
+
+ print("=============================================================")
+ print("Balance Before: ", balanceBefore)
+ print("Balance After: ", balanceAfter)
+ print("Gas Used: ", balanceBefore - balanceAfter)
+ print("=============================================================")
+
+# =========================================================================================================================================
+def loadConfig():
+ global values, acct, thisNetwork
+ thisNetwork = network.show_active()
+
+ if thisNetwork == "development":
+ acct = accounts[0]
+ configFile = open('./scripts/origins/values/development.json')
+ elif thisNetwork == "testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-mainnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/origins/values/mainnet.json')
+ else:
+ raise Exception("Network not supported")
+
+ # Load values & deployed contracts addresses.
+ values = json.load(configFile)
+
+# == Multisig Deployment ==================================================================================================================
+def deployMultisig():
+ owners = values["multisigOwners"]
+ requiredConf = 1
+ if network.show_active() == "mainnet":
+ requiredConf = int(len(owners)/2 + 1)
+ print("=============================================================")
+ print("Deployment Parameters")
+ print("=============================================================")
+ print("Multisig Owners: ", owners)
+ print("Required Confirmations: ", requiredConf)
+ print("=============================================================")
+
+ print("Deploying the multisig...\n")
+ multisig = acct.deploy(MultiSigWallet, owners, requiredConf)
+ print("=============================================================")
+ print("Deployed Details")
+ print("=============================================================")
+ print("Multisig Address: ", multisig)
+ print("=============================================================")
+
+ # Updating the JSON Values.
+ values["multisig"] = str(multisig)
+ writeToJSON()
+
+# =========================================================================================================================================
+def writeToJSON():
+ if thisNetwork == "development":
+ fileHandle = open('./scripts/origins/values/development.json', "w")
+ elif thisNetwork == "testnet" or thisNetwork == "rsk-testnet":
+ fileHandle = open('./scripts/origins/values/testnet.json', "w")
+ elif thisNetwork == "rsk-mainnet":
+ fileHandle = open('./scripts/origins/values/mainnet.json', "w")
+ json.dump(values, fileHandle, indent=4)
diff --git a/scripts/origins/deployOrigins.py b/scripts/origins/deployOrigins.py
new file mode 100644
index 0000000..5bd17a1
--- /dev/null
+++ b/scripts/origins/deployOrigins.py
@@ -0,0 +1,498 @@
+from brownie import *
+
+import time
+import json
+import sys
+import csv
+import math
+
+def main():
+ loadConfig()
+
+ balanceBefore = acct.balance()
+ choice()
+ balanceAfter = acct.balance()
+
+ print("=============================================================")
+ print("Balance Before: ", balanceBefore)
+ print("Balance After: ", balanceAfter)
+ print("Gas Used: ", balanceBefore - balanceAfter)
+ print("=============================================================")
+
+# =========================================================================================================================================
+def loadConfig():
+ global values, acct, thisNetwork
+ thisNetwork = network.show_active()
+
+ if thisNetwork == "development":
+ acct = accounts[0]
+ configFile = open('./scripts/origins/values/development.json')
+ elif thisNetwork == "testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-mainnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/origins/values/mainnet.json')
+ else:
+ raise Exception("Network not supported.")
+
+ # Load deployment parameters and contracts addresses
+ values = json.load(configFile)
+
+# =========================================================================================================================================
+def choice():
+ repeat = True
+ while(repeat):
+ print("\nOptions:")
+ print("1 for Deploying Origins.")
+ print("2 for Updating/Adding Deposit Address.")
+ print("3 for Setting Locked Fund.")
+ print("4 for Creating a new Tier.")
+ print("5 for Setting Tier Verification.")
+ print("6 for Setting Tier Deposit Parameters.")
+ print("7 for Setting Tier Token Limit Parameters.")
+ print("8 for Setting Tier Token Amount Parameters.")
+ print("9 for Setting Tier Vest or Lock Parameters.")
+ print("10 for Setting Tier Time Parameters.")
+ print("11 for Buying Tokens.")
+ print("12 for Adding Myself as a Verifier.")
+ print("13 for Verified my wallet with Tier ID")
+ print("14 for Verifying Wallet List with Tier ID")
+ print("15 for Removing Myself as an Owner.")
+ print("16 for Removing Myself as a Verifier.")
+ print("17 for getting the Tier Count.")
+ print("18 for getting the Tier Details.")
+ print("19 for getting the Owner Details.")
+ print("20 for getting the Verifier Details.")
+ print("21 to exit.")
+ selection = int(input("Enter the choice: "))
+ if(selection == 1):
+ deployOrigins()
+ elif(selection == 2):
+ updateDepositAddress()
+ elif(selection == 3):
+ updateLockedFund()
+ elif(selection == 4):
+ createNewTier()
+ elif(selection == 5):
+ setTierVerification()
+ elif(selection == 6):
+ setTierDeposit()
+ elif(selection == 7):
+ setTierTokenLimit()
+ elif(selection == 8):
+ setTierTokenAmount()
+ elif(selection == 9):
+ setTierVestOrLock()
+ elif(selection == 10):
+ setTierTime()
+ elif(selection == 11):
+ buyTokens()
+ elif(selection == 12):
+ addMyselfAsVerifier()
+ elif(selection == 13):
+ verifyMyWallet()
+ elif(selection == 14):
+ verifyWalletList()
+ elif(selection == 15):
+ removeMyselfAsOwner()
+ elif(selection == 16):
+ removeMyselfAsVerifier()
+ elif(selection == 17):
+ getTierCount()
+ elif(selection == 18):
+ getTierDetails()
+ elif(selection == 19):
+ getOwnerList()
+ elif(selection == 20):
+ getVerifierList()
+ elif(selection == 21):
+ repeat = False
+ else:
+ print("\nSmarter people have written this, enter valid selection ;)\n")
+
+# =========================================================================================================================================
+def deployOrigins():
+ adminList = [values['multisig'], acct]
+ token = values['token']
+ depositAddress = values['depositAddress']
+
+ print("\n=============================================================")
+ print("Deployment Parameters for Origins")
+ print("=============================================================")
+ print("Admin List: ", adminList)
+ print("Token Address: ", token)
+ print("Deposit Address: ", depositAddress)
+ print("=============================================================")
+
+ origins = acct.deploy(OriginsBase, adminList, token, depositAddress)
+
+ print("\nOrigins Deployed.")
+
+ values['origins'] = str(origins)
+ writeToJSON()
+
+ updateLockedFund()
+
+ lockedFund = Contract.from_abi("LockedFund", address=values['lockedFund'], abi=LockedFund.abi, owner=acct)
+ print("\nAdding Origins as an admin to LockedFund...\n")
+ lockedFund.addAdmin(values['origins'])
+ print("Added Origins as", values['origins'], " as an admin of Locked Fund.")
+
+ addMyselfAsVerifier()
+
+ getOwnerList()
+ getVerifierList()
+
+ # For easy deployment uncomment below three lines.
+ # createNewTier()
+ # createNewTier()
+ # verifyWallet()
+
+# =========================================================================================================================================
+def updateDepositAddress():
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ print("\nUpdating Deposit Address of Origins...\n")
+ origins.setDepositAddress(values['depositAddress'])
+ print("Updated Deposit Address as", values['depositAddress'], " of Origins...\n")
+
+# =========================================================================================================================================
+def updateLockedFund():
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ print("\nUpdating Locked Fund Contract Address of Origins...\n")
+ origins.setLockedFund(values['lockedFund'])
+ print("Updated Locked Fund Contract Address as", values['lockedFund'], " of Origins...\n")
+
+# =========================================================================================================================================
+def readTier(reason):
+ print("\nIf you want to",reason,"the first tier, i.e. Index = 1 in JSON `tiers`, enter 1.")
+ tierID = int(input("Enter the Tier ID (Based on JSON File): "))
+ return tierID
+
+# =========================================================================================================================================
+def getDepositType(depositType):
+ if depositType == 0:
+ return "RBTC"
+ elif depositType == 1:
+ return "Token"
+ else:
+ return "Invalid Entry!"
+
+# =========================================================================================================================================
+def getVerificationType(verificationType):
+ if verificationType == 0:
+ return "None"
+ elif verificationType == 1:
+ return "Everyone"
+ elif verificationType == 2:
+ return "ByAddress"
+ else:
+ return "Invalid Entry!"
+
+# =========================================================================================================================================
+def getSaleEndDurationOrTS(saleEndDurationOrTimestamp):
+ if saleEndDurationOrTimestamp == 0:
+ return "None"
+ elif saleEndDurationOrTimestamp == 1:
+ return "UntilSupply"
+ elif saleEndDurationOrTimestamp == 2:
+ return "Duration"
+ elif saleEndDurationOrTimestamp == 3:
+ return "Timestamp"
+ else:
+ return "Invalid Entry!"
+
+# =========================================================================================================================================
+def getTransferType(transferType):
+ if transferType == 0:
+ return "None"
+ elif transferType == 1:
+ return "Unlocked"
+ elif transferType == 2:
+ return "WaitedUnlock"
+ elif transferType == 3:
+ return "Vested"
+ elif transferType == 4:
+ return "Locked"
+ else:
+ return "Invalid Entry!"
+
+# =========================================================================================================================================
+def makeAllowance(tokenObj, spender, amount):
+ print("\nChecking if enough token balance if there.")
+ bal = tokenObj.balanceOf(acct)
+ if(bal < amount):
+ print("\nNot enough token balance available for creating tier.")
+ sys.exit()
+ print("\nBalance:",bal)
+ print("\nApproving Token Transfer from", acct, " to", spender)
+ tokenObj.approve(spender, amount)
+ print("Token Transfer Approved...")
+
+# =========================================================================================================================================
+def checkAllowance(tokenObj, spender, amount):
+ if(tokenObj.allowance(acct, spender) < amount):
+ if thisNetwork == "rsk-mainnet":
+ print("\nNot enough token approved. Please approve the spender.")
+ print("1 for approve.")
+ print("Anything else for exit.")
+ selection = int(input("Enter Choice: "))
+ if(selection == 1):
+ makeAllowance(tokenObj, spender, amount)
+ else:
+ sys.exit()
+ else:
+ makeAllowance(tokenObj, spender, amount)
+
+# =========================================================================================================================================
+def createNewTier():
+ tierID = readTier("add")
+
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+
+ # IMPORTANT TODO: It is removed for the current sale, but has to be reimplemented in the future.
+ # minAmount = values['tiers'][tierID]['minimumAmount']
+
+ maxAmount = values['tiers'][tierID]['maximumAmount']
+ tokensForSale = int(values['tiers'][tierID]['tokensForSale'])
+ decimal = int(values['decimal'])
+ remainingTokens = tokensForSale * (10 ** decimal)
+ saleStartTimestamp = values['tiers'][tierID]['saleStartTimestamp']
+ saleEnd = values['tiers'][tierID]['saleEnd']
+
+ # IMPORTANT TODO: This needs to be changed in the future when adding Origins the capability
+ # to call the Locked Fund Contract to set the waitedTS.
+ # unlockedTS = values['waitedTimestamp']
+
+ unlockedBP = values['tiers'][tierID]['unlockedBP']
+ vestOrLockCliff = values['tiers'][tierID]['vestOrLockCliff']
+ vestOrLockDuration = values['tiers'][tierID]['vestOrLockDuration']
+ depositRate = values['tiers'][tierID]['depositRate']
+
+ # IMPORTANT TODO: It is removed for the current sale, but has to be reimplemented in the future.
+ # depositToken = values['tiers'][tierID]['depositToken']
+
+ depositType = values['tiers'][tierID]['depositType']
+ depositTypeReadable = getDepositType(int(depositType))
+ verificationType = values['tiers'][tierID]['verificationType']
+ verificationTypeReadable = getVerificationType(int(verificationType))
+ saleEndDurationOrTimestamp = values['tiers'][tierID]['saleEndDurationOrTimestamp']
+ saleEndDurationOrTimestampReadable = getSaleEndDurationOrTS(int(saleEndDurationOrTimestamp))
+ transferType = values['tiers'][tierID]['transferType']
+ transferTypeReadable = getTransferType(int(transferType))
+
+ print("\n=============================================================")
+ print("Tier Parameters:")
+ print("=============================================================")
+ # print("Minimum allowed asset: ", minAmount)
+ print("Maximum allowed asset: ", maxAmount)
+ print("Tokens For Sale (with Decimal): ", tokensForSale)
+ print("Tokens For Sale (without Decimal): ", remainingTokens)
+ print("Sale Start Timestamp: ", saleStartTimestamp)
+ print("Sale End Duration/Timestamp: ", saleEnd)
+ # print("Unlocked Token Timestamp: ", unlockedTS)
+ print("Unlocked Token Basis Point: ", unlockedBP)
+ print("Vest Or Lock Cliff: ", vestOrLockCliff)
+ print("Vest Or Lock Duration: ", vestOrLockDuration)
+ print("Deposit Rate: ", depositRate)
+ # print("Deposit Token: ", depositToken)
+ print("Deposit Type: ", depositTypeReadable)
+ print("Verification Type: ", verificationTypeReadable)
+ print("Sale End Duration or Timestamp: ", saleEndDurationOrTimestampReadable)
+ print("Transfer Type: ", transferTypeReadable)
+ print("=============================================================")
+
+ if(depositTypeReadable == "Invalid Entry!" or verificationTypeReadable == "Invalid Entry!" or saleEndDurationOrTimestampReadable == "Invalid Entry!" or transferTypeReadable == "Invalid Entry!"):
+ print("\nPlease check the types and tier parameters.")
+ sys.exit()
+
+ token = Contract.from_abi("Token", address=values['token'], abi=Token.abi, owner=acct)
+ checkAllowance(token, origins.address, remainingTokens)
+
+ balance = token.balanceOf(acct)
+ print("\nCurrent User Token Balance:",balance)
+
+ print("\nCreating new tier...")
+ # Based on the new parameters added on the TODO above, need to add the parameters here as well.
+ origins.createTier(maxAmount, remainingTokens, saleStartTimestamp, saleEnd, unlockedBP, vestOrLockCliff, vestOrLockDuration, depositRate, depositType, verificationType, saleEndDurationOrTimestamp, transferType)
+
+ balance = token.balanceOf(acct)
+ print("Updated User Token Balance:",balance)
+
+# =========================================================================================================================================
+def setTierVerification():
+ tierID = readTier("edit")
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ origins.setTierVerification(tierID, values['tiers'][tierID]['verificationType'])
+ print("Tier Verification Updated.")
+
+# =========================================================================================================================================
+def setTierDeposit():
+ tierID = readTier("edit")
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ origins.setTierDeposit(tierID, values['tiers'][tierID]['depositRate'], values['tiers'][tierID]['depositToken'], values['tiers'][tierID]['depositType'])
+ print("Tier Deposit Updated.")
+
+# =========================================================================================================================================
+def setTierTokenLimit():
+ tierID = readTier("edit")
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ origins.setTierTokenLimit(tierID, values['tiers'][tierID]['minimumAmount'], values['tiers'][tierID]['maximumAmount'])
+ print("Tier Token Limit Updated.")
+
+# =========================================================================================================================================
+def setTierTokenAmount():
+ tierID = readTier("edit")
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ tokensForSale = int(values['tiers'][tierID]['tokensForSale'])
+ decimal = int(values['decimal'])
+ remainingTokens = tokensForSale * (10 ** decimal)
+ origins.setTierTokenAmount(tierID, remainingTokens)
+ print("Tier Token Amount Updated.")
+
+# =========================================================================================================================================
+def setTierVestOrLock():
+ tierID = readTier("edit")
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ origins.setTierVestOrLock(tierID, values['tiers'][tierID]['vestOrLockCliff'], values['tiers'][tierID]['vestOrLockDuration'], values['tiers'][tierID]['unlockedBP'], values['tiers'][tierID]['transferType'])
+ print("Tier Vest or Lock Updated.")
+
+# =========================================================================================================================================
+def setTierTime():
+ tierID = readTier("edit")
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ origins.setTierTime(tierID, values['tiers'][tierID]['saleStartTimestamp'], values['tiers'][tierID]['saleEnd'], values['tiers'][tierID]['saleEndDurationOrTimestamp'])
+ print("Tier Time Updated.")
+
+# =========================================================================================================================================
+def buyTokens():
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ tierID = readTier("buy tokens in")
+ amount = 0
+ rbtcAmount = 0
+ print("\nIf you want to send just `X` RBTC/Token, put 1 itself, (X * (10 ** Decimals)) is done behind the screen.")
+ amount = float(input("Enter the amount of tokens/RBTC you want to send: "))
+ if(values['tiers'][tierID]['depositToken'] != '0x0000000000000000000000000000000000000000'):
+ token = Contract.from_abi("Token", address=values['tiers'][tierID]['depositToken'], abi=Token.abi, owner=acct)
+ decimal = token.decimals()
+ amount = amount * (10 ** decimal)
+ checkAllowance(token, origins.address, amount)
+ else:
+ decimal = 18
+ amount = amount * (10 ** decimal)
+ rbtcAmount = amount
+ origins.buy(tierID, amount, {'value':rbtcAmount})
+
+# =========================================================================================================================================
+def addMyselfAsVerifier():
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ print("\nAdding myself as a Verifier...\n")
+ origins.addVerifier(acct)
+ print("Added",acct,"as a verifier.")
+
+# =========================================================================================================================================
+def verifyMyWallet():
+ tierID = readTier("verify my wallet to")
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ origins.addressVerification(acct, tierID)
+ print("My address is Verified.")
+
+def verifyWalletList():
+ tierID = readTier("verify the wallet list to")
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ origins.multipleAddressSingleTierVerification(values['toVerify'], tierID)
+ print("All the address Verified.")
+
+# =========================================================================================================================================
+def removeMyselfAsVerifier():
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ print("\nRemoving myself as a Verifier...\n")
+ origins.removeVerifier(acct)
+ print("Removed myself as a Verifier.")
+
+# =========================================================================================================================================
+def removeMyselfAsOwner():
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ print("\nRemoving myself as an Owner...")
+ origins.removeOwner(acct)
+ print("Removed myself as an Owner.")
+
+# =========================================================================================================================================
+def getTierCount():
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ print("\n=============================================================")
+ print("Tier Count:",origins.getTierCount())
+ print("=============================================================")
+
+# =========================================================================================================================================
+def getTierDetails():
+ # Here +1 is added because readTier will return 0 for entering 1. The index in Smart Contract is 1 itself, unlike the JSON file.
+ tierID = readTier("read")
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+
+ minAmount, maxAmount, remainingTokens, saleStartTimestamp, saleEnd, unlockedBP, vestOrLockCliff, vestOrLockDuration, depositRate = origins.readTierPartA(tierID)
+ depositToken, depositType, verificationType, saleEndDurationOrTimestamp, transferType = origins.readTierPartB(tierID)
+
+ decimal = int(values['decimal'])
+ tokensForSale = remainingTokens / (10 ** decimal)
+ depositTypeReadable = getDepositType(int(depositType))
+ verificationTypeReadable = getVerificationType(int(verificationType))
+ saleEndDurationOrTimestampReadable = getSaleEndDurationOrTS(int(saleEndDurationOrTimestamp))
+ transferTypeReadable = getTransferType(int(transferType))
+
+ print("\n=============================================================")
+ print("Tier Details of Tier ID",tierID)
+ print("=============================================================")
+ print("Minimum allowed asset: ", minAmount)
+ print("Maximum allowed asset: ", maxAmount)
+ print("Tokens For Sale (with Decimal): ", tokensForSale)
+ print("Tokens For Sale (without Decimal): ", remainingTokens)
+ print("Sale Start Timestamp: ", saleStartTimestamp)
+ print("Sale End Duration/Timestamp: ", saleEnd)
+ print("Unlocked Token Basis Point: ", unlockedBP)
+ print("Vest Or Lock Cliff: ", vestOrLockCliff)
+ print("Vest Or Lock Duration: ", vestOrLockDuration)
+ print("Deposit Rate: ", depositRate)
+ print("Deposit Token: ", depositToken)
+ print("Deposit Type: ", depositTypeReadable)
+ print("Verification Type: ", verificationTypeReadable)
+ print("Sale End Duration or Timestamp: ", saleEndDurationOrTimestampReadable)
+ print("Transfer Type: ", transferTypeReadable)
+ print("=============================================================")
+
+# =========================================================================================================================================
+def getOwnerList():
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ print("\n=============================================================")
+ print("Owner List: ",origins.getOwners())
+ print("=============================================================")
+
+# =========================================================================================================================================
+def getVerifierList():
+ origins = Contract.from_abi("OriginsBase", address=values['origins'], abi=OriginsBase.abi, owner=acct)
+ print("\n=============================================================")
+ print("Verifier List: ",origins.getVerifiers())
+ print("=============================================================")
+
+# =========================================================================================================================================
+def writeToJSON():
+ if thisNetwork == "development":
+ fileHandle = open('./scripts/origins/values/development.json', "w")
+ elif thisNetwork == "testnet" or thisNetwork == "rsk-testnet":
+ fileHandle = open('./scripts/origins/values/testnet.json', "w")
+ elif thisNetwork == "rsk-mainnet":
+ fileHandle = open('./scripts/origins/values/mainnet.json', "w")
+ json.dump(values, fileHandle, indent=4)
+
+# =========================================================================================================================================
+def waitTime():
+ if(thisNetwork != "development"):
+ print("\nWaiting for 30 seconds for the node to propogate correctly...\n")
+ time.sleep(15)
+ print("Just 15 more seconds...\n")
+ time.sleep(10)
+ print("5 more seconds I promise...\n")
+ time.sleep(5)
diff --git a/scripts/origins/values/development.json b/scripts/origins/values/development.json
new file mode 100644
index 0000000..4aaad29
--- /dev/null
+++ b/scripts/origins/values/development.json
@@ -0,0 +1,67 @@
+{
+ "token": "0xBcb61491F1859f53438918F1A5aFCA542Af9D397",
+ "decimal": "18",
+ "multisigOwners": [
+ "0x4C3d3505d34213751c4b4d621cB6bDe7E664E222",
+ "0xb1c5C1B84E33CD32a153f1eB120e9Bd7109cc435",
+ "0xe1a148735f07bc5fe7cfb60499d325c8380488a8"
+ ],
+ "multisig": "0x42E8D004c84E6B5Bad559D3b5CE7947AADb9E0bc",
+ "originsVerifiers": ["0x4C3d3505d34213751c4b4d621cB6bDe7E664E222", "0xb1c5C1B84E33CD32a153f1eB120e9Bd7109cc435"],
+ "depositAddress": "0x9Cf4CC7185E957C63f0BA6a4D793F594c702AD66",
+ "waitedTimestamp": "1626270000",
+ "vestingRegistry": "0xA95916C3D979400C7443961330b3092510a229Ba",
+ "origins": "0x34b97ffa01dc0DC959c5f1176273D0de3be914C1",
+ "lockedFund": "0xF06D5f5BfFFCB6a52c84cfebc03AD35637728E73",
+ "tiers": [
+ {
+ "DONT_DELETE_THIS": "This acts as the zero index entry in SC which has to be skipped."
+ },
+ {
+ "minimumAmount": "1",
+ "maximumAmount": "50000000000000000",
+ "tokensForSale": "11508000",
+ "saleStartTimestamp": "1626270000",
+ "saleEnd": "259200",
+ "unlockedBP": "0",
+ "vestOrLockCliff": "1",
+ "vestOrLockDuration": "11",
+ "depositRate": "100",
+ "depositToken": "0x0000000000000000000000000000000000000000",
+ "depositType": "0",
+ "verificationType": "2",
+ "saleEndDurationOrTimestamp": "2",
+ "transferType": "3"
+ },
+ {
+ "minimumAmount": "1",
+ "maximumAmount": "75000000000000000",
+ "tokensForSale": "20000000",
+ "saleStartTimestamp": "1626270000",
+ "saleEnd": "259200",
+ "unlockedBP": "5000",
+ "vestOrLockCliff": "1",
+ "vestOrLockDuration": "11",
+ "depositRate": "50",
+ "depositToken": "0x0000000000000000000000000000000000000000",
+ "depositType": "0",
+ "verificationType": "1",
+ "saleEndDurationOrTimestamp": "2",
+ "transferType": "3"
+ }
+ ],
+ "toVerify": [
+ "0x531FFAb0A033707f3794222b9ba6c64D0099374A",
+ "0x54b8Aef719B63Ef9354b618AC1828b71EE6e496D",
+ "0xa41f08993b6d4dE3281F31492F7a93D6F403806B",
+ "0xdd771DdF2e13632ECccC4057690e35338b20FdF3",
+ "0x7d20eaa96aDbFe158C222210E7A8c05c44Da9d15",
+ "0x2bD2201bfe156a71EB0d02837172FFc237218505",
+ "0xA987a709f4A93eC25738FeC0F8d6189260459ed7",
+ "0xAB3d3DB6c8AF12B47a249451AAAde546a1A617Ea",
+ "0x48343139f46EA80422F7820cC0eBE5B77bbB1818",
+ "0xCB1857547a18837155694b4E267d3C64e677A2Ed",
+ "0x01e1205a5c3B6ffa3859Ab8E18134763132A422A"
+ ],
+ "verified": []
+}
diff --git a/scripts/origins/values/mainnet.json b/scripts/origins/values/mainnet.json
new file mode 100644
index 0000000..935ce9d
--- /dev/null
+++ b/scripts/origins/values/mainnet.json
@@ -0,0 +1,51 @@
+{
+ "token": "0xF769f619E3b9DBCd552E62dF217D5DC095f6a42b",
+ "decimal": "18",
+ "multisigOwners": ["", "0xb1c5C1B84E33CD32a153f1eB120e9Bd7109cc435", "0xe1a148735f07bc5fe7cfb60499d325c8380488a8"],
+ "multisig": "0x8f2608FA847A37989Df18E008ed476569AfE21D0",
+ "originsVerifiers": ["0x4C3d3505d34213751c4b4d621cB6bDe7E664E222"],
+ "depositAddress": "",
+ "waitedTimestamp": "",
+ "vestingRegistry": "",
+ "origins": "",
+ "lockedFund": "",
+ "tiers": [
+ {
+ "DONT_DELETE_THIS": "This acts as the zero index entry in SC which has to be skipped."
+ },
+ {
+ "minimumAmount": "",
+ "maximumAmount": "",
+ "tokensForSale": "11508000",
+ "saleStartTimestamp": "0",
+ "saleEnd": "172800",
+ "unlockedBP": "0",
+ "vestOrLockCliff": "1",
+ "vestOrLockDuration": "11",
+ "depositRate": "100",
+ "depositToken": "0x0000000000000000000000000000000000000000",
+ "depositType": "0",
+ "verificationType": "2",
+ "saleEndDurationOrTimestamp": "2",
+ "transferType": "3"
+ },
+ {
+ "minimumAmount": "",
+ "maximumAmount": "",
+ "tokensForSale": "20000000",
+ "saleStartTimestamp": "0",
+ "saleEnd": "172800",
+ "unlockedBP": "5000",
+ "vestOrLockCliff": "1",
+ "vestOrLockDuration": "11",
+ "depositRate": "50",
+ "depositToken": "0x0000000000000000000000000000000000000000",
+ "depositType": "0",
+ "verificationType": "1",
+ "saleEndDurationOrTimestamp": "2",
+ "transferType": "3"
+ }
+ ],
+ "toVerify": [],
+ "verified": []
+}
diff --git a/scripts/origins/values/testnet.json b/scripts/origins/values/testnet.json
new file mode 100644
index 0000000..8a8db13
--- /dev/null
+++ b/scripts/origins/values/testnet.json
@@ -0,0 +1,67 @@
+{
+ "token": "0xF769f619E3b9DBCd552E62dF217D5DC095f6a42b",
+ "decimal": "18",
+ "multisigOwners": [
+ "0x4C3d3505d34213751c4b4d621cB6bDe7E664E222",
+ "0xb1c5C1B84E33CD32a153f1eB120e9Bd7109cc435",
+ "0xe1a148735f07bc5fe7cfb60499d325c8380488a8"
+ ],
+ "multisig": "0x8f2608FA847A37989Df18E008ed476569AfE21D0",
+ "originsVerifiers": ["0x4C3d3505d34213751c4b4d621cB6bDe7E664E222", "0xb1c5C1B84E33CD32a153f1eB120e9Bd7109cc435"],
+ "depositAddress": "0x9Cf4CC7185E957C63f0BA6a4D793F594c702AD66",
+ "waitedTimestamp": "1627837200",
+ "vestingRegistry": "0xE402a46F372a461dD19ed34453253a0B5D1e0509",
+ "origins": "0xf4963730a7A1E1aA06E01A0C70Ae465Ba7C4a9E3",
+ "lockedFund": "0x0188907C12ddE77ddD41500Ae7263aD6BF243B29",
+ "tiers": [
+ {
+ "DONT_DELETE_THIS": "This acts as the zero index entry in SC which has to be skipped."
+ },
+ {
+ "minimumAmount": "1",
+ "maximumAmount": "50000000000000000",
+ "tokensForSale": "11508000",
+ "saleStartTimestamp": "1624473000",
+ "saleEnd": "259200",
+ "unlockedBP": "0",
+ "vestOrLockCliff": "1",
+ "vestOrLockDuration": "11",
+ "depositRate": "100",
+ "depositToken": "0x0000000000000000000000000000000000000000",
+ "depositType": "0",
+ "verificationType": "2",
+ "saleEndDurationOrTimestamp": "2",
+ "transferType": "3"
+ },
+ {
+ "minimumAmount": "1",
+ "maximumAmount": "75000000000000000",
+ "tokensForSale": "20000000",
+ "saleStartTimestamp": "1624732200",
+ "saleEnd": "259200",
+ "unlockedBP": "5000",
+ "vestOrLockCliff": "1",
+ "vestOrLockDuration": "11",
+ "depositRate": "50",
+ "depositToken": "0x0000000000000000000000000000000000000000",
+ "depositType": "0",
+ "verificationType": "1",
+ "saleEndDurationOrTimestamp": "2",
+ "transferType": "3"
+ }
+ ],
+ "toVerify": [
+ "0x531FFAb0A033707f3794222b9ba6c64D0099374A",
+ "0x54b8Aef719B63Ef9354b618AC1828b71EE6e496D",
+ "0xa41f08993b6d4dE3281F31492F7a93D6F403806B",
+ "0xdd771DdF2e13632ECccC4057690e35338b20FdF3",
+ "0x7d20eaa96aDbFe158C222210E7A8c05c44Da9d15",
+ "0x2bD2201bfe156a71EB0d02837172FFc237218505",
+ "0xA987a709f4A93eC25738FeC0F8d6189260459ed7",
+ "0xAB3d3DB6c8AF12B47a249451AAAde546a1A617Ea",
+ "0x48343139f46EA80422F7820cC0eBE5B77bbB1818",
+ "0xCB1857547a18837155694b4E267d3C64e677A2Ed",
+ "0x01e1205a5c3B6ffa3859Ab8E18134763132A422A"
+ ],
+ "verified": []
+}
diff --git a/scripts/token/README.md b/scripts/token/README.md
new file mode 100644
index 0000000..7e6b16a
--- /dev/null
+++ b/scripts/token/README.md
@@ -0,0 +1,57 @@
+# Script: Token
+
+## Token Sale
+
+Origins Platform requires a token for the sale. If the project for which the origins are used does not want to create their own token, this script can be used to create the token as well as it's corresponding governance, staking and vesting.
+
+### Pre-requisite
+
+Please fill the below details in mainnet.json (or the corresponding network JSON files):
+
+- Token Parameters like Name, Symbol, Decimal and Amount in `tokenName, tokenSymbol, tokenDecimal and tokenAmount`.
+
+IMPORTANT: Token Amount is multiplied by 10 raise to the number of decimals. So, if a token with 100 Million supply has to be created, the amount should be 100 Million and the decimals should be mentioned as required, the rest script will take care.
+
+- Add multisig owners in `multisigOwners`.
+
+- All the other values, including some of the values (token address) in origins folder of script gets populated automatically.
+
+### Deployment
+
+1. Run deploy_Token.py (Don't forget to transfer ownership of token after everything is done.)
+
+```
+brownie run scripts/token/deployToken.py --network [ENTER DESIRED NETWORK]
+```
+
+It will ask for a choice between deployment and transfer of ownership. Initially we select deployment. After running step 2, we can go forward to transferring ownership anytime we want.
+
+The deployment will take:
+
+- the token name from `tokenName`
+- the token symbol from `tokenSymbol`
+- the token amount from `tokenAmount`
+- the decimals from `tokenDecimal`
+ from the JSON files. `Amount * (10 ** Decimals)` will be done by the script.
+
+It will also update the testnet/mainnet JSON file with the new contract addresses as well.
+
+2. Run deploy_multisig.py
+
+```
+brownie run scripts/token/deployMultisig.py --network [ENTER DESIRED NETWORK]
+```
+
+NOTE: Before deploying, please make sure you add the correct key holders into `multisigOwners` in the JSON file based on the network.
+
+The multisig will be the owner of Token when running the Transfer Ownership in `deployToken.py` also will be the owner of the Governance, Staking, etc.
+
+3. Run deploy_stake_and_vest.py
+
+```
+brownie run scripts/token/deployStakeAndVest.py --network [ENTER DESIRED NETWORK]
+```
+
+This will create the staking and vesting.
+
+Important: It does not deploy feeSharing, as for FISH sale the governance was not deployed, thus for feeSharing, the address is taken from JSON and a dummy address is passed.
diff --git a/scripts/token/deployMultisig.py b/scripts/token/deployMultisig.py
new file mode 100644
index 0000000..612ae50
--- /dev/null
+++ b/scripts/token/deployMultisig.py
@@ -0,0 +1,72 @@
+from brownie import *
+import json
+
+def main():
+ loadConfig()
+
+ balanceBefore = acct.balance()
+ deployMultisig()
+ balanceAfter = acct.balance()
+
+ print("=============================================================")
+ print("Balance Before: ", balanceBefore)
+ print("Balance After: ", balanceAfter)
+ print("Gas Used: ", balanceBefore - balanceAfter)
+ print("=============================================================")
+
+# =========================================================================================================================================
+def loadConfig():
+ global values, acct, thisNetwork
+ thisNetwork = network.show_active()
+
+ if thisNetwork == "development":
+ acct = accounts[0]
+ configFile = open('./scripts/token/values/development.json')
+ elif thisNetwork == "testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/token/values/testnet.json')
+ elif thisNetwork == "rsk-testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/token/values/testnet.json')
+ elif thisNetwork == "rsk-mainnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/token/values/mainnet.json')
+ else:
+ raise Exception("Network not supported")
+
+ # Load values & deployed contracts addresses.
+ values = json.load(configFile)
+
+# =========================================================================================================================================
+def deployMultisig():
+ owners = values["multisigOwners"]
+ if network.show_active() == "development":
+ owners[0] = acct.address
+ requiredConf = 1
+ if network.show_active() == "mainnet":
+ requiredConf = int(len(owners)/2 + 1)
+ print("=============================================================")
+ print("Deployment Parameters")
+ print("=============================================================")
+ print("Multisig Owners: ", owners)
+ print("Required Confirmations: ", requiredConf)
+ print("=============================================================")
+
+ multisig = acct.deploy(MultiSigWallet, owners, requiredConf)
+ print("=============================================================")
+ print("Deployed Details")
+ print("=============================================================")
+ print("Multisig Address: ", multisig)
+ print("=============================================================")
+ values["multisig"] = str(multisig)
+ writeToJSON()
+
+# =========================================================================================================================================
+def writeToJSON():
+ if thisNetwork == "development":
+ fileHandle = open('./scripts/token/values/development.json', "w")
+ elif thisNetwork == "testnet" or thisNetwork == "rsk-testnet":
+ fileHandle = open('./scripts/token/values/testnet.json', "w")
+ elif thisNetwork == "rsk-mainnet":
+ fileHandle = open('./scripts/token/values/mainnet.json', "w")
+ json.dump(values, fileHandle, indent=4)
diff --git a/scripts/token/deployStakeAndVest.py b/scripts/token/deployStakeAndVest.py
new file mode 100644
index 0000000..fa7891f
--- /dev/null
+++ b/scripts/token/deployStakeAndVest.py
@@ -0,0 +1,94 @@
+from brownie import *
+import json
+
+def main():
+ loadConfig()
+
+ balanceBefore = acct.balance()
+ deployStakingAndVesting()
+ balanceAfter = acct.balance()
+
+ print("=============================================================")
+ print("Balance Before: ", balanceBefore)
+ print("Balance After: ", balanceAfter)
+ print("Gas Used: ", balanceBefore - balanceAfter)
+ print("=============================================================")
+
+# =========================================================================================================================================
+def loadConfig():
+ global values, origins, acct, thisNetwork
+ thisNetwork = network.show_active()
+
+ if thisNetwork == "development":
+ acct = accounts[0]
+ configFile = open('./scripts/token/values/development.json')
+ originsFile = open('./scripts/origins/values/development.json')
+ elif thisNetwork == "testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/token/values/testnet.json')
+ originsFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/token/values/testnet.json')
+ originsFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-mainnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/token/values/mainnet.json')
+ originsFile = open('./scripts/origins/values/mainnet.json')
+ else:
+ raise Exception("Network not supported")
+
+ # Load values & deployed contracts addresses.
+ values = json.load(configFile)
+ origins = json.load(originsFile)
+
+# =========================================================================================================================================
+def deployStakingAndVesting():
+ multisig = values["multisig"]
+ token = values["Token"]
+ feeSharing = values["feeSharing"]
+
+ print("\nDeploying the staking logic...\n")
+ stakingLogic = acct.deploy(Staking)
+ values["stakingLogic"] = str(stakingLogic)
+
+ print("Deploying the staking proxy...\n")
+ staking = acct.deploy(StakingProxy, token)
+ values["staking"] = str(staking)
+
+ print("Setting the staking logic to proxy...\n")
+ staking.setImplementation(stakingLogic.address)
+ staking = Contract.from_abi("Staking", address=staking.address, abi=Staking.abi, owner=acct)
+
+ print("Setting the Fee Sharing into Staking...\n")
+ staking.setFeeSharing(feeSharing)
+
+ print("Deploying the vesting logic...\n")
+ vestingLogic = acct.deploy(VestingLogic)
+ values["vestingLogic"] = str(vestingLogic)
+
+ print("Deploying the vesting factory...\n")
+ vestingFactory = acct.deploy(VestingFactory, vestingLogic.address)
+ values["vestingFactory"] = str(vestingFactory)
+
+ print("Deploying the vesting registry...\n")
+ vestingRegistry = acct.deploy(VestingRegistry3, vestingFactory.address, token, staking.address, feeSharing, multisig)
+ values["vestingRegistry"] = str(vestingRegistry)
+ origins["vestingRegistry"] = str(vestingRegistry)
+
+ print("Almost finished, writing the values to json.")
+ writeToJSON()
+
+# =========================================================================================================================================
+def writeToJSON():
+ if thisNetwork == "development":
+ tokenHandle = open('./scripts/token/values/development.json', "w")
+ originsHandle = open('./scripts/origins/values/development.json', "w")
+ elif thisNetwork == "testnet" or thisNetwork == "rsk-testnet":
+ tokenHandle = open('./scripts/token/values/testnet.json', "w")
+ originsHandle = open('./scripts/origins/values/testnet.json', "w")
+ elif thisNetwork == "rsk-mainnet":
+ tokenHandle = open('./scripts/token/values/mainnet.json', "w")
+ originsHandle = open('./scripts/origins/values/mainnet.json', "w")
+ json.dump(values, tokenHandle, indent=4)
+ json.dump(origins, originsHandle, indent=4)
diff --git a/scripts/token/deployToken.py b/scripts/token/deployToken.py
new file mode 100644
index 0000000..60255f5
--- /dev/null
+++ b/scripts/token/deployToken.py
@@ -0,0 +1,129 @@
+from brownie import *
+import json
+import time
+
+def main():
+ loadConfig()
+
+ balanceBefore = acct.balance()
+ choice()
+ balanceAfter = acct.balance()
+
+ print("=============================================================")
+ print("Balance Before: ", balanceBefore)
+ print("Balance After: ", balanceAfter)
+ print("Gas Used: ", balanceBefore - balanceAfter)
+ print("=============================================================")
+
+# =========================================================================================================================================
+def loadConfig():
+ global values, origins, acct, thisNetwork
+ thisNetwork = network.show_active()
+
+ if thisNetwork == "development":
+ acct = accounts[0]
+ configFile = open('./scripts/token/values/development.json')
+ originsFile = open('./scripts/origins/values/development.json')
+ elif thisNetwork == "testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/token/values/testnet.json')
+ originsFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-testnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/token/values/testnet.json')
+ originsFile = open('./scripts/origins/values/testnet.json')
+ elif thisNetwork == "rsk-mainnet":
+ acct = accounts.load("rskdeployer")
+ configFile = open('./scripts/token/values/mainnet.json')
+ originsFile = open('./scripts/origins/values/mainnet.json')
+ else:
+ raise Exception("Network not supported")
+
+ # Load values & deployed contracts addresses.
+ values = json.load(configFile)
+ origins = json.load(originsFile)
+
+# =========================================================================================================================================
+def choice():
+ repeat = True
+ while(repeat):
+ print("Options:")
+ print("1 for Deploying Token.")
+ print("2 for Transfering Token Ownership to multisig.")
+ print("3 to exit.")
+ selection = int(input("Enter the choice: "))
+ if(selection == 1):
+ deployToken()
+ elif(selection == 2):
+ transferTokenOwnership()
+ elif(selection == 3):
+ repeat = False
+ else:
+ print("Smarter people have written this, enter valid selection ;)\n")
+
+# =========================================================================================================================================
+def deployToken():
+ tokenName = values["tokenName"]
+ tokenSymbol = values["tokenSymbol"]
+ tokenDecimal = int(values["tokenDecimal"])
+ tokenAmount = int(values["tokenAmount"]) * (10 ** tokenDecimal)
+ print("=============================================================")
+ print("Deployment Parameters")
+ print("=============================================================")
+ print("Token Name: ", tokenName)
+ print("Token Symbol: ", tokenSymbol)
+ print("Token Decimal: ", tokenDecimal)
+ print("Token Balance with Decimal: ", tokenAmount/(10 ** tokenDecimal))
+ print("Token Balance without Decimal: ", tokenAmount)
+ print("=============================================================")
+
+ print("Deploying the Token with the above parameters...")
+ TokenObj = acct.deploy(Token, tokenAmount, tokenName, tokenSymbol, tokenDecimal)
+ waitTime()
+ tokenAmount = TokenObj.balanceOf(acct)
+ print("=============================================================")
+ print("Deployed Details")
+ print("=============================================================")
+ print("Token Address: ", TokenObj)
+ print("Token Balance with Decimal: ", tokenAmount/(10 ** tokenDecimal))
+ print("Token Balance without Decimal: ", tokenAmount)
+ print("=============================================================")
+ values["token"] = str(TokenObj)
+ origins["token"] = str(TokenObj)
+ origins["decimal"] = values["tokenDecimal"]
+ writeToJSON()
+
+
+# =========================================================================================================================================
+def transferTokenOwnership():
+ tokenAddress = values["token"]
+ multisig = values["multisig"]
+ TokenObj = Contract.from_abi("Staking", address=tokenAddress, abi=Token.abi, owner=acct)
+ print("Current Token Owner of:", tokenAddress, "is", TokenObj.owner())
+ TokenObj.transferOwnership(multisig)
+ waitTime()
+ print("New Token Owner of:", tokenAddress, "is", TokenObj.owner())
+
+# =========================================================================================================================================
+def writeToJSON():
+ if thisNetwork == "development":
+ tokenHandle = open('./scripts/token/values/development.json', "w")
+ originsHandle = open('./scripts/origins/values/development.json', "w")
+ elif thisNetwork == "testnet" or thisNetwork == "rsk-testnet":
+ tokenHandle = open('./scripts/token/values/testnet.json', "w")
+ originsHandle = open('./scripts/origins/values/testnet.json', "w")
+ elif thisNetwork == "rsk-mainnet":
+ tokenHandle = open('./scripts/token/values/mainnet.json', "w")
+ originsHandle = open('./scripts/origins/values/mainnet.json', "w")
+ json.dump(values, tokenHandle, indent=4)
+ json.dump(origins, originsHandle, indent=4)
+
+# =========================================================================================================================================
+def waitTime():
+ if(thisNetwork != "development"):
+ print("\nWaiting for 30 seconds for the node to propogate correctly...\n")
+ time.sleep(15)
+ print("Just 15 more seconds...\n")
+ time.sleep(10)
+ print("5 more seconds I promise...\n")
+ time.sleep(5)
diff --git a/scripts/token/values/development.json b/scripts/token/values/development.json
new file mode 100644
index 0000000..7c89443
--- /dev/null
+++ b/scripts/token/values/development.json
@@ -0,0 +1,19 @@
+{
+ "tokenName": "Babelfish",
+ "tokenSymbol": "FISH",
+ "tokenDecimal": "18",
+ "tokenAmount": "420000000",
+ "token": "0xBcb61491F1859f53438918F1A5aFCA542Af9D397",
+ "multisig": "0xdCF93F11ef216cEC9C07fd31dD801c9b2b39Afb4",
+ "multisigOwners": [
+ "0x66aB6D9362d4F35596279692F0251Db635165871",
+ "0xb1c5C1B84E33CD32a153f1eB120e9Bd7109cc435",
+ "0xe1a148735f07bc5fe7cfb60499d325c8380488a8"
+ ],
+ "stakingLogic": "0xD22363efee93190f82b52FCD62B7Dbcb920eF658",
+ "staking": "0x4D1B781ce59B8C184F63B99D39d6719A522f46B5",
+ "feeSharing": "0x0000000000000000000000000000000000000001",
+ "vestingLogic": "0xADeD61D42dE86f9058386D1D0d739d20C7eAfC43",
+ "vestingFactory": "0x832698Daec363C9A7aB036C224Af5B21280b3AC6",
+ "vestingRegistry": "0xA95916C3D979400C7443961330b3092510a229Ba"
+}
diff --git a/scripts/token/values/mainnet.json b/scripts/token/values/mainnet.json
new file mode 100644
index 0000000..8825a53
--- /dev/null
+++ b/scripts/token/values/mainnet.json
@@ -0,0 +1,15 @@
+{
+ "tokenName": "Babelfish",
+ "tokenSymbol": "FISH",
+ "tokenDecimal": "18",
+ "tokenAmount": "420000000",
+ "token": "",
+ "multisig": "",
+ "multisigOwners": ["", "0xb1c5C1B84E33CD32a153f1eB120e9Bd7109cc435", "0xe1a148735f07bc5fe7cfb60499d325c8380488a8"],
+ "stakingLogic": "",
+ "staking": "",
+ "feeSharing": "0x0000000000000000000000000000000000000001",
+ "vestingLogic": "",
+ "vestingFactory": "",
+ "vestingRegistry": ""
+}
diff --git a/scripts/token/values/testnet.json b/scripts/token/values/testnet.json
new file mode 100644
index 0000000..53b6a83
--- /dev/null
+++ b/scripts/token/values/testnet.json
@@ -0,0 +1,19 @@
+{
+ "tokenName": "Babelfish",
+ "tokenSymbol": "FISH",
+ "tokenDecimal": "18",
+ "tokenAmount": "420000000",
+ "token": "0xF769f619E3b9DBCd552E62dF217D5DC095f6a42b",
+ "multisig": "0xad48087BaaEEe65b919CE62c052A833545f2f882",
+ "multisigOwners": [
+ "0x4C3d3505d34213751c4b4d621cB6bDe7E664E222",
+ "0xb1c5C1B84E33CD32a153f1eB120e9Bd7109cc435",
+ "0xe1a148735f07bc5fe7cfb60499d325c8380488a8"
+ ],
+ "stakingLogic": "0x0e6F05f56FF79F10d7985064E3bC3Bb340c1e493",
+ "staking": "0x437A875DfeDf0aC23878c75Fa621176b647ef9c9",
+ "feeSharing": "0x0000000000000000000000000000000000000001",
+ "vestingLogic": "0x5ab606Cd93e5C0FaDF4FB0f2F9Ac68b31Bc811bB",
+ "vestingFactory": "0xd3db91063e1e4E50812BE9E3801235D0581b6e6A",
+ "vestingRegistry": "0xE402a46F372a461dD19ed34453253a0B5D1e0509"
+}
diff --git a/tests/LockedFund/admin.test.js b/tests/LockedFund/admin.test.js
new file mode 100644
index 0000000..1c3152d
--- /dev/null
+++ b/tests/LockedFund/admin.test.js
@@ -0,0 +1,135 @@
+const {
+ // External Functions
+ expectRevert,
+ assert,
+ // Custom Functions
+ randomValue,
+ currentTimestamp,
+ createStakeAndVest,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ VestingRegistry,
+} = require("../utils");
+
+const { zero, zeroAddress, zeroBasisPoint, invalidBasisPoint, unlockTypeWaited } = require("../constants");
+
+let { cliff, duration, waitedTS } = require("../variable");
+
+contract("LockedFund (Admin Functions)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic;
+ let creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive;
+
+ before("Initiating Accounts & Creating Test Token Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 8, "Alteast 8 accounts are required to test the contracts.");
+ [creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive] = accounts;
+
+ waitedTS = await currentTimestamp();
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+ });
+
+ beforeEach("Creating New Locked Fund Contract Instance.", async () => {
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [admin], { from: creator });
+
+ // Adding lockedFund as an admin in the Vesting Registry.
+ await vestingRegistry.addAdmin(lockedFund.address, { from: creator });
+ });
+
+ it("Admin should be able to add another admin.", async () => {
+ await lockedFund.addAdmin(newAdmin, { from: admin });
+ });
+
+ it("Admin should not be able to add zero address as another admin.", async () => {
+ await expectRevert(lockedFund.addAdmin(zeroAddress, { from: admin }), "LockedFund: Invalid Address.");
+ });
+
+ it("Admin should not be able to add another admin more than once.", async () => {
+ await lockedFund.addAdmin(newAdmin, { from: admin });
+ await expectRevert(lockedFund.addAdmin(newAdmin, { from: admin }), "LockedFund: Address is already admin.");
+ });
+
+ it("Admin should be able to remove an admin.", async () => {
+ await lockedFund.addAdmin(newAdmin, { from: admin });
+ await lockedFund.removeAdmin(newAdmin, { from: admin });
+ });
+
+ it("Admin should not be able to call removeAdmin() with a normal user address.", async () => {
+ await expectRevert(lockedFund.removeAdmin(userOne, { from: admin }), "LockedFund: Address is not an admin.");
+ });
+
+ it("Admin should be able to change the vestingRegistry.", async () => {
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ await lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: admin });
+ });
+
+ it("Admin should not be able to change the vestingRegistry as a zero address.", async () => {
+ await expectRevert(
+ lockedFund.changeVestingRegistry(zeroAddress, { from: admin }),
+ "LockedFund: Vesting registry address is invalid."
+ );
+ });
+
+ it("Admin should be able to change the waited timestamp.", async () => {
+ let value = randomValue();
+ let newWaitedTS = waitedTS + value;
+ await lockedFund.changeWaitedTS(newWaitedTS, { from: admin });
+ });
+
+ it("Admin should not be able to change the waited TS as zero.", async () => {
+ await expectRevert(lockedFund.changeWaitedTS(zero, { from: admin }), "LockedFund: Waited TS cannot be zero.");
+ });
+
+ it("Admin should be able to deposit using depositVested().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ });
+
+ it("Admin should not be able to deposit using depositWaitedUnlocked() with invalid basis point.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await expectRevert(
+ lockedFund.depositWaitedUnlocked(userOne, value, invalidBasisPoint, { from: admin }),
+ "LockedFund: Basis Point has to be less than 10000."
+ );
+ });
+
+ it("Admin should not be able to deposit with the duration as zero.", async () => {
+ let value = randomValue();
+ await expectRevert(
+ lockedFund.depositVested(userOne, value, cliff, zero, zeroBasisPoint, unlockTypeWaited, { from: admin }),
+ "LockedFund: Duration cannot be zero."
+ );
+ });
+
+ it("Admin should not be able to deposit with the duration higher than max allowed.", async () => {
+ let value = randomValue();
+ await expectRevert(
+ lockedFund.depositVested(userOne, value, cliff, 100, zeroBasisPoint, unlockTypeWaited, { from: admin }),
+ "LockedFund: Duration is too long."
+ );
+ });
+
+ it("Admin should not be able to deposit with basis point higher than max allowed.", async () => {
+ let value = randomValue();
+ await expectRevert(
+ lockedFund.depositVested(userOne, value, cliff, duration, invalidBasisPoint, unlockTypeWaited, { from: admin }),
+ "LockedFund: Basis Point has to be less than 10000."
+ );
+ });
+});
diff --git a/tests/LockedFund/creator.test.js b/tests/LockedFund/creator.test.js
new file mode 100644
index 0000000..2614c27
--- /dev/null
+++ b/tests/LockedFund/creator.test.js
@@ -0,0 +1,110 @@
+const {
+ // External Functions
+ expectRevert,
+ assert,
+ // Custom Functions
+ randomValue,
+ currentTimestamp,
+ createStakeAndVest,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ VestingRegistry,
+} = require("../utils");
+
+const { zero, zeroAddress, zeroBasisPoint, unlockTypeWaited } = require("../constants");
+
+let { cliff, duration, waitedTS } = require("../variable");
+
+contract("LockedFund (Creator Functions)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic;
+ let creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive;
+
+ before("Initiating Accounts & Creating Test Token Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 8, "Alteast 8 accounts are required to test the contracts.");
+ [creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive] = accounts;
+
+ waitedTS = await currentTimestamp();
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+ });
+
+ beforeEach("Creating New Locked Fund Contract Instance.", async () => {
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [admin], { from: creator });
+
+ // Adding lockedFund as an admin in the Vesting Registry.
+ await vestingRegistry.addAdmin(lockedFund.address, { from: creator });
+ });
+
+ it("Creator should not be able to create a lockedFund contract with zero as waited timestamp.", async () => {
+ await expectRevert(
+ LockedFund.new(0, token.address, vestingRegistry.address, [admin], { from: creator }),
+ "LockedFund: Waited TS cannot be zero."
+ );
+ });
+
+ it("Creator should not be able to create a lockedFund contract with zero address for token.", async () => {
+ await expectRevert(
+ LockedFund.new(waitedTS, zeroAddress, vestingRegistry.address, [admin], { from: creator }),
+ "LockedFund: Invalid Token Address."
+ );
+ });
+
+ it("Creator should not be able to create a lockedFund contract with zero address as vesting registry.", async () => {
+ await expectRevert(
+ LockedFund.new(waitedTS, token.address, zeroAddress, [admin], { from: creator }),
+ "LockedFund: Vesting registry address is invalid."
+ );
+ });
+
+ it("Creator should not be able to create a lockedFund contract with invalid admin address.", async () => {
+ await expectRevert(
+ LockedFund.new(waitedTS, token.address, vestingRegistry.address, [zeroAddress], { from: creator }),
+ "LockedFund: Invalid Address."
+ );
+ });
+
+ it("Creator should not be able to add another admin.", async () => {
+ await expectRevert(lockedFund.addAdmin(newAdmin, { from: creator }), "LockedFund: Only admin can call this.");
+ });
+
+ it("Creator should not be able to remove an admin.", async () => {
+ await expectRevert(lockedFund.removeAdmin(newAdmin, { from: creator }), "LockedFund: Only admin can call this.");
+ });
+
+ it("Creator should not be able to change the vestingRegistry.", async () => {
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ await expectRevert(
+ lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: creator }),
+ "LockedFund: Only admin can call this."
+ );
+ });
+
+ it("Creator should not be able to change the waited timestamp.", async () => {
+ let value = randomValue();
+ let newWaitedTS = waitedTS + value;
+ await expectRevert(lockedFund.changeWaitedTS(newWaitedTS, { from: creator }), "LockedFund: Only admin can call this.");
+ });
+
+ it("Creator should not be able to deposit using depositVested().", async () => {
+ let value = randomValue();
+ token.mint(creator, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: creator });
+ await expectRevert(
+ lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: creator }),
+ "LockedFund: Only admin can call this."
+ );
+ });
+});
diff --git a/tests/LockedFund/event.test.js b/tests/LockedFund/event.test.js
new file mode 100644
index 0000000..a5a8316
--- /dev/null
+++ b/tests/LockedFund/event.test.js
@@ -0,0 +1,246 @@
+const {
+ // External Functions
+ BN,
+ expectEvent,
+ assert,
+ // Custom Functions
+ randomValue,
+ currentTimestamp,
+ createStakeAndVest,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ VestingFactory,
+ VestingRegistry,
+} = require("../utils");
+
+const { zero, zeroAddress, zeroBasisPoint, fiftyBasisPoint, unlockTypeWaited } = require("../constants");
+
+let { cliff, duration, waitedTS } = require("../variable");
+
+contract("LockedFund (Events)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic;
+ let creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive;
+
+ before("Initiating Accounts & Creating Test Token Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 8, "Alteast 8 accounts are required to test the contracts.");
+ [creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive] = accounts;
+
+ waitedTS = await currentTimestamp();
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+ });
+
+ beforeEach("Creating New Locked Fund Contract Instance.", async () => {
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [admin], { from: creator });
+
+ // Adding lockedFund as an admin in the Vesting Registry.
+ await vestingRegistry.addAdmin(lockedFund.address, { from: creator });
+ });
+
+ it("Adding another admin should emit AdminAdded.", async () => {
+ let txReceipt = await lockedFund.addAdmin(newAdmin, { from: admin });
+ expectEvent(txReceipt, "AdminAdded", {
+ _initiator: admin,
+ _newAdmin: newAdmin,
+ });
+ });
+
+ it("Removing another admin should emit AdminRemoved.", async () => {
+ await lockedFund.addAdmin(newAdmin, { from: admin });
+ let txReceipt = await lockedFund.removeAdmin(newAdmin, { from: admin });
+ expectEvent(txReceipt, "AdminRemoved", {
+ _initiator: admin,
+ _removedAdmin: newAdmin,
+ });
+ });
+
+ it("Changing the vestingRegistry should emit VestingRegistryUpdated.", async () => {
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ let txReceipt = await lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: admin });
+ expectEvent(txReceipt, "VestingRegistryUpdated", {
+ _initiator: admin,
+ _vestingRegistry: newVestingRegistry.address,
+ });
+ });
+
+ it("Changing the waited timestamp should emit WaitedTSUpdated.", async () => {
+ let value = randomValue();
+ let newWaitedTS = waitedTS + value;
+ let txReceipt = await lockedFund.changeWaitedTS(newWaitedTS, { from: admin });
+ expectEvent(txReceipt, "WaitedTSUpdated", {
+ _initiator: admin,
+ _waitedTS: new BN(newWaitedTS),
+ });
+ });
+
+ it("Depositing using depositVested() should emit VestedDeposited.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ let txReceipt = await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ expectEvent(txReceipt, "VestedDeposited", {
+ _initiator: admin,
+ _userAddress: userOne,
+ _amount: new BN(value),
+ _cliff: new BN(cliff),
+ _duration: new BN(duration),
+ _basisPoint: new BN(zeroBasisPoint),
+ });
+ });
+
+ it("Withdrawing waited unlocked balance using withdrawWaitedUnlockedBalance() should emit Withdrawn.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ let txReceipt = await lockedFund.withdrawWaitedUnlockedBalance(zeroAddress, { from: userOne });
+ expectEvent(txReceipt, "Withdrawn", {
+ _initiator: userOne,
+ _userAddress: userOne,
+ _amount: new BN(Math.floor(value / 2)),
+ });
+ });
+
+ it("Withdrawing waited unlocked balance to another wallet using withdrawWaitedUnlockedBalance() should emit Withdrawn.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ let txReceipt = await lockedFund.withdrawWaitedUnlockedBalance(userTwo, { from: userOne });
+ expectEvent(txReceipt, "Withdrawn", {
+ _initiator: userOne,
+ _userAddress: userTwo,
+ _amount: new BN(Math.floor(value / 2)),
+ });
+ });
+
+ it("Creating vesting and staking vested balance using createVestingAndStake() should emit VestingCreated and TokenStaked.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ let txReceipt = await lockedFund.createVestingAndStake({ from: userOne });
+ let vestingAddress = await vestingRegistry.getVesting(userOne);
+ expectEvent(txReceipt, "VestingCreated", {
+ _initiator: userOne,
+ _userAddress: userOne,
+ _vesting: vestingAddress,
+ });
+ expectEvent(txReceipt, "TokenStaked", {
+ _initiator: userOne,
+ _vesting: vestingAddress,
+ _amount: new BN(value),
+ });
+ });
+
+ it("Creating vesting using createVesting() should emit VestingCreated.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ let txReceipt = await lockedFund.createVesting({ from: userOne });
+ let vestingAddress = await vestingRegistry.getVesting(userOne);
+ expectEvent(txReceipt, "VestingCreated", {
+ _initiator: userOne,
+ _userAddress: userOne,
+ _vesting: vestingAddress,
+ });
+ });
+
+ it("Staking vested balance using stakeTokens() should emit TokenStaked.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ let vestingAddress = await vestingRegistry.getVesting(userOne);
+ let txReceipt = await lockedFund.stakeTokens({ from: userOne });
+ expectEvent(txReceipt, "TokenStaked", {
+ _initiator: userOne,
+ _vesting: vestingAddress,
+ _amount: new BN(value),
+ });
+ });
+
+ it("Wthdrawing waited unlocked balance, creating vesting and staking vested balance using withdrawAndStakeTokens() should emit Withdrawn, VestingCreated and TokenStaked.", async () => {
+ vestingFactory = await VestingFactory.new(vestingLogic.address);
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ vestingFactory.transferOwnership(newVestingRegistry.address);
+ await newVestingRegistry.addAdmin(lockedFund.address);
+ await lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: admin });
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ let txReceipt = await lockedFund.withdrawAndStakeTokens(zeroAddress, { from: userOne });
+ expectEvent(txReceipt, "Withdrawn", {
+ _initiator: userOne,
+ _userAddress: userOne,
+ _amount: new BN(Math.floor(value / 2)),
+ });
+ let vestingAddress = await newVestingRegistry.getVesting(userOne);
+ expectEvent(txReceipt, "VestingCreated", {
+ _initiator: userOne,
+ _userAddress: userOne,
+ _vesting: vestingAddress,
+ });
+ expectEvent(txReceipt, "TokenStaked", {
+ _initiator: userOne,
+ _vesting: vestingAddress,
+ _amount: new BN(Math.ceil(value / 2)),
+ });
+ });
+
+ it("Withdrawing waited unlocked balance to any wallet, creating vesting and staking vested balance using withdrawAndStakeTokens() should emit Withdrawn, VestingCreated and TokenStaked.", async () => {
+ vestingFactory = await VestingFactory.new(vestingLogic.address);
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ vestingFactory.transferOwnership(newVestingRegistry.address);
+ await newVestingRegistry.addAdmin(lockedFund.address);
+ await lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: admin });
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ let txReceipt = await lockedFund.withdrawAndStakeTokens(userTwo, { from: userOne });
+ expectEvent(txReceipt, "Withdrawn", {
+ _initiator: userOne,
+ _userAddress: userTwo,
+ _amount: new BN(Math.floor(value / 2)),
+ });
+ let vestingAddress = await newVestingRegistry.getVesting(userOne);
+ expectEvent(txReceipt, "VestingCreated", {
+ _initiator: userOne,
+ _userAddress: userOne,
+ _vesting: vestingAddress,
+ });
+ expectEvent(txReceipt, "TokenStaked", {
+ _initiator: userOne,
+ _vesting: vestingAddress,
+ _amount: new BN(Math.ceil(value / 2)),
+ });
+ });
+});
diff --git a/tests/LockedFund/state.test.js b/tests/LockedFund/state.test.js
new file mode 100644
index 0000000..d9b1d0a
--- /dev/null
+++ b/tests/LockedFund/state.test.js
@@ -0,0 +1,584 @@
+const {
+ // External Functions
+ assert,
+ // Custom Functions
+ randomValue,
+ currentTimestamp,
+ createStakeAndVest,
+ checkStatus,
+ getTokenBalances,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ VestingFactory,
+ VestingRegistry,
+} = require("../utils");
+
+const {
+ zero,
+ zeroAddress,
+ fourWeeks,
+ zeroBasisPoint,
+ fiftyBasisPoint,
+ unlockTypeNone,
+ unlockTypeImmediate,
+ unlockTypeWaited,
+} = require("../constants");
+
+let { cliff, duration, waitedTS } = require("../variable");
+
+contract("LockedFund (State Change)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic;
+ let creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive;
+
+ before("Initiating Accounts & Creating Test Token Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 8, "Alteast 8 accounts are required to test the contracts.");
+ [creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive] = accounts;
+
+ waitedTS = await currentTimestamp();
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+ });
+
+ beforeEach("Creating New Locked Fund Contract Instance.", async () => {
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [admin], { from: creator });
+
+ // Adding lockedFund as an admin in the Vesting Registry.
+ await vestingRegistry.addAdmin(lockedFund.address, { from: creator });
+ });
+
+ it("Admin should be able to add another admin.", async () => {
+ await lockedFund.addAdmin(newAdmin, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 0, 0, 1, 1, 1, 1, 1, 1],
+ newAdmin,
+ waitedTS,
+ token.address,
+ zero,
+ zero,
+ vestingRegistry.address,
+ zero,
+ zero,
+ zero,
+ zero,
+ true
+ );
+ });
+
+ it("Admin should be able to remove an admin.", async () => {
+ await lockedFund.addAdmin(newAdmin, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 0, 0, 1, 1, 1, 1, 1, 1],
+ newAdmin,
+ waitedTS,
+ token.address,
+ zero,
+ zero,
+ vestingRegistry.address,
+ zero,
+ zero,
+ zero,
+ zero,
+ true
+ );
+ await lockedFund.removeAdmin(newAdmin, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 0, 0, 1, 1, 1, 1, 1, 1],
+ newAdmin,
+ waitedTS,
+ token.address,
+ zero,
+ zero,
+ vestingRegistry.address,
+ zero,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ });
+
+ it("Admin should be able to change the vestingRegistry.", async () => {
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ await lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 0, 0, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ zero,
+ zero,
+ newVestingRegistry.address,
+ zero,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ });
+
+ it("Admin should be able to change the waited timestamp.", async () => {
+ let value = randomValue();
+ let newWaitedTS = waitedTS + value;
+ await lockedFund.changeWaitedTS(newWaitedTS, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 0, 0, 1, 1, 1, 1, 1, 1],
+ userOne,
+ newWaitedTS,
+ token.address,
+ zero,
+ zero,
+ vestingRegistry.address,
+ zero,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ });
+
+ it("Admin should be able to deposit using depositVested() and unlock as waited.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ Math.ceil(value / 2),
+ zero,
+ Math.floor(value / 2),
+ zero,
+ false
+ );
+ });
+
+ it("Admin should be able to deposit using depositVested() and unlock as immediate.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeImmediate, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ Math.ceil(value / 2),
+ zero,
+ zero,
+ Math.floor(value / 2),
+ false
+ );
+ });
+
+ it("Admin should be able to deposit using depositVested() and unlock as none.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeNone, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ value,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ });
+
+ it("Admin should be able to deposit using depositLocked().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositLocked(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ // TODO: Check status
+ });
+
+ it("Admin should be able to deposit using depositWaitedUnlocked() with non zero basis point.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositWaitedUnlocked(userOne, value, fiftyBasisPoint, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ zero,
+ zero,
+ vestingRegistry.address,
+ zero,
+ zero,
+ Math.ceil(value / 2),
+ Math.floor(value / 2),
+ false
+ );
+ });
+
+ it("Admin should be able to deposit using depositWaitedUnlocked() with zero basis point.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositWaitedUnlocked(userOne, value, zeroBasisPoint, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ zero,
+ zero,
+ vestingRegistry.address,
+ zero,
+ zero,
+ value,
+ zero,
+ false
+ );
+ });
+
+ it("User should be able to withdraw waited unlocked balance using withdrawWaitedUnlockedBalance().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ Math.ceil(value / 2),
+ zero,
+ Math.floor(value / 2),
+ zero,
+ false
+ );
+ let oldBalances = await getTokenBalances(userOne, token, lockedFund);
+ await lockedFund.withdrawWaitedUnlockedBalance(zeroAddress, { from: userOne });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ Math.ceil(value / 2),
+ zero,
+ zero,
+ zero,
+ false
+ );
+ let newBalances = await getTokenBalances(userOne, token, lockedFund);
+ assert.strictEqual(newBalances[0].toNumber(), oldBalances[0].toNumber() + Math.floor(value / 2), "Token Balance not matching.");
+ });
+
+ it("User should be able to withdraw waited unlocked balance to any wallet using withdrawWaitedUnlockedBalance().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ Math.ceil(value / 2),
+ zero,
+ Math.floor(value / 2),
+ zero,
+ false
+ );
+ let oldBalances = await getTokenBalances(userTwo, token, lockedFund);
+ await lockedFund.withdrawWaitedUnlockedBalance(userTwo, { from: userOne });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ Math.ceil(value / 2),
+ zero,
+ zero,
+ zero,
+ false
+ );
+ let newBalances = await getTokenBalances(userTwo, token, lockedFund);
+ assert.strictEqual(newBalances[0].toNumber(), oldBalances[0].toNumber() + Math.floor(value / 2), "Token Balance not matching.");
+ });
+
+ it("User should be able to create vesting and stake vested balance using createVestingAndStake().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ value,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ await lockedFund.createVestingAndStake({ from: userOne });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ zero,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ });
+
+ it("User should be able to create vesting using createVesting().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ value,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ await lockedFund.createVesting({ from: userOne });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ value,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ });
+
+ it("User should be able to stake vested balance using stakeTokens().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ value,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ await lockedFund.stakeTokens({ from: userOne });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ vestingRegistry.address,
+ zero,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ });
+
+ it("User should be able to withdraw waited unlocked balance, create vesting and stake vested balance using withdrawAndStakeTokens().", async () => {
+ vestingFactory = await VestingFactory.new(vestingLogic.address);
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ vestingFactory.transferOwnership(newVestingRegistry.address);
+ await newVestingRegistry.addAdmin(lockedFund.address);
+ await lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: admin });
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ newVestingRegistry.address,
+ Math.ceil(value / 2),
+ zero,
+ Math.floor(value / 2),
+ zero,
+ false
+ );
+ let oldBalances = await getTokenBalances(userOne, token, lockedFund);
+ await lockedFund.withdrawAndStakeTokens(zeroAddress, { from: userOne });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ newVestingRegistry.address,
+ zero,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ let newBalances = await getTokenBalances(userOne, token, lockedFund);
+ assert.strictEqual(newBalances[0].toNumber(), oldBalances[0].toNumber() + Math.floor(value / 2), "Token Balance not matching.");
+ });
+
+ it("User should be able to withdraw waited unlocked balance to any wallet, create vesting and stake vested balance using withdrawAndStakeTokens().", async () => {
+ vestingFactory = await VestingFactory.new(vestingLogic.address);
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ vestingFactory.transferOwnership(newVestingRegistry.address);
+ await newVestingRegistry.addAdmin(lockedFund.address);
+ await lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: admin });
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ newVestingRegistry.address,
+ Math.ceil(value / 2),
+ zero,
+ Math.floor(value / 2),
+ zero,
+ false
+ );
+ let oldBalances = await getTokenBalances(userTwo, token, lockedFund);
+ await lockedFund.withdrawAndStakeTokens(userTwo, { from: userOne });
+ await checkStatus(
+ lockedFund,
+ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
+ userOne,
+ waitedTS,
+ token.address,
+ cliff,
+ duration,
+ newVestingRegistry.address,
+ zero,
+ zero,
+ zero,
+ zero,
+ false
+ );
+ let newBalances = await getTokenBalances(userTwo, token, lockedFund);
+ assert.strictEqual(newBalances[0].toNumber(), oldBalances[0].toNumber() + Math.floor(value / 2), "Token Balance not matching.");
+ });
+
+ it("Admin should be able to get the cliff and duration of a user.", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ let detail = await lockedFund.getCliffAndDuration(userOne, { from: admin });
+ assert.equal(detail[0].toNumber() / fourWeeks, cliff, "Cliff does not match.");
+ assert.equal(detail[1].toNumber() / fourWeeks, duration, "Duration does not match.");
+ });
+});
diff --git a/tests/LockedFund/user.test.js b/tests/LockedFund/user.test.js
new file mode 100644
index 0000000..248acd7
--- /dev/null
+++ b/tests/LockedFund/user.test.js
@@ -0,0 +1,171 @@
+const {
+ // External Functions
+ expectRevert,
+ assert,
+ // Custom Functions
+ randomValue,
+ currentTimestamp,
+ createStakeAndVest,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ VestingRegistry,
+} = require("../utils");
+
+const { zero, zeroAddress, zeroBasisPoint, fiftyBasisPoint, unlockTypeWaited } = require("../constants");
+
+let { cliff, duration, waitedTS } = require("../variable");
+
+contract("LockedFund (User Functions)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic;
+ let creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive;
+
+ before("Initiating Accounts & Creating Test Token Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 8, "Alteast 8 accounts are required to test the contracts.");
+ [creator, admin, newAdmin, userOne, userTwo, userThree, userFour, userFive] = accounts;
+
+ waitedTS = await currentTimestamp();
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+ });
+
+ beforeEach("Creating New Locked Fund Contract Instance.", async () => {
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [admin], { from: creator });
+
+ // Adding lockedFund as an admin in the Vesting Registry.
+ await vestingRegistry.addAdmin(lockedFund.address, { from: creator });
+ });
+
+ it("User should not be able to add another admin.", async () => {
+ await expectRevert(lockedFund.addAdmin(newAdmin, { from: userOne }), "LockedFund: Only admin can call this.");
+ });
+
+ it("User should not be able to remove an admin.", async () => {
+ await expectRevert(lockedFund.removeAdmin(newAdmin, { from: userOne }), "LockedFund: Only admin can call this.");
+ });
+
+ it("User should not be able to change the vestingRegistry.", async () => {
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ await expectRevert(
+ lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: userOne }),
+ "LockedFund: Only admin can call this."
+ );
+ });
+
+ it("User should not be able to change the waited timestamp.", async () => {
+ let value = randomValue();
+ let newWaitedTS = waitedTS + value;
+ await expectRevert(lockedFund.changeWaitedTS(newWaitedTS, { from: userOne }), "LockedFund: Only admin can call this.");
+ });
+
+ it("User should not be able to deposit using depositVested().", async () => {
+ let value = randomValue();
+ token.mint(userOne, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: userOne });
+ await expectRevert(
+ lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: userOne }),
+ "LockedFund: Only admin can call this."
+ );
+ });
+
+ it("User should be able to withdraw waited unlocked balance using withdrawWaitedUnlockedBalance().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ await lockedFund.withdrawWaitedUnlockedBalance(zeroAddress, { from: userOne });
+ });
+
+ it("User should be able to withdraw waited unlocked balance to any wallet using withdrawWaitedUnlockedBalance().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ await lockedFund.withdrawWaitedUnlockedBalance(userTwo, { from: userOne });
+ });
+
+ it("User should not be able to withdraw waited unlocked balance before waitedTimestamp using withdrawWaitedUnlockedBalance().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ let timestamp = await currentTimestamp();
+ await lockedFund.changeWaitedTS(timestamp + 10000, { from: admin });
+ await expectRevert(
+ lockedFund.withdrawWaitedUnlockedBalance(zeroAddress, { from: userOne }),
+ "LockedFund: Wait Timestamp not yet passed."
+ );
+ });
+
+ it("User should be able to create vesting and stake vested balance using createVestingAndStake().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ await lockedFund.createVestingAndStake({ from: userOne });
+ });
+
+ it("User should be able to create vesting using createVesting().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ await lockedFund.createVesting({ from: userOne });
+ });
+
+ it("User should be able to stake vested balance using stakeTokens().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ await lockedFund.stakeTokens({ from: userOne });
+ });
+
+ it("User should not be able to stake vested balance using stakeTokens() if vesting is not created previously.", async () => {
+ let newVestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator // This should be Governance Timelock Contract.
+ );
+ await lockedFund.changeVestingRegistry(newVestingRegistry.address, { from: admin });
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, zeroBasisPoint, unlockTypeWaited, { from: admin });
+ await expectRevert(lockedFund.stakeTokens({ from: userOne }), "function call to a non-contract account");
+ });
+
+ it("User should be able to withdraw waited unlocked balance, create vesting and stake vested balance using withdrawAndStakeTokens().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ await lockedFund.withdrawAndStakeTokens(zeroAddress, { from: userOne });
+ });
+
+ it("User should be able to withdraw waited unlocked balance to any wallet, create vesting and stake vested balance using withdrawAndStakeTokens().", async () => {
+ let value = randomValue();
+ token.mint(admin, value, { from: creator });
+ token.approve(lockedFund.address, value, { from: admin });
+ await lockedFund.depositVested(userOne, value, cliff, duration, fiftyBasisPoint, unlockTypeWaited, { from: admin });
+ await lockedFund.withdrawAndStakeTokens(userTwo, { from: userOne });
+ });
+
+ it("User should not be able to create vesting and stake vested balance using createVestingAndStake() if cliff and duration is not set.", async () => {
+ await expectRevert(lockedFund.createVestingAndStake({ from: userTwo }), "LockedFund: Cliff and/or Duration not set.");
+ });
+});
diff --git a/tests/OriginsAdmin/creator.test.js b/tests/OriginsAdmin/creator.test.js
new file mode 100644
index 0000000..daf584c
--- /dev/null
+++ b/tests/OriginsAdmin/creator.test.js
@@ -0,0 +1,42 @@
+const {
+ // External Functions
+ expectRevert,
+ assert,
+ // Contract Artifacts
+ OriginsAdmin,
+} = require("../utils");
+
+contract("OriginsAdmin (Owner Functions)", (accounts) => {
+ let originsAdmin;
+ let creator, ownerOne, ownerTwo, ownerThree;
+ let verifierOne, verifierTwo, verifierThree, userOne;
+
+ before("Initiating Accounts & Creating Contract Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 8, "Alteast 8 accounts are required to test the contracts.");
+ [creator, ownerOne, ownerTwo, ownerThree, verifierOne, verifierTwo, verifierThree, userOne] = accounts;
+
+ // Creating the instance of OriginsAdmin Contract.
+ originsAdmin = await OriginsAdmin.new([ownerOne], { from: creator });
+ });
+
+ it("Creator should not be able to create an instance with same owner address twice.", async () => {
+ await expectRevert(OriginsAdmin.new([ownerOne, ownerOne], { from: creator }), "OriginsAdmin: Each owner can be added only once.");
+ });
+
+ it("Creator should not be able to add another owner.", async () => {
+ await expectRevert(originsAdmin.addOwner(ownerTwo, { from: creator }), "OriginsAdmin: Only owner can call this function.");
+ });
+
+ it("Creator should not be able to remove an owner.", async () => {
+ await expectRevert(originsAdmin.removeOwner(ownerTwo, { from: creator }), "OriginsAdmin: Only owner can call this function.");
+ });
+
+ it("Creator should not be able to add a verifier.", async () => {
+ await expectRevert(originsAdmin.addVerifier(verifierOne, { from: creator }), "OriginsAdmin: Only owner can call this function.");
+ });
+
+ it("Creator should not be able to remove a verifier.", async () => {
+ await expectRevert(originsAdmin.removeVerifier(verifierOne, { from: creator }), "OriginsAdmin: Only owner can call this function.");
+ });
+});
diff --git a/tests/OriginsAdmin/event.test.js b/tests/OriginsAdmin/event.test.js
new file mode 100644
index 0000000..679b020
--- /dev/null
+++ b/tests/OriginsAdmin/event.test.js
@@ -0,0 +1,54 @@
+const {
+ // External Functions
+ expectEvent,
+ assert,
+ // Contract Artifacts
+ OriginsAdmin,
+} = require("../utils");
+
+contract("OriginsAdmin (Owner Functions)", (accounts) => {
+ let originsAdmin;
+ let creator, ownerOne, ownerTwo, ownerThree;
+ let verifierOne, verifierTwo, verifierThree, userOne;
+
+ before("Initiating Accounts & Creating Contract Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 8, "Alteast 8 accounts are required to test the contracts.");
+ [creator, ownerOne, ownerTwo, ownerThree, verifierOne, verifierTwo, verifierThree, userOne] = accounts;
+
+ // Creating the instance of OriginsAdmin Contract.
+ originsAdmin = await OriginsAdmin.new([ownerOne], { from: creator });
+ });
+
+ it("Adding another owner should emit OwnerAdded.", async () => {
+ let txReceipt = await originsAdmin.addOwner(ownerTwo, { from: ownerOne });
+ expectEvent(txReceipt, "OwnerAdded", {
+ _initiator: ownerOne,
+ _newOwner: ownerTwo,
+ });
+ });
+
+ it("Remove an owner should emit OwnerRemoved.", async () => {
+ let txReceipt = await originsAdmin.removeOwner(ownerTwo, { from: ownerOne });
+ expectEvent(txReceipt, "OwnerRemoved", {
+ _initiator: ownerOne,
+ _removedOwner: ownerTwo,
+ });
+ });
+
+ it("Adding a verifier should emit VerifierAdded.", async () => {
+ let txReceipt = await originsAdmin.addVerifier(verifierOne, { from: ownerOne });
+ expectEvent(txReceipt, "VerifierAdded", {
+ _initiator: ownerOne,
+ _newVerifier: verifierOne,
+ });
+ });
+
+ it("Removing a verifier should emit VerifierRemoved.", async () => {
+ let txReceipt = await originsAdmin.removeVerifier(verifierOne, { from: ownerOne });
+ expectEvent(txReceipt, "VerifierRemoved", {
+ _initiator: ownerOne,
+ _removedVerifier: verifierOne,
+ });
+ });
+});
diff --git a/tests/OriginsAdmin/owner.test.js b/tests/OriginsAdmin/owner.test.js
new file mode 100644
index 0000000..d8167e7
--- /dev/null
+++ b/tests/OriginsAdmin/owner.test.js
@@ -0,0 +1,64 @@
+const {
+ // External Functions
+ expectRevert,
+ assert,
+ // Contract Artifacts
+ OriginsAdmin,
+} = require("../utils");
+
+const { zeroAddress } = require("../constants");
+
+contract("OriginsAdmin (Owner Functions)", (accounts) => {
+ let originsAdmin;
+ let creator, ownerOne, ownerTwo, ownerThree;
+ let verifierOne, verifierTwo, verifierThree, userOne;
+
+ before("Initiating Accounts & Creating Contract Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 8, "Alteast 8 accounts are required to test the contracts.");
+ [creator, ownerOne, ownerTwo, ownerThree, verifierOne, verifierTwo, verifierThree, userOne] = accounts;
+
+ // Creating the instance of OriginsAdmin Contract.
+ originsAdmin = await OriginsAdmin.new([ownerOne], { from: creator });
+ });
+
+ it("Owner should be able to add another owner.", async () => {
+ await originsAdmin.addOwner(ownerTwo, { from: ownerOne });
+ });
+
+ it("Owner should not be able to add zero address as another owner.", async () => {
+ await expectRevert(originsAdmin.addOwner(zeroAddress, { from: ownerOne }), "OriginsAdmin: Invalid Address.");
+ });
+
+ it("Owner should not be able to add another owner more than once.", async () => {
+ await expectRevert(originsAdmin.addOwner(ownerTwo, { from: ownerOne }), "OriginsAdmin: Address is already an owner.");
+ });
+
+ it("Owner should be able to remove an owner.", async () => {
+ await originsAdmin.removeOwner(ownerTwo, { from: ownerOne });
+ });
+
+ it("Owner should not be able to call removeOwner() with a normal user address.", async () => {
+ await expectRevert(originsAdmin.removeOwner(userOne, { from: ownerOne }), "OriginsAdmin: Address is not an owner.");
+ });
+
+ it("Owner should be able to add a verifier.", async () => {
+ await originsAdmin.addVerifier(verifierOne, { from: ownerOne });
+ });
+
+ it("Owner should not be able to add zero address as a verifier.", async () => {
+ await expectRevert(originsAdmin.addVerifier(zeroAddress, { from: ownerOne }), "OriginsAdmin: Invalid Address.");
+ });
+
+ it("Owner should not be able to add another verifier more than once.", async () => {
+ await expectRevert(originsAdmin.addVerifier(verifierOne, { from: ownerOne }), "OriginsAdmin: Address is already a verifier.");
+ });
+
+ it("Owner should be able to remove a verifier.", async () => {
+ await originsAdmin.removeVerifier(verifierOne, { from: ownerOne });
+ });
+
+ it("Owner should not be able to call removeVerifier() with a normal user address.", async () => {
+ await expectRevert(originsAdmin.removeVerifier(userOne, { from: ownerOne }), "OriginsAdmin: Address is not a verifier.");
+ });
+});
diff --git a/tests/OriginsAdmin/state.test.js b/tests/OriginsAdmin/state.test.js
new file mode 100644
index 0000000..ea2a8e1
--- /dev/null
+++ b/tests/OriginsAdmin/state.test.js
@@ -0,0 +1,56 @@
+const {
+ // External Functions
+ assert,
+ // Contract Artifacts
+ OriginsAdmin,
+} = require("../utils");
+
+contract("OriginsAdmin (Owner Functions)", (accounts) => {
+ let originsAdmin;
+ let creator, ownerOne, ownerTwo, ownerThree;
+ let verifierOne, verifierTwo, verifierThree, userOne;
+
+ before("Initiating Accounts & Creating Contract Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 8, "Alteast 8 accounts are required to test the contracts.");
+ [creator, ownerOne, ownerTwo, ownerThree, verifierOne, verifierTwo, verifierThree, userOne] = accounts;
+
+ // Creating the instance of OriginsAdmin Contract.
+ originsAdmin = await OriginsAdmin.new([ownerOne], { from: creator });
+ });
+
+ it("Owner should be able to add another owner.", async () => {
+ await originsAdmin.addOwner(ownerTwo, { from: ownerOne });
+ let isAdmin = await originsAdmin.checkOwner(ownerTwo);
+ assert.strictEqual(isAdmin, true, "Owner status not udpated correctly.");
+ });
+
+ it("Owner should be able to remove an owner.", async () => {
+ await originsAdmin.removeOwner(ownerTwo, { from: ownerOne });
+ let isAdmin = await originsAdmin.checkOwner(ownerTwo);
+ assert.strictEqual(isAdmin, false, "Owner status not udpated correctly.");
+ });
+
+ it("Owner should be able to add a verifier.", async () => {
+ await originsAdmin.addVerifier(verifierOne, { from: ownerOne });
+ let isVerifier = await originsAdmin.checkVerifier(verifierOne);
+ assert.strictEqual(isVerifier, true, "Verifier status not udpated correctly.");
+ });
+
+ it("Owner should be able to remove a verifier.", async () => {
+ await originsAdmin.removeVerifier(verifierOne, { from: ownerOne });
+ let isVerifier = await originsAdmin.checkVerifier(verifierOne);
+ assert.strictEqual(isVerifier, false, "Verifier status not udpated correctly.");
+ });
+
+ it("Owner should be able to get owner list.", async () => {
+ let owners = await originsAdmin.getOwners({ from: ownerOne });
+ assert.strictEqual(owners[0], ownerOne, "Owner address incorrect.");
+ });
+
+ it("Owner should be able to get verifier list.", async () => {
+ await originsAdmin.addVerifier(verifierOne, { from: ownerOne });
+ let verifiers = await originsAdmin.getVerifiers({ from: ownerOne });
+ assert.strictEqual(verifiers[0], verifierOne, "Verifier address incorrect.");
+ });
+});
diff --git a/tests/OriginsBase/creator.test.js b/tests/OriginsBase/creator.test.js
new file mode 100644
index 0000000..e7908d9
--- /dev/null
+++ b/tests/OriginsBase/creator.test.js
@@ -0,0 +1,225 @@
+const {
+ // External Functions
+ expectRevert,
+ assert,
+ // Custom Functions
+ currentTimestamp,
+ createStakeAndVest,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ OriginsBase,
+} = require("../utils");
+
+const { zero, zeroAddress } = require("../constants");
+
+let {
+ waitedTS,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ secondMinAmount,
+ secondMaxAmount,
+ secondRemainingTokens,
+ secondSaleStartTS,
+ secondSaleEnd,
+ secondUnlockedBP,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ secondDepositRate,
+ secondDepositToken,
+ secondDepositType,
+ secondSaleEndDurationOrTS,
+ secondTransferType,
+} = require("../variable");
+
+contract("OriginsBase (Creator Functions)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic, originsBase;
+ let creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr;
+ let tierCount;
+
+ before("Initiating Accounts & Creating Test Contract Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 9, "Alteast 9 accounts are required to test the contracts.");
+ [creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr] = accounts;
+
+ let timestamp = await currentTimestamp();
+ waitedTS = timestamp;
+ firstSaleStartTS = timestamp;
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [owner], { from: creator });
+
+ // Creating the instance of OriginsBase Contract.
+ originsBase = await OriginsBase.new([owner], token.address, depositAddr, { from: creator });
+
+ // Setting lockedFund in Origins.
+ await originsBase.setLockedFund(lockedFund.address, { from: owner });
+
+ // Added Origins as an admin of LockedFund.
+ await lockedFund.addAdmin(originsBase.address, { from: owner });
+
+ // Setting Verifier in Origins.
+ await originsBase.addVerifier(verifier, { from: owner });
+
+ // Minting new tokens, Approving Origins and creating a new tier.
+ await token.mint(owner, firstRemainingTokens, { from: creator });
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ });
+
+ beforeEach("Updating the timestamp.", async () => {
+ let timestamp = await currentTimestamp();
+ firstSaleStartTS = timestamp;
+ secondSaleStartTS = timestamp;
+ });
+
+ it("Creator should not be able to create a originsBase with invalid token address.", async () => {
+ await expectRevert(
+ OriginsBase.new([owner], zeroAddress, depositAddr, { from: creator }),
+ "OriginsBase: Token Address cannot be zero."
+ );
+ });
+
+ it("Creator should not be able to set deposit address.", async () => {
+ await expectRevert(
+ originsBase.setDepositAddress(newDepositAddr, { from: creator }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Creator should not be able to set Locked Fund Contract.", async () => {
+ let newLockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [owner]);
+ await expectRevert(
+ originsBase.setLockedFund(newLockedFund.address, { from: creator }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Creator should not be able to add a new tier.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: creator });
+ await expectRevert(
+ originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: creator }
+ ),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Creator should not be able to set Tier Deposit Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierDeposit(tierCount, secondDepositRate, secondDepositToken, secondDepositType, { from: creator }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Creator should not be able to set Tier Token Limit Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierTokenLimit(tierCount, secondMinAmount, secondMaxAmount, { from: creator }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Creator should not be able to set Tier Token Amount Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierTokenAmount(tierCount, secondRemainingTokens, { from: creator }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Creator should not be able to set Tier Vest or Lock Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierVestOrLock(
+ tierCount,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ secondUnlockedBP,
+ secondTransferType,
+ { from: creator }
+ ),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Creator should not be able to set Tier Time Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierTime(tierCount, secondSaleStartTS, secondSaleEnd, secondSaleEndDurationOrTS, { from: creator }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Creator should not be able to verify a single address to a single tier.", async () => {
+ await expectRevert(
+ originsBase.addressVerification(userOne, tierCount, { from: creator }),
+ "OriginsAdmin: Only verifier can call this function."
+ );
+ });
+
+ it("Creator should not be able to verify a single address to a multiple tier.", async () => {
+ tierCount = 3;
+ await expectRevert(
+ originsBase.singleAddressMultipleTierVerification(userOne, [tierCount, tierCount - 1, tierCount - 2], { from: creator }),
+ "OriginsAdmin: Only verifier can call this function."
+ );
+ });
+
+ it("Creator should not be able to verify a multiple address to a single tier.", async () => {
+ await expectRevert(
+ originsBase.multipleAddressSingleTierVerification([userOne, userTwo, userThree], tierCount, { from: creator }),
+ "OriginsAdmin: Only verifier can call this function."
+ );
+ });
+
+ it("Creator should not be able to verify a multiple address to a multiple tier.", async () => {
+ tierCount = 3;
+ await expectRevert(
+ originsBase.multipleAddressAndTierVerification([userOne, userTwo, userThree], [tierCount, tierCount - 1, tierCount - 2], {
+ from: creator,
+ }),
+ "OriginsAdmin: Only verifier can call this function."
+ );
+ });
+});
diff --git a/tests/OriginsBase/event.test.js b/tests/OriginsBase/event.test.js
new file mode 100644
index 0000000..70b786d
--- /dev/null
+++ b/tests/OriginsBase/event.test.js
@@ -0,0 +1 @@
+// TODO
diff --git a/tests/OriginsBase/owner.test.js b/tests/OriginsBase/owner.test.js
new file mode 100644
index 0000000..a7b285d
--- /dev/null
+++ b/tests/OriginsBase/owner.test.js
@@ -0,0 +1,647 @@
+const {
+ // External Functions
+ expectRevert,
+ time,
+ assert,
+ // Custom Functions
+ currentTimestamp,
+ createStakeAndVest,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ OriginsBase,
+} = require("../utils");
+
+const {
+ zero,
+ zeroAddress,
+ invalidBasisPoint,
+ depositTypeRBTC,
+ depositTypeToken,
+ saleEndDurationOrTSTimestamp,
+ verificationTypeEveryone,
+} = require("../constants");
+
+let {
+ waitedTS,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ secondMinAmount,
+ secondMaxAmount,
+ secondRemainingTokens,
+ secondSaleStartTS,
+ secondSaleEnd,
+ secondUnlockedBP,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ secondDepositRate,
+ secondDepositToken,
+ secondDepositType,
+ secondVerificationType,
+ secondSaleEndDurationOrTS,
+ secondTransferType,
+} = require("../variable");
+
+contract("OriginsBase (Owner Functions)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic, originsBase;
+ let creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr;
+ let tierCount;
+
+ before("Initiating Accounts & Creating Test Contract Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 9, "Alteast 9 accounts are required to test the contracts.");
+ [creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr] = accounts;
+
+ let timestamp = await currentTimestamp();
+ waitedTS = timestamp;
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [owner], { from: creator });
+ });
+
+ beforeEach("Creating New OriginsBase Contract Instance.", async () => {
+ // Creating the instance of OriginsBase Contract.
+ originsBase = await OriginsBase.new([owner], token.address, depositAddr, { from: creator });
+
+ // Setting lockedFund in Origins.
+ await originsBase.setLockedFund(lockedFund.address, { from: owner });
+
+ // Added Origins as an admin of LockedFund.
+ await lockedFund.addAdmin(originsBase.address, { from: owner });
+
+ let timestamp = await currentTimestamp();
+ waitedTS = timestamp;
+ firstSaleStartTS = timestamp;
+ secondSaleStartTS = timestamp;
+ });
+
+ it("Owner should be able to set deposit address.", async () => {
+ await originsBase.setDepositAddress(newDepositAddr, { from: owner });
+ });
+
+ it("Owner should not be able to add zero address as deposit address.", async () => {
+ await expectRevert(originsBase.setDepositAddress(zeroAddress, { from: owner }), "OriginsBase: Deposit Address cannot be zero.");
+ });
+
+ it("Owner should be able to set Locked Fund Contract.", async () => {
+ let newLockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [owner]);
+ await originsBase.setLockedFund(newLockedFund.address, { from: owner });
+ });
+
+ it("Owner should not be able to add zero address as Locked Fund Contract.", async () => {
+ await expectRevert(originsBase.setLockedFund(zeroAddress, { from: owner }), "OriginsBase: Locked Fund Address cannot be zero.");
+ });
+
+ it("Owner should be able to add a new tier.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ });
+
+ it("Owner should be able to set Tier Verification Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await originsBase.setTierVerification(1, secondVerificationType, { from: owner });
+ });
+
+ it("Owner should be able to set Tier Deposit Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await originsBase.setTierDeposit(1, secondDepositRate, secondDepositToken, secondDepositType, { from: owner });
+ });
+
+ it("Owner should not be able to set Tier Deposit Parameters with deposit rate as zero.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await expectRevert(
+ originsBase.setTierDeposit(1, zero, secondDepositToken, secondDepositType, { from: owner }),
+ "OriginsBase: Deposit Rate cannot be zero."
+ );
+ });
+
+ it("Owner should not be able to set Tier Deposit Parameters with deposit token as zero address if deposit type is Token.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await expectRevert(
+ originsBase.setTierDeposit(1, secondDepositRate, zeroAddress, depositTypeToken, { from: owner }),
+ "OriginsBase: Deposit Token Address cannot be zero."
+ );
+ });
+
+ it("Owner should be able to set Tier Deposit Parameters with correct deposit token address if deposit type is Token.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ let newToken = await Token.new(zero, "Test Token", "TST", 18);
+ await originsBase.setTierDeposit(1, secondDepositRate, newToken.address, depositTypeToken, { from: owner });
+ });
+
+ it("Owner should be able to set Tier Deposit Parameters with deposit token as zero address if deposit type is RBTC.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await originsBase.setTierDeposit(1, secondDepositRate, zeroAddress, depositTypeRBTC, { from: owner });
+ });
+
+ it("Owner should be able to set Tier Token Limit Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await originsBase.setTierTokenLimit(1, secondMinAmount, secondMaxAmount, { from: owner });
+ });
+
+ it("Owner should not be able to set Tier Token Limit Parameters with minimum is greater than maximum amount.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await expectRevert(
+ originsBase.setTierTokenLimit(1, secondMaxAmount, secondMinAmount, { from: owner }),
+ "OriginsBase: Min Amount cannot be higher than Max Amount."
+ );
+ });
+
+ it("Owner should be able to set Tier Token Amount Parameters where extra is provided.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await token.mint(owner, secondRemainingTokens);
+ await token.approve(originsBase.address, secondRemainingTokens, { from: owner });
+ await originsBase.setTierTokenAmount(1, secondRemainingTokens, { from: owner });
+ });
+
+ it("Owner should be able to set Tier Token Amount Parameters where extra is returned.", async () => {
+ await token.mint(owner, secondRemainingTokens);
+ await token.approve(originsBase.address, secondRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ secondRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await originsBase.setTierTokenAmount(1, firstRemainingTokens, { from: owner });
+ });
+
+ it("Owner should not be able to set Tier Token Amount Parameters with remaining token as zero.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await expectRevert(
+ originsBase.setTierTokenAmount(1, zero, { from: owner }),
+ "OriginsBase: Total token to sell should be higher than zero."
+ );
+ });
+
+ it("Owner should not be able to set Tier Token Amount Parameters with max allowed is higher than remaining token.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await expectRevert(
+ originsBase.setTierTokenAmount(1, 1, { from: owner }),
+ "OriginsBase: Max Amount to buy should not be higher than token availability."
+ );
+ });
+
+ it("Owner should be able to set Tier Vest or Lock Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await originsBase.setTierVestOrLock(1, secondVestOrLockCliff, secondVestOfLockDuration, secondUnlockedBP, secondTransferType, {
+ from: owner,
+ });
+ });
+
+ it("Owner should not be able to set Tier Vest or Lock Parameters with cliff higher than duration.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await expectRevert(
+ originsBase.setTierVestOrLock(1, secondVestOfLockDuration, secondVestOrLockCliff, secondUnlockedBP, secondTransferType, {
+ from: owner,
+ }),
+ "OriginsBase: Cliff has to be <= duration."
+ );
+ });
+
+ it("Owner should not be able to set Tier Vest or Lock Parameters with cliff higher than duration.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await expectRevert(
+ originsBase.setTierVestOrLock(1, secondVestOrLockCliff, secondVestOfLockDuration, invalidBasisPoint, secondTransferType, {
+ from: owner,
+ }),
+ "OriginsBase: The basis point cannot be higher than 10K."
+ );
+ });
+
+ it("Owner should be able to set Tier Time Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await originsBase.setTierTime(1, secondSaleStartTS, secondSaleEnd, secondSaleEndDurationOrTS, { from: owner });
+ });
+
+ it("Owner should not be able to set Tier Time Parameters with sale start timestamp is higher than sale end timestamp.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await expectRevert(
+ originsBase.setTierTime(1, secondSaleStartTS, secondSaleStartTS, saleEndDurationOrTSTimestamp, { from: owner }),
+ "OriginsBase: The sale start TS cannot be after sale end TS."
+ );
+ });
+
+ it("Owner should not be able to set Tier Time Parameters with sale start timestamp is higher than sale end timestamp.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await expectRevert(
+ originsBase.setTierTime(1, (await currentTimestamp()) - 1000, (await currentTimestamp()) - 100, saleEndDurationOrTSTimestamp, {
+ from: owner,
+ }),
+ "OriginsBase: The sale end duration cannot be past already."
+ );
+ });
+
+ it("Owner should be able to withdraw the sale deposit to deposit address.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 20000;
+ await token.mint(userOne, amount);
+ await token.approve(originsBase.address, amount, { from: userOne });
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ amount = 20000;
+ await token.mint(userTwo, amount);
+ await token.approve(originsBase.address, amount, { from: userTwo });
+ await originsBase.buy(tierCount, zero, { from: userTwo, value: amount });
+ amount = 20000;
+ await token.mint(userThree, amount);
+ await token.approve(originsBase.address, amount, { from: userThree });
+ await originsBase.buy(tierCount, zero, { from: userThree, value: amount });
+ await originsBase.withdrawSaleDeposit({ from: owner });
+ });
+
+ it("Owner should be able to withdraw the sale deposit to own address if deposit address is not set.", async () => {
+ originsBase = await OriginsBase.new([owner], token.address, zeroAddress);
+ await originsBase.setLockedFund(lockedFund.address, { from: owner });
+ await lockedFund.addAdmin(originsBase.address, { from: owner });
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 20000;
+ await token.mint(userOne, amount);
+ await token.approve(originsBase.address, amount, { from: userOne });
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ amount = 20000;
+ await token.mint(userTwo, amount);
+ await token.approve(originsBase.address, amount, { from: userTwo });
+ await originsBase.buy(tierCount, zero, { from: userTwo, value: amount });
+ amount = 20000;
+ await token.mint(userThree, amount);
+ await token.approve(originsBase.address, amount, { from: userThree });
+ await originsBase.buy(tierCount, zero, { from: userThree, value: amount });
+ await originsBase.withdrawSaleDeposit({ from: owner });
+ });
+
+ it("Owner should be able to withdraw the sale deposit and remaining tokens to deposit address.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 20000;
+ await token.mint(userOne, amount);
+ await token.approve(originsBase.address, amount, { from: userOne });
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ await token.mint(userTwo, amount);
+ await token.approve(originsBase.address, amount, { from: userTwo });
+ await originsBase.buy(tierCount, zero, { from: userTwo, value: amount });
+ await time.increase(firstSaleEnd + 100);
+ await originsBase.withdrawSaleDeposit({ from: owner });
+ });
+});
diff --git a/tests/OriginsBase/state.test.js b/tests/OriginsBase/state.test.js
new file mode 100644
index 0000000..fc63213
--- /dev/null
+++ b/tests/OriginsBase/state.test.js
@@ -0,0 +1,613 @@
+const {
+ // External Functions
+ BN,
+ balance,
+ assert,
+ // Custom Functions
+ currentTimestamp,
+ createStakeAndVest,
+ checkTier,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ OriginsBase,
+} = require("../utils");
+
+const { zero, verificationTypeEveryone } = require("../constants");
+
+let {
+ waitedTS,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositToken,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ secondMinAmount,
+ secondMaxAmount,
+ secondRemainingTokens,
+ secondSaleStartTS,
+ secondSaleEnd,
+ secondUnlockedBP,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ secondDepositRate,
+ secondDepositToken,
+ secondDepositType,
+ secondVerificationType,
+ secondSaleEndDurationOrTS,
+ secondTransferType,
+} = require("../variable");
+
+contract("OriginsBase (State Functions)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic, originsBase;
+ let creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr;
+ let tierCount;
+
+ before("Initiating Accounts & Creating Test Contract Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 9, "Alteast 9 accounts are required to test the contracts.");
+ [creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr] = accounts;
+
+ let timestamp = await currentTimestamp();
+ waitedTS = timestamp;
+ firstSaleStartTS = timestamp;
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [owner], { from: creator });
+
+ // Creating the instance of OriginsBase Contract.
+ originsBase = await OriginsBase.new([owner], token.address, depositAddr, { from: creator });
+
+ // Setting lockedFund in Origins.
+ await originsBase.setLockedFund(lockedFund.address, { from: owner });
+
+ // Added Origins as an admin of LockedFund.
+ await lockedFund.addAdmin(originsBase.address, { from: owner });
+
+ // Setting Verifier in Origins.
+ await originsBase.addVerifier(verifier, { from: owner });
+
+ // Minting new tokens, Approving Origins and creating a new tier.
+ await token.mint(owner, firstRemainingTokens, { from: creator });
+
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+
+ await originsBase.addressVerification(userOne, tierCount, { from: verifier });
+ });
+
+ beforeEach("Updating the timestamp.", async () => {
+ let timestamp = await currentTimestamp();
+ firstSaleStartTS = timestamp;
+ secondSaleStartTS = timestamp;
+ });
+
+ it("Setting a deposit address should update the state.", async () => {
+ await originsBase.setDepositAddress(newDepositAddr, { from: owner });
+ let cDepositAddr = await originsBase.getDepositAddress();
+ assert.strictEqual(cDepositAddr, newDepositAddr, "Deposit Address is not correctly set.");
+
+ // Resetting it for other tests.
+ await originsBase.setDepositAddress(depositAddr, { from: owner });
+ });
+
+ it("Setting Locked Fund Contract should update the state.", async () => {
+ let newLockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [owner]);
+ await originsBase.setLockedFund(newLockedFund.address, { from: owner });
+ let cLockedFund = await originsBase.getLockDetails();
+ assert.strictEqual(cLockedFund, newLockedFund.address, "Locked Fund Contract is not correctly set.");
+
+ // Resetting it for other tests.
+ await originsBase.setLockedFund(lockedFund.address, { from: owner });
+ });
+
+ it("Adding a new tier should update the state correctly.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await checkTier(
+ originsBase,
+ tierCount,
+ zero,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositToken,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType
+ );
+ });
+
+ it("Owner should be able to set Tier Verification Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.setTierVerification(tierCount, secondVerificationType, { from: owner });
+ await checkTier(
+ originsBase,
+ tierCount,
+ zero,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositToken,
+ firstDepositType,
+ secondVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType
+ );
+ });
+
+ it("Owner should be able to set Tier Deposit Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.setTierDeposit(tierCount, secondDepositRate, secondDepositToken, secondDepositType, { from: owner });
+ await checkTier(
+ originsBase,
+ tierCount,
+ zero,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ secondDepositRate,
+ secondDepositToken,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType
+ );
+ });
+
+ it("Owner should be able to set Tier Token Limit Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.setTierTokenLimit(tierCount, secondMinAmount, secondMaxAmount, { from: owner });
+ await checkTier(
+ originsBase,
+ tierCount,
+ secondMinAmount,
+ secondMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositToken,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType
+ );
+ });
+
+ it("Owner should be able to set Tier Token Amount Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await token.mint(owner, secondRemainingTokens);
+ await token.approve(originsBase.address, secondRemainingTokens, { from: owner });
+ await originsBase.setTierTokenAmount(tierCount, secondRemainingTokens, { from: owner });
+ await checkTier(
+ originsBase,
+ tierCount,
+ zero,
+ firstMaxAmount,
+ secondRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositToken,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType
+ );
+ });
+
+ it("Owner should be able to set Tier Vest or Lock Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.setTierVestOrLock(
+ tierCount,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ secondUnlockedBP,
+ secondTransferType,
+ { from: owner }
+ );
+ await checkTier(
+ originsBase,
+ tierCount,
+ zero,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ secondUnlockedBP,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ firstDepositRate,
+ firstDepositToken,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ secondTransferType
+ );
+ });
+
+ it("Owner should be able to set Tier Time Parameters.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.setTierTime(tierCount, secondSaleStartTS, secondSaleEnd, secondSaleEndDurationOrTS, { from: owner });
+ await checkTier(
+ originsBase,
+ tierCount,
+ zero,
+ firstMaxAmount,
+ firstRemainingTokens,
+ secondSaleStartTS,
+ secondSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositToken,
+ firstDepositType,
+ firstVerificationType,
+ secondSaleEndDurationOrTS,
+ firstTransferType
+ );
+ });
+
+ it("Verifier should be able to verify a single address to a single tier.", async () => {
+ await originsBase.addressVerification(userOne, tierCount, { from: verifier });
+ let currentStatus = await originsBase.isAddressApproved(userOne, tierCount);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ });
+
+ it("Verifier should be able to verify a single address to a multiple tier.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.singleAddressMultipleTierVerification(userOne, [tierCount, tierCount - 1, tierCount - 2], { from: verifier });
+ let currentStatus = await originsBase.isAddressApproved(userOne, tierCount);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ currentStatus = await originsBase.isAddressApproved(userOne, tierCount - 1);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ currentStatus = await originsBase.isAddressApproved(userOne, tierCount - 2);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ });
+
+ it("Verifier should be able to verify a multiple address to a single tier.", async () => {
+ await originsBase.multipleAddressSingleTierVerification([userOne, userTwo, userThree], tierCount, { from: verifier });
+ let currentStatus = await originsBase.isAddressApproved(userOne, tierCount);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ currentStatus = await originsBase.isAddressApproved(userTwo, tierCount);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ currentStatus = await originsBase.isAddressApproved(userThree, tierCount);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ });
+
+ it("Verifier should be able to verify a multiple address to a multiple tier.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.multipleAddressAndTierVerification([userOne, userTwo, userThree], [tierCount, tierCount - 1, tierCount - 2], {
+ from: verifier,
+ });
+ let currentStatus = await originsBase.isAddressApproved(userOne, tierCount);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ currentStatus = await originsBase.isAddressApproved(userTwo, tierCount - 1);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ currentStatus = await originsBase.isAddressApproved(userThree, tierCount - 2);
+ assert.strictEqual(currentStatus, true, "Address Verification invalid");
+ });
+
+ it("User should be able to buy tokens.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.addressVerification(userOne, tierCount, { from: verifier });
+ let amount = 10000;
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ let userVestedBalance = await lockedFund.getVestedBalance(userOne);
+ assert(userVestedBalance.eq(new BN(amount).mul(new BN(firstDepositRate))), "User Vesting Balance is wrong.");
+ });
+
+ it("User should be able to buy tokens multiple times until max asset amount reaches.", async () => {
+ let amount = 10000;
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ let userVestedBalance = await lockedFund.getVestedBalance(userOne);
+ assert(userVestedBalance.eq(new BN(amount).mul(new BN(4)).mul(new BN(firstDepositRate))), "User Vesting Balance is wrong.");
+ });
+
+ it("User should be refunded the extra after the max reaches.", async () => {
+ let amount = 20000;
+ let oldBalance = await balance.current(userOne);
+ let tx = await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ let gasUsed = tx.receipt.gasUsed;
+ let gasPrice = (await web3.eth.getTransaction(tx.tx)).gasPrice;
+ let newBalance = await balance.current(userOne);
+ newBalance = newBalance.add(new BN(gasUsed).mul(new BN(gasPrice)));
+ let userVestedBalance = await lockedFund.getVestedBalance(userOne);
+ assert(oldBalance.sub(newBalance).eq(new BN(10000)), "User not returned enough.");
+ assert(userVestedBalance.eq(firstMaxAmount.mul(new BN(firstDepositRate))), "User Vested Balance is wrong.");
+ });
+
+ it("Owner should be able to withdraw the sale deposit to deposit address.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 20000;
+ await token.mint(userOne, amount);
+ await token.approve(originsBase.address, amount, { from: userOne });
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ amount = 20000;
+ await token.mint(userTwo, amount);
+ await token.approve(originsBase.address, amount, { from: userTwo });
+ await originsBase.buy(tierCount, zero, { from: userTwo, value: amount });
+ amount = 20000;
+ await token.mint(userThree, amount);
+ await token.approve(originsBase.address, amount, { from: userThree });
+ await originsBase.buy(tierCount, zero, { from: userThree, value: amount });
+ let oldBalance = await balance.current(depositAddr);
+ await originsBase.withdrawSaleDeposit({ from: owner });
+ let newBalance = await balance.current(depositAddr);
+ assert(newBalance.sub(oldBalance).eq(new BN(60000)), "Admin did not received the total sale proceedings.");
+ });
+});
diff --git a/tests/OriginsBase/user.test.js b/tests/OriginsBase/user.test.js
new file mode 100644
index 0000000..e71f100
--- /dev/null
+++ b/tests/OriginsBase/user.test.js
@@ -0,0 +1,516 @@
+const {
+ // External Functions
+ expectRevert,
+ assert,
+ // Custom Functions
+ randomValue,
+ currentTimestamp,
+ createStakeAndVest,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ OriginsBase,
+} = require("../utils");
+
+const {
+ zero,
+ saleEndDurationOrTSNone,
+ saleEndDurationOrTSUntilSupply,
+ saleEndDurationOrTSDuration,
+ verificationTypeNone,
+ verificationTypeEveryone,
+ transferTypeNone,
+ transferTypeUnlocked,
+ transferTypeWaitedUnlock,
+ transferTypeLocked,
+} = require("../constants");
+
+let {
+ waitedTS,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+} = require("../variable");
+
+contract("OriginsBase (User Functions)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic, originsBase;
+ let creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr;
+ let tierCount;
+
+ before("Initiating Accounts & Creating Test Contract Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 9, "Alteast 9 accounts are required to test the contracts.");
+ [creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr] = accounts;
+
+ let timestamp = await currentTimestamp();
+ waitedTS = timestamp;
+ firstSaleStartTS = timestamp;
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [owner], { from: creator });
+
+ // Creating the instance of OriginsBase Contract.
+ originsBase = await OriginsBase.new([owner], token.address, depositAddr, { from: creator });
+
+ // Setting lockedFund in Origins.
+ await originsBase.setLockedFund(lockedFund.address, { from: owner });
+
+ // Added Origins as an admin of LockedFund.
+ await lockedFund.addAdmin(originsBase.address, { from: owner });
+
+ // Setting Verifier in Origins.
+ await originsBase.addVerifier(verifier, { from: owner });
+
+ // Minting new tokens, Approving Origins and creating a new tier.
+ await token.mint(owner, firstRemainingTokens, { from: creator });
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ });
+
+ beforeEach("Updating the timestamp.", async () => {
+ let timestamp = await currentTimestamp();
+ firstSaleStartTS = timestamp;
+ secondSaleStartTS = timestamp;
+ });
+
+ it("User should be able to buy tokens.", async () => {
+ await originsBase.addressVerification(userOne, tierCount, { from: verifier });
+ let amount = 10000;
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ });
+
+ it("User should be able to buy tokens multiple times until max asset amount reaches.", async () => {
+ let amount = 10000;
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ });
+
+ it("User should be allowed to buy until the max reaches.", async () => {
+ let amount = 10000;
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ await expectRevert(
+ originsBase.buy(tierCount, zero, { from: userOne, value: amount }),
+ "OriginsBase: User already bought maximum allowed."
+ );
+ });
+
+ it("User should be allowed to buy with Immediate Unlock.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ transferTypeUnlocked,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 10000;
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ });
+
+ it("User should be allowed to buy with Waited Unlock.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ transferTypeWaitedUnlock,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 10000;
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ });
+
+ it("User should be allowed to buy with Locked Transfer.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ transferTypeLocked,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 10000;
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ });
+
+ it("User should not be allowed to buy without setting Transfer Type.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ transferTypeNone,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 10000;
+ await expectRevert(
+ originsBase.buy(tierCount, zero, { from: userOne, value: amount }),
+ "OriginsBase: Transfer Type not set by owner."
+ );
+ });
+
+ it("User should not be allowed to buy if sale end duration or TS not set.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ (await currentTimestamp()) + 1000,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ saleEndDurationOrTSNone,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 10000;
+ await expectRevert(originsBase.buy(tierCount, zero, { from: userOne, value: amount }), "OriginsBase: Sale not allowed.");
+ });
+
+ it("User should not be allowed to buy if sale start time is not set.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ zero,
+ (await currentTimestamp()) + 1000,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ saleEndDurationOrTSDuration,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 10000;
+ await expectRevert(originsBase.buy(tierCount, zero, { from: userOne, value: amount }), "OriginsBase: Sale has not started yet.");
+ });
+
+ it("User should not be allowed to buy if the token sale has ended.", async () => {
+ let amount = 100;
+ await token.mint(owner, amount);
+ await token.approve(originsBase.address, amount, { from: owner });
+ await originsBase.createTier(
+ amount,
+ amount,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ 1,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ await expectRevert(originsBase.buy(tierCount, zero, { from: userTwo, value: amount }), "OriginsBase: Sale ended.");
+ });
+
+ it("User should not be allowed to buy if sale end is not set.", async () => {
+ let amount = randomValue();
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ zero,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await expectRevert(originsBase.buy(tierCount, zero, { from: userOne, value: amount }), "OriginsBase: Sale not allowed.");
+ });
+
+ it("User should not be allowed to buy if total tokens are sold with Sale End as Duration.", async () => {
+ let amount = 100;
+ await token.mint(owner, amount);
+ await token.approve(originsBase.address, amount, { from: owner });
+ await originsBase.createTier(
+ amount / 2,
+ amount,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ 1,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount / 2 });
+ await originsBase.buy(tierCount, zero, { from: userTwo, value: amount / 2 });
+ await expectRevert(originsBase.buy(tierCount, zero, { from: userThree, value: amount / 2 }), "OriginsBase: Sale ended.");
+ });
+
+ it("User should not be allowed to buy if total tokens are sold with Sale End as Until Supply.", async () => {
+ let amount = 100;
+ await token.mint(owner, amount);
+ await token.approve(originsBase.address, amount, { from: owner });
+ await originsBase.createTier(
+ amount,
+ amount,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ 1,
+ firstDepositType,
+ verificationTypeEveryone,
+ saleEndDurationOrTSUntilSupply,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount / 2 });
+ await originsBase.buy(tierCount, zero, { from: userTwo, value: amount / 2 });
+ await expectRevert(originsBase.buy(tierCount, zero, { from: userThree, value: amount / 2 }), "OriginsBase: Sale ended.");
+ });
+
+ it("User should not be allowed to buy if Verification is not set.", async () => {
+ let amount = randomValue();
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeNone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await expectRevert(originsBase.buy(tierCount, zero, { from: userOne, value: amount }), "OriginsBase: No one is allowed for sale.");
+ });
+
+ it("If verification is done by address, user should only be allowed if it is done by verified address.", async () => {
+ let amount = randomValue();
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await expectRevert(originsBase.buy(tierCount, zero, { from: userOne, value: amount }), "OriginsBase: User not approved for sale.");
+ });
+
+ it("User should not be allowed to buy once the max reaches even if there is remaining tokens.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ let amount = 25000;
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ await originsBase.buy(tierCount, zero, { from: userOne, value: amount });
+ amount = 5000;
+ await expectRevert(
+ originsBase.buy(tierCount, zero, { from: userOne, value: amount }),
+ "OriginsBase: User already bought maximum allowed."
+ );
+ // Though any other user can still buy.
+ amount = 5000;
+ await token.approve(originsBase.address, amount, { from: userTwo });
+ });
+
+ it("User should not be allowed to buy tokens with zero deposit in RBTC", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await expectRevert(originsBase.buy(tierCount, zero, { from: userOne, value: zero }), "OriginsBase: Amount cannot be zero.");
+ });
+
+ it("User should not be allowed to buy with assets deposited less than minimum allowed.", async () => {
+ let amount = 1000;
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ verificationTypeEveryone,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ await originsBase.setTierTokenLimit(tierCount, 10000, firstMaxAmount, { from: owner });
+ await expectRevert(
+ originsBase.buy(tierCount, zero, { from: userOne, value: amount }),
+ "OriginsBase: Deposit is less than minimum allowed."
+ );
+ });
+
+ it("User should be able to get token address.", async () => {
+ let tokenAddress = await originsBase.getToken({ from: userOne });
+ });
+
+ it("User should be able to get Tokens Bought By Address On Tier.", async () => {
+ let tokensBought = await originsBase.getTokensBoughtByAddressOnTier(userOne, 1, { from: userOne });
+ });
+
+ it("User should be able to get Participating Wallet Count Per Tier.", async () => {
+ let participatingWallet = await originsBase.getParticipatingWalletCountPerTier(1, { from: userOne });
+ });
+
+ it("User should be able to get Total Token Allocation Per Tier.", async () => {
+ let totalTokenAllocation = await originsBase.getTotalTokenAllocationPerTier(1, { from: userOne });
+ });
+
+ it("User should be able to get Tokens Sold Per Tier.", async () => {
+ let tokensSoldPerTier = await originsBase.getTokensSoldPerTier(1, { from: userOne });
+ });
+
+ it("User should be able to check Sale Ended.", async () => {
+ let saleEnded = await originsBase.checkSaleEnded(1, { from: userOne });
+ });
+});
diff --git a/tests/OriginsBase/verifier.test.js b/tests/OriginsBase/verifier.test.js
new file mode 100644
index 0000000..c5d02ee
--- /dev/null
+++ b/tests/OriginsBase/verifier.test.js
@@ -0,0 +1,216 @@
+const {
+ // External Functions
+ expectRevert,
+ assert,
+ // Custom Functions
+ currentTimestamp,
+ createStakeAndVest,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ OriginsBase,
+} = require("../utils");
+
+const { zero, zeroAddress } = require("../constants");
+
+let {
+ waitedTS,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ secondMinAmount,
+ secondMaxAmount,
+ secondRemainingTokens,
+ secondSaleStartTS,
+ secondSaleEnd,
+ secondUnlockedBP,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ secondDepositRate,
+ secondDepositToken,
+ secondDepositType,
+ secondSaleEndDurationOrTS,
+ secondTransferType,
+} = require("../variable");
+
+contract("OriginsBase (Verifier Functions)", (accounts) => {
+ let token, lockedFund, vestingRegistry, vestingLogic, stakingLogic, originsBase;
+ let creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr;
+ let tierCount;
+
+ before("Initiating Accounts & Creating Test Contract Instance.", async () => {
+ // Checking if we have enough accounts to test.
+ assert.isAtLeast(accounts.length, 9, "Alteast 9 accounts are required to test the contracts.");
+ [creator, owner, newOwner, userOne, userTwo, userThree, verifier, depositAddr, newDepositAddr] = accounts;
+
+ let timestamp = await currentTimestamp();
+ waitedTS = timestamp;
+
+ // Creating the instance of Test Token.
+ token = await Token.new(zero, "Test Token", "TST", 18, { from: creator });
+
+ // Creating the Staking and Vesting
+ [staking, vestingLogic, vestingRegistry] = await createStakeAndVest(creator, token);
+
+ // Creating the instance of LockedFund Contract.
+ lockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [owner], { from: creator });
+
+ // Creating the instance of OriginsBase Contract.
+ originsBase = await OriginsBase.new([owner], token.address, depositAddr, { from: creator });
+
+ // Setting lockedFund in Origins.
+ await originsBase.setLockedFund(lockedFund.address, { from: owner });
+
+ // Added Origins as an admin of LockedFund.
+ await lockedFund.addAdmin(originsBase.address, { from: owner });
+
+ // Setting Verifier in Origins.
+ await originsBase.addVerifier(verifier, { from: owner });
+ });
+
+ beforeEach("Updating the timestamp and creating new Tier.", async () => {
+ let timestamp = await currentTimestamp();
+ firstSaleStartTS = timestamp;
+ secondSaleStartTS = timestamp;
+
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: owner }
+ );
+ tierCount = await originsBase.getTierCount();
+ });
+
+ it("Verifier should not be able to set deposit address.", async () => {
+ await expectRevert(
+ originsBase.setDepositAddress(newDepositAddr, { from: verifier }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Verifier should not be able to set Locked Fund Contract.", async () => {
+ let newLockedFund = await LockedFund.new(waitedTS, token.address, vestingRegistry.address, [owner]);
+ await expectRevert(
+ originsBase.setLockedFund(newLockedFund.address, { from: verifier }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Verifier should not be able to add a new tier.", async () => {
+ await token.mint(owner, firstRemainingTokens);
+ await token.approve(originsBase.address, firstRemainingTokens, { from: owner });
+ await expectRevert(
+ originsBase.createTier(
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ { from: verifier }
+ ),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Verifier should not be able to set Tier Deposit Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierDeposit(tierCount, secondDepositRate, secondDepositToken, secondDepositType, { from: verifier }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Verifier should not be able to set Tier Token Limit Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierTokenLimit(tierCount, secondMinAmount, secondMaxAmount, { from: verifier }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Verifier should not be able to set Tier Token Amount Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierTokenAmount(tierCount, secondRemainingTokens, { from: verifier }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Verifier should not be able to set Tier Vest or Lock Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierVestOrLock(
+ tierCount,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ secondUnlockedBP,
+ secondTransferType,
+ { from: verifier }
+ ),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Verifier should not be able to set Tier Time Parameters.", async () => {
+ await expectRevert(
+ originsBase.setTierTime(tierCount, secondSaleStartTS, secondSaleEnd, secondSaleEndDurationOrTS, { from: verifier }),
+ "OriginsAdmin: Only owner can call this function."
+ );
+ });
+
+ it("Verifier should be able to verify a single address to a single tier.", async () => {
+ await originsBase.addressVerification(userOne, tierCount, { from: verifier });
+ });
+
+ it("Verifier should not be able to verify a zero address to a single tier.", async () => {
+ await expectRevert(
+ originsBase.addressVerification(zeroAddress, tierCount, { from: verifier }),
+ "OriginsBase: Address to be verified cannot be zero."
+ );
+ });
+
+ it("Verifier should be able to verify a single address to a multiple tier.", async () => {
+ await originsBase.singleAddressMultipleTierVerification(userOne, [tierCount, tierCount - 1, tierCount - 2], { from: verifier });
+ });
+
+ it("Verifier should be able to verify a multiple address to a single tier.", async () => {
+ await originsBase.multipleAddressSingleTierVerification([userOne, userTwo, userThree], tierCount, { from: verifier });
+ });
+
+ it("Verifier should be able to verify a multiple address to a multiple tier.", async () => {
+ await originsBase.multipleAddressAndTierVerification([userOne, userTwo, userThree], [tierCount, tierCount - 1, tierCount - 2], {
+ from: verifier,
+ });
+ });
+
+ it("Verifier should not be able to verify a multiple address of length x to a multiple tier of length y, where x != y.", async () => {
+ await expectRevert(
+ originsBase.multipleAddressAndTierVerification([userOne, userTwo, userThree], [tierCount, tierCount - 1], { from: verifier }),
+ "OriginsBase: Address and Tier Array length mismatch."
+ );
+ });
+});
diff --git a/tests/constants.js b/tests/constants.js
new file mode 100644
index 0000000..05ec10c
--- /dev/null
+++ b/tests/constants.js
@@ -0,0 +1,67 @@
+// Constants
+
+const {
+ BN, // Big Number support.
+ constants,
+} = require("@openzeppelin/test-helpers");
+
+let zero = new BN(0);
+let zeroAddress = constants.ZERO_ADDRESS;
+
+const fourWeeks = 4 * 7 * 24 * 60 * 60;
+
+const zeroBasisPoint = 0;
+const twentyBasisPoint = 2000;
+const fiftyBasisPoint = 5000;
+const hundredBasisPoint = 10000;
+const invalidBasisPoint = 10001;
+
+const depositTypeRBTC = 0;
+const depositTypeToken = 1;
+
+const unlockTypeNone = 0;
+const unlockTypeImmediate = 1;
+const unlockTypeWaited = 2;
+
+const saleEndDurationOrTSNone = 0;
+const saleEndDurationOrTSUntilSupply = 1;
+const saleEndDurationOrTSDuration = 2;
+const saleEndDurationOrTSTimestamp = 3;
+
+const verificationTypeNone = 0;
+const verificationTypeEveryone = 1;
+const verificationTypeByAddress = 2;
+
+const transferTypeNone = 0;
+const transferTypeUnlocked = 1;
+const transferTypeWaitedUnlock = 2;
+const transferTypeVested = 3;
+const transferTypeLocked = 4;
+
+module.exports = {
+ zero,
+ zeroAddress,
+ fourWeeks,
+ zeroBasisPoint,
+ twentyBasisPoint,
+ fiftyBasisPoint,
+ hundredBasisPoint,
+ invalidBasisPoint,
+ depositTypeRBTC,
+ depositTypeToken,
+ unlockTypeNone,
+ unlockTypeImmediate,
+ unlockTypeWaited,
+ saleEndDurationOrTSNone,
+ saleEndDurationOrTSUntilSupply,
+ saleEndDurationOrTSDuration,
+ saleEndDurationOrTSTimestamp,
+ verificationTypeNone,
+ verificationTypeEveryone,
+ verificationTypeByAddress,
+ transferTypeNone,
+ transferTypeUnlocked,
+ transferTypeWaitedUnlock,
+ transferTypeVested,
+ transferTypeLocked,
+};
diff --git a/tests/utils.js b/tests/utils.js
new file mode 100644
index 0000000..f3c8bc8
--- /dev/null
+++ b/tests/utils.js
@@ -0,0 +1,264 @@
+// Independent Variables
+let { saleEndDurationOrTSDuration, saleEndDurationOrTSTimestamp } = require("./variable.js");
+
+// Independent Constants
+
+const { zeroAddress, fourWeeks } = require("./constants.js");
+
+// External Functions
+
+const {
+ BN, // Big Number support.
+ constants,
+ expectRevert, // Assertions for transactions that should fail.
+ expectEvent,
+ time,
+ balance,
+} = require("@openzeppelin/test-helpers");
+
+const { assert } = require("chai");
+
+// Custom Functions
+
+/**
+ * Function to create a random value.
+ * It expects no parameter.
+ *
+ * @return {number} Random Value.
+ */
+function randomValue() {
+ return Math.floor(Math.random() * 10000) + 10000;
+}
+
+/**
+ * Function to get back the current timestamp in seconds.
+ * It expects no parameter.
+ *
+ * @return {number} Current Unix Timestamp.
+ */
+async function currentTimestamp() {
+ let timestamp = await time.latest();
+ return timestamp;
+}
+/**
+ * Function to create staking and vesting details.
+ */
+async function createStakeAndVest(creator, token) {
+ // Creating the Staking Instance.
+ stakingLogic = await StakingLogic.new(token.address, { from: creator });
+ staking = await StakingProxy.new(token.address, { from: creator });
+ await staking.setImplementation(stakingLogic.address, { from: creator });
+ staking = await StakingLogic.at(staking.address);
+
+ // Creating the FeeSharing Instance.
+ feeSharingProxy = await FeeSharingProxy.new(zeroAddress, staking.address, { from: creator });
+
+ // Creating the Vesting Instance.
+ vestingLogic = await VestingLogic.new({ from: creator });
+ vestingFactory = await VestingFactory.new(vestingLogic.address, { from: creator });
+ vestingRegistry = await VestingRegistry.new(
+ vestingFactory.address,
+ token.address,
+ staking.address,
+ feeSharingProxy.address,
+ creator, // This should be Governance Timelock Contract.
+ { from: creator }
+ );
+ vestingFactory.transferOwnership(vestingRegistry.address, { from: creator });
+
+ return [staking, vestingLogic, vestingRegistry];
+}
+
+/**
+ * Function to check the contract state.
+ *
+ * @param contractInstance The contract instance.
+ * @param checkArray The items to be checked.
+ * @param userAddr The user address for any particular check.
+ * @param waitedTS Whether the waited unlock started or not.
+ * @param token The token address which is being locked, unlocked, vested, etc.
+ * @param cliff Wait period after which locked token starts unlocking, represented in 4 weeks duration. 2 means 8 weeks.
+ * @param duration Duration of the entire staking, represented similar to cliff.
+ * @param vestingRegistry The vesting registry address.
+ * @param vestedBalance The vested balance of the `userAddr`.
+ * @param lockedBalance The locked balance of the `userAddr`.
+ * @param waitedUnlockedBalance The waited unlocked balance of the `userAddr`.
+ * @param unlockedBalance The unlocked balance of the `userAddr`.
+ * @param isAdmin True if `userAddr` is an admin, false otherwise.
+ */
+async function checkStatus(
+ contractInstance,
+ checkArray,
+ userAddr,
+ waitedTS,
+ token,
+ cliff,
+ duration,
+ vestingRegistry,
+ vestedBalance,
+ lockedBalance,
+ waitedUnlockedBalance,
+ unlockedBalance,
+ isAdmin
+) {
+ if (checkArray[0] == 1) {
+ let cValue = await contractInstance.getWaitedTS();
+ assert.equal(waitedTS, cValue.toNumber(), "The waited timestamp does not match.");
+ }
+ if (checkArray[1] == 1) {
+ let cValue = await contractInstance.getToken();
+ assert.strictEqual(token, cValue, "The token does not match.");
+ }
+ if (checkArray[2] == 1) {
+ let cValue = await contractInstance.cliff(userAddr);
+ assert.equal(cliff, cValue.toNumber() / fourWeeks, "The cliff does not match.");
+ }
+ if (checkArray[3] == 1) {
+ let cValue = await contractInstance.duration(userAddr);
+ assert.equal(duration, cValue.toNumber() / fourWeeks, "The duration does not match.");
+ }
+ if (checkArray[4] == 1) {
+ let cValue = await contractInstance.getVestingDetails();
+ assert.strictEqual(vestingRegistry, cValue, "The vesting registry does not match.");
+ }
+ if (checkArray[5] == 1) {
+ let cValue = await contractInstance.getVestedBalance(userAddr);
+ assert.equal(vestedBalance, cValue.toNumber(), "The vested balance does not match.");
+ }
+ if (checkArray[6] == 1) {
+ let cValue = await contractInstance.getLockedBalance(userAddr);
+ assert.equal(lockedBalance, cValue.toNumber(), "The locked balance does not match.");
+ }
+ if (checkArray[7] == 1) {
+ let cValue = await contractInstance.getWaitedUnlockedBalance(userAddr);
+ assert.equal(waitedUnlockedBalance, cValue.toNumber(), "The waited unlocked balance does not match.");
+ }
+ if (checkArray[8] == 1) {
+ let cValue = await contractInstance.getUnlockedBalance(userAddr);
+ assert.equal(unlockedBalance, cValue.toNumber(), "The unlocked balance does not match.");
+ }
+ if (checkArray[9] == 1) {
+ let cValue = await contractInstance.adminStatus(userAddr);
+ assert.equal(isAdmin, cValue, "The admin status does not match.");
+ }
+}
+
+/**
+ * Function to get the current token balance in contract & wallet.
+ * It expects user address along with contract & token instances as parameters.
+ *
+ * @param addr The user/contract address.
+ * @param tokenContract The Token Contract.
+ * @param lockedFundContract The Locked Fund Contract.
+ *
+ * @return [Token Balance, Vested Balance, Locked Balance, Waited Unlocked Balance, Unlocked Balance].
+ */
+async function getTokenBalances(addr, tokenContract, lockedFundContract) {
+ let tokenBal = await tokenContract.balanceOf(addr);
+ let vestedBal = await lockedFundContract.getVestedBalance(addr);
+ let lockedBal = await lockedFundContract.getLockedBalance(addr);
+ let waitedUnlockedBal = await lockedFundContract.getWaitedUnlockedBalance(addr);
+ let unlockedBal = await lockedFundContract.getUnlockedBalance(addr);
+ return [tokenBal, vestedBal, lockedBal, waitedUnlockedBal, unlockedBal];
+}
+
+/**
+ * Mints random token for user account and then approve a contract.
+ *
+ * @param tokenContract The Token Contract.
+ * @param userAddr User Address.
+ * @param toApprove User Address who is approved.
+ *
+ * @returns value The token amount which was minted by user.
+ */
+async function userMintAndApprove(tokenContract, userAddr, toApprove) {
+ let value = randomValue();
+ await tokenContract.mint(userAddr, value);
+ await tokenContract.approve(toApprove, value, { from: userAddr });
+ return value;
+}
+
+/**
+ * Checks Tier Details.
+ */
+async function checkTier(
+ _originsBase,
+ _tierCount,
+ _minAmount,
+ _maxAmount,
+ _remainingTokens,
+ _saleStartTS,
+ _saleEnd,
+ _unlockedBP,
+ _vestOrLockCliff,
+ _vestOrLockDuration,
+ _depositRate,
+ _depositToken,
+ _depositType,
+ _verificationType,
+ _saleEndDurationOrTS,
+ _transferType
+) {
+ let tierPartA = await _originsBase.readTierPartA(_tierCount);
+ let tierPartB = await _originsBase.readTierPartB(_tierCount);
+ assert(tierPartA._minAmount.eq(new BN(_minAmount)), "Minimum Amount is not correctly set.");
+ assert(tierPartA._maxAmount.eq(new BN(_maxAmount)), "Maximum Amount is not correctly set.");
+ assert(tierPartA._remainingTokens.eq(new BN(_remainingTokens)), "Remaining Token is not correctly set.");
+ assert(tierPartA._saleStartTS.eq(new BN(_saleStartTS)), "Sale Start TS is not correctly set.");
+ if (tierPartB._saleEndDurationOrTS == saleEndDurationOrTSDuration) {
+ assert(tierPartA._saleEnd.eq(new BN(Number(_saleStartTS) + Number(_saleEnd))), "Sale End TS is not correctly set.");
+ } else if (tierPartB._saleEndDurationOrTS == saleEndDurationOrTSTimestamp) {
+ assert(tierPartA._saleEnd.eq(new BN(_saleEnd)), "Sale End TS is not correctly set.");
+ }
+ assert(tierPartA._unlockedBP.eq(new BN(_unlockedBP)), "Unlocked Basis Point is not correctly set.");
+ assert(tierPartA._vestOrLockCliff.eq(new BN(_vestOrLockCliff)), "Vest or Lock Cliff is not correctly set.");
+ assert(tierPartA._vestOrLockDuration.eq(new BN(_vestOrLockDuration)), "Vest or Lock Duration is not correctly set.");
+ assert(tierPartA._depositRate.eq(new BN(_depositRate)), "Deposit Rate is not correctly set.");
+ assert.strictEqual(tierPartB._depositToken, _depositToken, "Deposit Token is not correctly set.");
+ assert(tierPartB._depositType.eq(new BN(_depositType)), "Deposit Type is not correctly set.");
+ assert(tierPartB._verificationType.eq(new BN(_verificationType)), "Verification Type is not correctly set.");
+ assert(tierPartB._saleEndDurationOrTS.eq(new BN(_saleEndDurationOrTS)), "Sale End Duration or TS is not correctly set.");
+ assert(tierPartB._transferType.eq(new BN(_transferType)), "Transfer Type is not correctly set.");
+}
+
+// Contract Artifacts
+const Token = artifacts.require("Token");
+const LockedFund = artifacts.require("LockedFund");
+const StakingLogic = artifacts.require("Staking");
+const StakingProxy = artifacts.require("StakingProxy");
+const FeeSharingProxy = artifacts.require("FeeSharingProxyMockup");
+const VestingLogic = artifacts.require("VestingLogic");
+const VestingFactory = artifacts.require("VestingFactory");
+const VestingRegistry = artifacts.require("VestingRegistry3");
+const OriginsAdmin = artifacts.require("OriginsAdmin");
+const OriginsBase = artifacts.require("OriginsBase");
+
+module.exports = {
+ // External Functions
+ BN,
+ constants,
+ expectRevert,
+ expectEvent,
+ time,
+ balance,
+ assert,
+ // Custom Functions
+ randomValue,
+ currentTimestamp,
+ createStakeAndVest,
+ checkStatus,
+ getTokenBalances,
+ userMintAndApprove,
+ checkTier,
+ // Contract Artifacts
+ Token,
+ LockedFund,
+ StakingLogic,
+ StakingProxy,
+ FeeSharingProxy,
+ VestingLogic,
+ VestingFactory,
+ VestingRegistry,
+ OriginsAdmin,
+ OriginsBase,
+};
diff --git a/tests/variable.js b/tests/variable.js
new file mode 100644
index 0000000..eaf1dcc
--- /dev/null
+++ b/tests/variable.js
@@ -0,0 +1,117 @@
+const {
+ BN, // Big Number support.
+} = require("@openzeppelin/test-helpers");
+
+const {
+ zeroAddress,
+ depositTypeRBTC,
+ verificationTypeEveryone,
+ verificationTypeByAddress,
+ saleEndDurationOrTSDuration,
+ transferTypeVested,
+} = require("./constants");
+
+// Variables
+
+let cliff = 1; // This is in 4 weeks. i.e. 1 * 4 weeks.
+let duration = 11; // This is in 4 weeks. i.e. 11 * 4 weeks.
+
+let waitedTS = 0;
+
+let [
+ firstMinAmount,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositToken,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+] = [
+ 1,
+ new BN(50000),
+ new BN(6000000),
+ 0,
+ 86400,
+ 0,
+ 1,
+ 11,
+ 100,
+ zeroAddress,
+ depositTypeRBTC,
+ verificationTypeByAddress,
+ saleEndDurationOrTSDuration,
+ transferTypeVested,
+];
+
+let [
+ secondMinAmount,
+ secondMaxAmount,
+ secondRemainingTokens,
+ secondSaleStartTS,
+ secondSaleEnd,
+ secondUnlockedBP,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ secondDepositRate,
+ secondDepositToken,
+ secondDepositType,
+ secondVerificationType,
+ secondSaleEndDurationOrTS,
+ secondTransferType,
+] = [
+ 1,
+ new BN(75000),
+ new BN(10000000),
+ 0,
+ 86400,
+ 5000,
+ 1,
+ 11,
+ 50,
+ zeroAddress,
+ depositTypeRBTC,
+ verificationTypeEveryone,
+ saleEndDurationOrTSDuration,
+ transferTypeVested,
+];
+
+module.exports = {
+ cliff,
+ duration,
+ waitedTS,
+ firstMinAmount,
+ firstMaxAmount,
+ firstRemainingTokens,
+ firstSaleStartTS,
+ firstSaleEnd,
+ firstUnlockedBP,
+ firstVestOrLockCliff,
+ firstVestOfLockDuration,
+ firstDepositRate,
+ firstDepositToken,
+ firstDepositType,
+ firstVerificationType,
+ firstSaleEndDurationOrTS,
+ firstTransferType,
+ secondMinAmount,
+ secondMaxAmount,
+ secondRemainingTokens,
+ secondSaleStartTS,
+ secondSaleEnd,
+ secondUnlockedBP,
+ secondVestOrLockCliff,
+ secondVestOfLockDuration,
+ secondDepositRate,
+ secondDepositToken,
+ secondDepositType,
+ secondVerificationType,
+ secondSaleEndDurationOrTS,
+ secondTransferType,
+};
diff --git a/truffle-config.js b/truffle-config.js
new file mode 100644
index 0000000..7ea30e1
--- /dev/null
+++ b/truffle-config.js
@@ -0,0 +1,52 @@
+/* eslint-disable */
+require("chai")
+ .use(require("chai-as-promised"))
+ .use(require("chai-bn")(require("bn.js")))
+ .use(require("chai-string"))
+ .use(require("dirty-chai"))
+ .expect();
+
+const Decimal = require("decimal.js");
+Decimal.set({ precision: 100, rounding: Decimal.ROUND_DOWN, toExpPos: 40 });
+
+const ganache = require("ganache-core");
+/* eslint-enable */
+
+module.exports = {
+ contracts_directory: "./contracts",
+ contracts_build_directory: "./build/contracts",
+ test_directory: "./tests",
+ networks: {
+ development: {
+ host: "localhost",
+ port: 7545,
+ network_id: "*",
+ gasPrice: 20000000000,
+ gas: 6800000,
+ provider: ganache.provider({
+ gasLimit: 6800000,
+ gasPrice: 20000000000,
+ default_balance_ether: 10000000000000000000,
+ }),
+ },
+ },
+ plugins: ["solidity-coverage"],
+ compilers: {
+ solc: {
+ version: "0.5.17",
+ settings: {
+ optimizer: {
+ enabled: true,
+ runs: 200,
+ },
+ },
+ },
+ },
+ mocha: {
+ enableTimeouts: false,
+ before_timeout: 3600000,
+ timeout: 1800000,
+ useColors: true,
+ reporter: "list",
+ },
+};